- 博客(38)
- 资源 (13)
- 收藏
- 关注
原创 重构-第六章 组织函数
组织函数extract method #提 #取 #代 #码将一段代码放到独立函数中,并让函数名称解释创建新函数,以他做什么来命名提炼的代码从原函数复制到新函数检查代码,查看是否含有局部变量仅用于提炼代码段的局部变量在新函数中声明如果有修改局部变量将提炼函数改为查询,赋值给变量多个变量被修改使用split temporary variable将被提炼代码段中需要读取的局部变量,当作...
2019-09-16 23:22:12 157
原创 java synchronized 的实现原理与应用
1.6 之后为了减少获得锁和释放锁带来的性能消耗,引入了偏向锁和轻量级锁。他们之间只能升级不能降级,目的时为了提高锁获得和释放的效率。无锁 -> 偏向锁 -> 轻量级锁 -> 重量级锁synchronized 可以用在三个地方method 锁的是当前的实例对象static method 锁的是类对象方法快 锁括号里面的对象。synchronized 通...
2019-08-03 11:14:32 124
原创 DOCKER-UI第一步 环境配置与网络配置
配置 docker 环境:打开docker api接口vi /lib/systemd/system/docker.service在文件中相应位置增加ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock然后 执行以下命令重启dockersystemctl daemon-reloads...
2019-07-04 11:15:12 224
原创 List Vector ArrayList LinkedList
List 是Vector、ArrayList、LinkedList 共有的接口类,包含以下基础接口 int size(); boolean isEmpty(); boolean contains(Object var1); Iterator<E> iterator(); Object[] toArray(); <T> T[] toArray(T[] v...
2019-05-27 15:59:56 116
原创 Springboot使用问题
2019-5-16开发过程中出现增加的包与Application.java 文件不再同一个包下,需要增加以下配置Application 使用 @SpringBootApplication 注解,加入 scanBasePackages参数,此参数是一个String数组,在里面加上你所要扫描的包名@SpringBootApplication(scanBasePackages= {“com.aaa...
2019-05-16 20:23:24 142
原创 Redis问题汇总
HypeLogLog 、Geo、Pub/Sub,RedisModule:BloomFilterRedisSearchRedis-ML分布式锁:获取大量key :单线程scanRedis做异步队列:大量key 同时过期:持久化:aof文件过大:PipeLine 好处,问什么要用:Redis集群原理:...
2019-04-28 09:25:31 162
原创 Redis-- Set集合
Set集合,无序,成员唯一,通过哈希表实现的。集合中最大的成员数为 232 - 1 (4294967295, 每个集合可存储40多亿个成员)。 1. 向列表增加 SADD key value1 value2 value3.... 2. 获取集合的成员数,返回集合的size SCARD key 3. 随机移除并返回一个元素 SPOP key 4. 移除一个或多个成员 ...
2019-04-18 14:01:37 121
原创 Redis--列表List操作
List 就是在同一个key-value中存储多个value值,是一个双向链表 1. 从左推入 一个或者多个value LPUSH key value1 value2 value3.... 2. 从右推入一个或多个value RPUSH key value1 value2 value3.... 3. 从左移除并返回value LPOP key 4. 从右移除并返回valu...
2019-04-17 14:55:31 139
原创 Redis--String操作
Redis 的String 可以存储字符串,整数和浮点数还能对String进行一系列操作 1. 设置键值 SET key value 2. 获取键值 GET key 3. 获取键值从start 开始end结束的子串,start 和end分别是字符串的索引,从0开始 GETRANGE key start end 4. 自增自减操作 只能对整数类型操作 INCR ke...
2019-04-17 12:01:03 80
原创 Redis介绍
Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。...
2019-04-17 11:11:17 98
原创 勒布朗法则
今天看代码整洁之道,打开书看到一条法则,简直是我这种拖延症的写真,写出来给所有像我一样有拖延症的人共勉:稍后等于永不(Later equals never)...
2019-02-27 11:07:23 310
原创 linux yum离线安装
yum只下载不安装命令:yum install --downloadonly --downloaddir=/home/mypath XXXcreaterepo:需要提前安装完成 yum install createrepo命令 createrepo /home/mypath配置离线yum源:将其他yum源删除或者修改后缀,增加你的yum源文件,例如:git.repo将下列内容写入文件...
2019-02-22 15:18:04 707
原创 简单工厂模式,工厂方法模式和抽象工厂模式
简单工厂:一个工厂 创建多个实例,通过不同的输入创建不同的实例,当有新的实例需要创建时,需要修改工厂方法工厂方法模式:每个实例对应一个工厂方法,这样增加新的实例时,就只需要增加相应的工厂类就可以抽象工厂模式:将同一类的工厂放在一起。...
2019-02-13 14:57:36 86
原创 jvm——运行时数据区域
运行时数据区域 --摘自《深入理解java虚拟机》java虚拟机在执行java程序的过程中会把他所管理的内存划分为若干个不同的数据区域,他们各有用途,以及创建和销毁的时间。包括以下几个区域: 程序计数器、java虚拟机栈、本地方法栈、java堆、方法区,下面我们会逐个详细的介绍他们。程序计数器:是一块较小的内存空间,可以看作是当前线程所执行的字节码行号指示器。字节码解释器...
2018-10-30 19:31:27 197
原创 设计模式——命令模式
命令模式:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。 类图: Receiver是具体的命令的接受者和执行者 Command 命令的接口 ConcreteCommand具体的命令,继承Command,实现接口方法,并含有一个Receiver来实现具体的命令; Invoker:要求该命令执行这个请求;调用者,将命令向...
2018-07-07 17:03:12 85
原创 设计模式——桥接模式
桥接模式:将抽象部分与他的实现部分分离,是他们都可以独立的变化 这里的抽象部分与实现部分分离并不是让抽象类与其派生类分离,这样没有任何作用,实现部分指的是抽象类和他的培生累用来实现自己的对象。 抽象化:其概念是将复杂物体的一个或几个特性抽出去而只注意其他特性的行动或过程。在面向对象就是将对象共同的性质抽取出去而形成类的过程。 实现化:针对抽象化给出的具体实现。它和抽象化是...
2018-07-06 13:12:29 86
原创 设计模式——组合模式
组合模式:将对象组合成树形结构以表示‘部分-整体’的层次结构,组合模式使得用户对当个对象或者组合对象的使用具有一致性。 组合模式类图: Component: 是组合中的对象声明接口,在适当的情况下,实现所有类共有接口的默认行为。声明一个接口用于访问和管理Component; Leaf:叶节点,没有子节点只有叶节点的功能 Composite:定义有枝节点行为,用来存储子部件,在Compo...
2018-07-04 22:53:36 103
原创 设计模式——备忘录模式
备忘录模式:在不破坏封装性的前提下,不活一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态。 结构图: 备忘录模式有三个角色:发起人,备忘录,管理者; 发起人(Originator):负责创建一个备忘录Memento,用以记录当前时刻它的内部状态,并可使用备忘录恢复内部状态。Originator可根据需要决定Memento存储Orig...
2018-07-04 13:25:43 95
原创 设计模式——状态模式
状态模式:当一个对象的内在状态改变是允许改变其行为,这个对象看起来像是改变了其类; 主要解决的是当控制一个对象状态转换的条件表达式过于复杂的情况,把状态的判断逻辑转移到表示不同转改的一系列类当中,可以把复杂的判断逻辑简化。 类图: 由上图可以看出来状态类继承了同一个状态接口,包含一个处理当前状态的方法;context类中拥有...
2018-07-02 12:46:27 102
原创 设计模式——适配器模式
适配器模式:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的哪些类可以一起工作。 由上图可以看出来当我们客户端想要去访问Adaptee时发现与我们想要的模式不一样,这时候就需要有一个接口通过将adaptee进行包装转换成我们想要的目标接口; Adaptee类:public class Adaptee { public void ...
2018-06-30 23:45:32 67
原创 设计模式——抽象工厂模式
抽象工厂模式:提供一个创建一些相关或相互依赖对象的接口,而无需指定他们具体的累。 类图: 上图中ProductA和ProductB为两个产品系列,每个工厂都可以创建一系列的产品 Factory接口:public interface IFactory { IProductA createFactoryA(); IProductB createFactoryB();...
2018-06-27 12:50:57 81
原创 设计模式——观察者模式
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个对象在状态发生变化时,会通知所有观察者对象,使他们能够自动更新自己; 类图(截图自大话设计模式): 从类图中我们可以看出Subject是一个主题类,他里面有所有观察者的对象,抽象出一个几口,能够增加删除通知观察者; Observer是一个观察者接口,它能够在得到主题的通知后更新自己...
2018-06-20 22:38:30 77
原创 设计模式——建造者模式
建造者模式:将一个复杂对象的构建与他的表示分离,使得同样的构建过程可以创建不同的表示; 也就是说我们创建一个对象的时候,建造过程是确定的,但是具体的细节是不同的 使用场景: 需要生成的产品对象有复杂的内部结构,这些产品对象具备共性; 隔离复杂对象的创建和使用,并使得相同的创建过程可以创建不同的产品。 建造者模式基础类图: 假如我们要建造一个电脑;建造电脑的...
2018-06-19 22:20:41 177
原创 设计模式——外观模式
外观模式:为子系统中的一组接口提供了一个一致的界面,此模式定义了一个高层的接口,这个接口使得这一子系统更加容易使用。使用户与各个子系统之间解耦, 使用场景: 1- 为复杂的模块或子系统提供外界访问的模块; 2- 子系统相互独立; 3- 在层析结构中,可以使用外观模式定义系统的每一层的入口 类图: 用户只需要访问facade层提供的接口就可以实现相...
2018-06-18 23:14:44 113
原创 设计模式——模板模式
定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法是的子类可以不改变一个算法的结构即可冲定义该算法的某些特定步骤 就是我们把不变的方法方到超类中,在子类中是实现自己的不同的特有的方法,这样子类中的重复代码就会变少; 比如我们要出门远行的时候大家基本上都是先打包行李,然后乘坐交通工具,然后到了目的地之后登记入住宾馆;整个过程好像都是一样的,只是随着科技发展,大家...
2018-06-17 20:14:02 101
原创 设计模式——原型模式
原型模式:用原型实例指定对象的种类,并且通过拷贝这些原型对象创建新的对象; 原型模式主要包含三个:抽象原型类,具体原型类,客户端,从类图中可以看出抽象原型类中有一个Clone接口方法,后面的具体原型类通过实现这个接口来复制自身。其实原型模式就是通过克隆来实现。以下通过代码来体现一下; ProtoType 接口:public interface Prototype extends Clo...
2018-06-17 19:48:57 111
原创 设计模式——工厂方法模式
中间断更了四天,今天准备补回来,哎果然还是不能偷懒啊,偷懒一时爽,事后火葬场。 前面第一个介绍的设计模式为简单工厂模式,那这一节又是几个工厂模式,叫工厂方法模式,这两者之间有什么不同呢?或者说,既然是写在后面,他比简单工厂模式好在哪里了呢? 前面我们在简单工厂模式中是用一个方法来给所有的类创建实例,如果这个工厂出了问题,那么我们所有的类将不能创建实例了;而且如果我们需要...
2018-06-17 17:45:48 97
原创 设计模式——代理模式
代理模式:提供了对目标对象另外的访问方式;即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能. 其中有动态代理和静态代理,这里我们主要学习静态代理; 主要解决:在直接访问对象时带来的问题,比如说:要访问的对象在远程的机器上。在面向对象系统中,有些对象由于某些原因(比如对象创建开销很大,或者某些操作需要安全控制,或者需...
2018-06-13 23:23:25 80
原创 设计模式——装饰模式
坚持一个习惯果然不容易,这才第三天就要差点忘掉了,想起来赶紧起来写,争取在十一点半之前写好睡觉吧 今天开始设计模式的第三篇装饰模式; 装饰模式:允许向一个现有的对象添加新的功能,同时又不改变其结构。装饰者可以在所委托被装饰者的行为之前或之后加上自己的行为,以达到特定的目的。 发现了一个很不错的类图,就拿来借鉴一下,通过这个类图来理解一下装饰模式 装饰器模式由组件和装饰者组成。组件就是被...
2018-06-12 23:44:07 99
原创 设计模式——策略模式
废话不多说直接来看策略模式 定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使他们可以相互替换,让算法独立于使用它的客户而独立变化。 也就是说当我们变换算法是,只需要增加一个接口的实现就好了,然后去new这个实现。 使用案例: 假如一个商场要进行促销活动,有几种不同的打折方式供商场经理选择,分别是:满100减20,满300减80,和打八点五折。商场经理可能会在...
2018-06-11 21:39:44 105
原创 设计模式 --简单工厂模式
从现在开始要好好地整理一下以前学习的东西,就从最近学习的设计模式开始吧。刚开始写可能会不全面慢慢学习慢慢写吧。在学习设计模式之前先学习一下设计模式的六大原则:- 单一职责原则:一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则,需要设计人员发现类的不同职责并...
2018-06-10 21:45:35 137
原创 图片轮转
html <!DOCTYPE HTML> <html lang="zh"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, user-sc
2018-03-21 15:08:42 261
原创 sql
清除表格的 truncate table [ZLITS_FVMS].[dbo].[VEHICLE_PASS_RECORD]USE [ZLITS_FVMS] GOdeclare @COLLECT_TIME bigint; declare @END_TIME bigint; set @COLLECT_TIME=DATEDIFF(S,’1970-01-01 08:00:00’, convert(d
2018-03-13 14:25:12 142
原创 文章标题
Jenkins 问题解决可能有用明天试试 https://wiki.jenkins.io/display/JENKINS/Windows+slaves+fail+to+start+via+DCOM
2017-11-28 23:00:57 131
原创 文章标题
Checkstyle jar包下载链接 https://sourceforge.net/projects/checkstyle/files/checkstyle/
2017-10-15 21:33:56 105
原创 Spring + SpringMVC + Hibernate配置
工程结构 config内包含 applicationContext.xml hibernate.cfg.xml jdbc.properties springmvc.xml 四个配置文件以下分别是四个文件的内容 applicationContext.xml <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www
2017-09-07 11:33:12 236
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人