- 博客(9)
- 收藏
- 关注
原创 mysql中实现类似oracle中的nextval函数
1、建表CREATE TABLE 'sys_sequence' ( 'NAME' VARCHAR(50) NOT NULL, 'CURRENT_VALUE' INT(11) NOT NULL DEFAULT '0', 'INCREMENT' INT(11) NOT NULL DEFAULT '1', PRIMARY KEY('NAME'))2、建立函数DELIMIT...
2018-04-01 17:21:08
1597
原创 TCP的三次握手与四次分手
首先来看看OSI的七层模型:我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层;在第二层上的数据,我们把它叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。 同时,我们需要简单的知道,数据从应用层发下来,会在每一层都会加上头部信息,进行封装,然后再发送到数据接收端。这个基...
2018-04-01 17:19:52
140
原创 如何创建不可变类
不可变类:所有成员都是private不提供成员的改变方法,例如:setXXX确保所有的方法不会被重载,手段有两种:使用final Class(强不可变类),或者将所有类方法加上final(弱不可变类)如果某一个类成员不是原始变量(private)或者不可变类,必须通过在成员初始化或者get方法时通过深度clone方法,来确保类的不可变。public final class MyImmutableC...
2018-04-01 17:16:40
496
原创 浅克隆与深克隆
浅克隆:通常只是对克隆的实例进行复制,但里面的其他子对象,都是共用的。 浅克隆只需要实现Cloneable接口并重写Object类中的clone()方法即可。深克隆:克隆的时候会复制它的子对象的引用,里面所有的变量和子对象都是又额外拷贝了一份。实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆public class CloneUtil { priv...
2018-04-01 17:15:38
129
原创 单例模式的实现方式
1 最原始的实现单例模式的方法(存在线程不安全):public class SingletonOne { private static SingletonOne instance = null; private SingletonOne() {} public static SingletonOne getInstance() { if (instance == n...
2018-04-01 17:14:14
1293
1
原创 观察者模式(Observer)
观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。原则为交互对象之间的松耦合设计二努力以气象监测应用作为例子来说明观察者模式建立一个应用,利用WeatherData(追踪来自气象站的数据,并更新布告板)对象取得数据,并更新三个布告板:目前状况,气象统计和天气预报可以看到该模式包括四个角色抽象被观察者角色:也就是一个抽象主题,它把所有对观察...
2018-04-01 16:56:55
164
原创 策咯模式(Strategy)
策咯模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。基础:抽象、封装、多态、继承原则封装变化:找出会变化的方面,把它们从不变的部分分离出来。多用组合、少用继承针对接口编程,不针对实现编程下面以鸭子行为的例子来说明策咯模式抽象鸭子的飞行和叫的行为:public interface FlyBehavior { void fly();}publ...
2018-04-01 16:38:22
342
原创 浅谈代理Proxy
代理Proxy分为静态代理,JDK动态代理,CGLib动态代理。首先来个最原始的Hello接口public interface Hello { void say(String name);}接着提供它的实现类public class HelloImpl implements Hello { @Override public voi
2017-06-09 15:44:45
268
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人