JAVA化境(九)设计模式之装饰器设计模式

前言 本章讲解设计模式中装饰器设计模式的相关知识 方法 1.概念 与桥接模式类似,该模式也是为了解决类爆炸的问题。但是装饰器模式关注于功能的扩展,真实的角色比较稳定。桥接模式的真实角色在多维度之间不断的变化,具有不确定性。 2.装饰器模式的实现思路 1)新建相应工程 其中,Car(车)为基本对象,Feature接口为Car类具有的基本功能,SuperCar类为装饰类。 ACar,AACar,AAACar为三种不同特性的车。 2)代码展示 Car: package decorator; /**
分类: 其他 发布时间: 06-16 23:08 阅读次数: 0

JAVA化境(十)设计模式之外观设计模式

前言 本章讲解设计模式中外观设计模式的基本知识 方法 1.概念 迪米特法则(Law of Demeter):又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD. 在我们实际的编程中,总是免不了调用对象的一个方法,那么如果你调用了多个对象的相关方法,那么就要考虑到将这段代码进行封装,以供其他程序进行调用,比如说某某工具类:XXUtil.java 2.未采用外观设计模式的场景 1)
分类: 其他 发布时间: 06-16 23:07 阅读次数: 0

JAVA化境(十一)设计模式之享元设计模式

前言 本章讲解设计模式中享元模式的相关知识 方法 1.概念 不知道大家还记不记得之前学过的单例设计模式! 单例模式:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点 单例模式保证的是该类的创建及其复杂的条件下,避免重复的创建而采用的设计模式,该类(属性)是固定的! 但是日常生活中一些对象之间有一些相对不变的属性和一些总是变化的属性。如围棋棋子: 那么关于棋子对象,它的属性颜色相对固定,只有黑色和白色,但是我们发现它的位置每个棋子是不一样的! 当我们不用享元模式去创建对象的时候,光黑色
分类: 其他 发布时间: 06-16 23:07 阅读次数: 0

测试理论小汇总1

1 软件测试的定义 通过手工和工具测试被测对象(实际和预期的对比) 2 软件测试的原则 2.1 只能证明存在缺陷,不能证明不存在缺陷 2.2 不能进行穷尽测试,要有测试停止的标准 2.3测试应当尽早介入,问题发现修复成本低 2.4测试存在集群现象,二八原则能够体现出 2.5测试依赖测试环境,要模拟用户使用场景 2.6测试的杀虫剂现象,可交换执行测试工作 2.7不存在缺陷是谬论,软件缺陷不可能没有 3 软件的生命周期+软件的开发过程模型 3.1 软件生命周期:软件生命周期是指一个计算机软件从功能
分类: 其他 发布时间: 06-16 23:06 阅读次数: 0

Mybatis的基础入门二

一、传统Mybatis Dao的开发模式 开发步骤 项目结构如下图: 1.使用原有的use.xml映射文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!--namespace命名空间,用于隔离sql语句,后续有重要作用 --> <mapper
分类: 编程语言 发布时间: 06-16 23:06 阅读次数: 0

c++数据结构与算法(2)——冒泡排序

#include <iostream> #include <cstdlib> #include<ctime> using namespace std; /*冒泡排序*/ void BubbleSort(int array[], int n); int main(){ clock_t start, end; int array[100000]; int n = 100000; cout << "共" << n << "个数据" << endl; for(int i = 0; i
分类: 编程语言 发布时间: 06-16 23:05 阅读次数: 0

【数组】合并两个数组至有序 无需新建数组

是在A数组的原基础上直接进行merge。方法是从后往前merge(数组长度为m+n),依次取最大的放上去。 不要担心A数组的原有元素被覆盖掉,因为分析代码,那个被覆盖的元素应该已经出现在了数组后面。 AC代码: class Solution { public: void merge(int A[], int m, int B[], int n) { int i = m-1; int j = n-1; int index = m+n-1;
分类: 编程语言 发布时间: 06-16 23:05 阅读次数: 0

linux swap文件系统管理

在linux中 我们可以使用free查看swap和内存使用情况 一般来说内存分以下两个部分 cached 缓存:是指把读出来的数据保存在内存当中,当再次读取的时候,不用直接读取硬盘而直接从内存中读取,加速数据的读取过程 buffer 缓冲:是指在写入数据时,先把分散的写入的操作保存在内存中,当达到一定程度再集中写入硬盘,减少硬盘碎片和硬盘反复寻道,加速了数据的写入过程。 系统扩容swap空间,首先确定硬盘还有空间可以分配。 通过如下思路进行分配。 将硬盘的空间建立分区 #fdisk /dev/
分类: 编程语言 发布时间: 06-16 23:05 阅读次数: 0

Centos7中安装elasticsearch

安装环境 jdk1.8以上 elasticsearch-7.0.1 安装步骤 1. 下载elasticsearch-7.0.1.tar.gz 下载地址:https://www.elastic.co/downloads/elasticsearch,这里选择tar.gz格式的安装包elasticsearch-7.0.1-linux-x86_64.tar.gz 2. elasticsearch 安装 安装在目录/elk下 将安装包上传到/elk目录下,并解压:tar -zxvf elasticsea
分类: 编程语言 发布时间: 06-16 23:04 阅读次数: 0

Maven架构搭建时可能出现的错误及解决方案概要

这段时间在maven基础上搭建springmvc或者springboot项目时出现过很头疼的问题: 1、maven添加的依赖jar包频繁报错或缺失; 2、pom.xml文件频繁出现首行报错。 在国内网上找了很多方法,当然,95%都是不顶用的,不意外,毕竟多数人都是直接抄袭或者转载,还扯什么亲测有用,估计自己博文里的方法作者自己根本就没用过,没什么好说的。 总之,看了很多博文,总结起来就三个解决方法: 1、把本地的maven仓库repository目录(存放maven从网络远程下载的jar包的目
分类: 编程语言 发布时间: 06-16 23:04 阅读次数: 0

“欢乐迎新春,文明过大年”

春节是中华民族最隆重的传统节日。春节凝聚着亿万中国人的浓浓情结。过了春节,才算开启了新的一年,凡事求新求好。所以,春节就成了人们最集中的消费时段。想着自己辛苦了一年,过年就该放松一下,于是,很多人便开始大吃大喝、大把花钱,由此造成的浪费十分惊人。在中央出台各种政令之后,各地积极转变作风。春节临近,很多地方的高档酒店、会所遇冷,而更具文明节俭的镜头,却在不断上演。今年春节前夕,人们看似不再重铺张、讲排场,反而更加注重节约和精神追求。如就有媒体采访时称,不少家庭已决定送“压岁书”代替“压岁钱”,禁
分类: 编程语言 发布时间: 06-16 23:04 阅读次数: 0

python之pandas学习笔记

一、概念 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。 二、代码详解 1.基础 pandas最核心的就是Series和DataFrame两个数据结构。 这两种类型的数据结构对比如下: 名称 维度 说明 Series 1维 能存储不同类
分类: 编程语言 发布时间: 06-16 23:03 阅读次数: 0

leetcode:反转字符串

题目 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。 不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。 你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。 示例 1: 输入:["h","e","l","l","o"] 输出:["o","l","l","e","h"] 示例 2: 输入:["H","a","n","n","a","h"] 输出:["h","a","n","n","a","
分类: 编程语言 发布时间: 06-16 23:03 阅读次数: 0

JAVA化境(十二)设计模式之责任链设计模式

前言 本章讲解设计模式中责任链设计模式的相关知识 方法 1.概念 试想下面的场景:某公司审批财务拨款购买设备,小于10万元的货物由主任批示,大于10万且小于100万的货物由经理批示,大于100万的货物由总经理批示。那么如何实现这个逻辑呢? 那么我们首先想到的就是使用传统的if...else来进行处理,但是对于业务复杂和维护来说都是相当的困难。 为了解决上面提到的问题,我们使用责任链模式来更好的处理财务审批的环节。 2.责任链设计模式的实现思路 1)创建对应工程 2)编写申请表类 package
分类: 编程语言 发布时间: 06-16 23:02 阅读次数: 0

java的封装和多态

封装 1、什么是封装: 隐藏属性(字段)提供一个公共的可供外部访问的方法(getter,setter) 2、实现:通过private关键字将属性私有化,然后通过getter和setter方法进行访问 3、this.属性,方法。够造器。调用当前类的属性,方法,构造器当调用构造方法是this.方法要在首行 够造器 语法 : 权限修饰符 方法名(参数){ } 作用: 1、创建对象 2、在创建对象时可以进行属性赋值 创建够造器的规则 1、在类创建时会默认自动创建一个无参的够造方法 2、当手动添加了一个
分类: 编程语言 发布时间: 06-16 23:02 阅读次数: 0

Java设计模式-创建型模式-单例模式

版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons) PS:第一次尝试发博客,如有不足之处,欢迎多多指点! 单例模式(Singleton) 核心作用 保证一个类只有一个实例,并且提供一个访问该实例的全局访问点 常见应用场景 项目中,读取配置文件的类,一般也只有一个对象,没有必要每次使用配置文件数据,每次new一个对象去读取 数据库连接池的设计一般也是采用单例模式,因为数据库连接是一种数据库资源 spring中,每个bea
分类: 编程语言 发布时间: 06-16 23:01 阅读次数: 0

Spring Aop中四个重要概念,切点,切面,连接点,通知

通知: 就是我们编写的希望Aop时执行的那个方法。我们通过Aop希望我们编写的方法在目标方法执行前执行,或者执行后执行。 切点:切点就是我们我们配置的满足我们条件的目标方法。比如我们规定:名字前面是select开头的才执行我们自定义的通知方法。那么这些select开头的方法就是切点。 连接点:连接点可以说是切点的全集。切点是连接点的子集。也可以理解为,连接点是我们没有定义那个select开头规则时,满足条件的全部的方法。 切面:切面是切点和通知的组合称谓,就是变相给组合起了个名 作者:litt
分类: 编程语言 发布时间: 06-16 23:01 阅读次数: 0

5.Linux系统的vim

5.1 Linux系统的vim编辑器   5.1.1 vim编辑器的概述 vim编辑器的简介       1.vim是什么? vim是一个类似vi的文本编辑器,它在vi的基础上增加了很多新特性 vim是vi发展出来的一个文本编辑器,编译及错误跳转等方便编译的功能丰富,在实际应用中较为广泛       2.为什么要学vim? 所有的Linux系统都会内建vi文本编辑器,其他的文本编辑器不一定存在 很多软件的编辑接口都会主动调用vi vim具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,
分类: 其他 发布时间: 06-16 23:01 阅读次数: 0

Codeforces Round #567 (Div. 2)

A 签到(code不贴了) PS:以后cf div2A(有时还有B)和atcoder <=200分(有时<=300)的题目不再贴code,不过可能也没几次比赛记录了。 B 高精度,枚举位数最短的可能,然后计算两个即可。 #include<bits/stdc++.h> using namespace std; const int N=1e5+7; struct node{int n,a[N];}ans,a,b; int n,mn; vector<int>G; char s[N];
分类: 其他 发布时间: 06-16 23:01 阅读次数: 0

《漫画算法》笔记-上篇

漫画算法-小灰的算法之旅 魏梦舒(@程序员小灰)著 小灰用漫画(可爱的手绘小仓鼠)的形式,给算法这颗“炮弹”包上了“糖衣”,让算法的为力潜藏于内,外表不再吓人,变得萌萌哒,Q弹可爱。 本书通过主人公小灰,用漫画的形式讲述了算法与数据结构的基础知识、复杂多变的算法面试及算法的实际应用。 第一章:讲述什么是算法、数据结构,有什么用。如何计算时间复杂度、空间复杂度。 第二章:讲述基本的数据结构:数组、链表、栈、队列、哈希。 第三章:讲述了树、二叉树相关知识。 第四章:讲述了经典的排序算法:冒泡、快速
分类: 其他 发布时间: 06-16 23:01 阅读次数: 0