08 2016 档案

摘要:将类的接口转化为客户端希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作,别名Wrapper(包装器)。 适配器模式,最终改变一个已有对象的接口。 阅读全文
posted @ 2016-08-30 18:52 toto怎么会喝醉 阅读(453) 评论(6) 推荐(0)
摘要:代理模式proxy 定义 为其他对象提供一种代理,并以控制对这个对象的访问。最简单的理解,买东西都是要去商店的,不会去工厂。 java实现三要素 proxy(代理)+subject(接口)+realSubject(实现类) 1. 定义一个接口 2. 代理类和实现类均实现1定义的接口 3. 代理类持有 阅读全文
posted @ 2016-08-24 19:23 toto怎么会喝醉 阅读(406) 评论(2) 推荐(0)
摘要:装饰模式Decorator 定义 为对象动态的增加新的功能,实现要求装饰对象和被装饰对象实现同一接口或抽象类,装饰对象持有被装饰对象的实例。 java实现要点 1. 定义一个接口或抽象类,作为被装饰者的抽象 2. 对1定义的抽象,进行具体的实现,作为装饰者,装饰者的构造函数传入1的实例,并持有。 3 阅读全文
posted @ 2016-08-24 11:14 toto怎么会喝醉 阅读(237) 评论(0) 推荐(0)
摘要:初衷 1. 工作中用到了很多框架,但是给我印象最深的还是我们PO(Product Owner)在若干年前写的一套任务调度框架,在JDK1.4之前,concurrent包还没有引入, 手写的这套Token调度,去年我们依然在使用,并且满足了商用软件的各种要求。 2. 框架本身是可行的,但是也存在一些问 阅读全文
posted @ 2016-08-23 18:02 toto怎么会喝醉 阅读(854) 评论(0) 推荐(0)
摘要:synchronized 原则: 1. 尽量避免无谓的同步控制,同步需要系统开销,可能造成死锁 2. 尽量减少锁的粒度 同步方法 1. 同步方法锁的是对象。类中有一个同步方法,这个方法可以被两个不同的线程同时执行,只要每个线程自己创建一个的该类的实例即可。 2. 要实现类的同步,两种方式: 方法中添 阅读全文
posted @ 2016-08-23 17:28 toto怎么会喝醉 阅读(205) 评论(0) 推荐(0)
摘要:sleep()和wait() 首先,Java中的多线程是一种抢占式的机制,而不是分时机制。抢占式的机制是有多个线程处于可运行状态,但是只有一个线程在运行。 这种机制决定了,对于同一对象的多线程访问,必须考虑同步的问题,synchronize的意义在这。 几个区别: 1. sleep是Thread类的 阅读全文
posted @ 2016-08-22 22:06 toto怎么会喝醉 阅读(319) 评论(0) 推荐(0)
摘要:Eclipse创建工程并关联到文件(SVN或Git管理的代码文件) 新建java工程,用于存放工程的一些信息,默认存放地址。 工程相关的信息是不需要提交到(SVN或Git)版本库的,所以工程存放到本地的工作空间即可。 此工程新建个Folder,Advanced Linked Folder,将code 阅读全文
posted @ 2016-08-22 19:25 toto怎么会喝醉 阅读(279) 评论(0) 推荐(0)
摘要:default方法 Java 8中引入了一个新的概念,叫做default方法,也可以称为Defender方法,或者虚拟扩展方法(Virtual extension methods)。 Default方法是指,在接口内部包含了一些默认的方法实现(也就是接口中可以包含方法体,这打破了Java之前版本对接 阅读全文
posted @ 2016-08-22 18:01 toto怎么会喝醉 阅读(470) 评论(4) 推荐(0)
摘要:native native是方法修饰符。Native方法是由另外一种语言(如c/c++,FORTRAN,汇编)实现的本地方法。一般用于JNI中。 native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作 阅读全文
posted @ 2016-08-21 19:11 toto怎么会喝醉 阅读(514) 评论(0) 推荐(0)
摘要:外观模式 为子系统中的一组接口提供一个一致的界面, Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 外观模式三要素(client facade subSystem) 1. 外观角色(facade),是模式的核心,他被客户client角色调用,知道各个子系统的功能。同时根据客 阅读全文
posted @ 2016-08-21 16:56 toto怎么会喝醉 阅读(353) 评论(0) 推荐(0)
摘要:如果Bookmarks.bak内容不是想要恢复的内容, 右键,属性,以前的版本, 找到合适的版本, 还原,然后去掉bak后缀,替换掉Bookmarks即可。 阅读全文
posted @ 2016-08-20 23:38 toto怎么会喝醉 阅读(3778) 评论(0) 推荐(0)
摘要:工具 1. jvisualvm 位于JDK安装目录/bin目录下,可以通过pid(进程id)打出进程的堆栈或内存溢出的dump文件 2. Memory Analyzer Tool(MAT) 分析dump文件,定位(内存)溢出发生点 3. vncviewer win访问linux的远程访问工具 4. 阅读全文
posted @ 2016-08-19 18:09 toto怎么会喝醉 阅读(161) 评论(0) 推荐(0)
摘要:举个栗子 指挥官向士兵下达命令,士兵执行 实现代码如下: 代码问题 上诉代码是最基本的一个实现,存在问题: 1. Commander和Soldier高度耦合 2. 新增命令的话,要改动Commander类,扩展性不好(影响已有实现),不符合OCP原则 3. 指挥官指挥实现多条命令时,又要改Comma 阅读全文
posted @ 2016-08-17 12:01 toto怎么会喝醉 阅读(476) 评论(0) 推荐(0)
摘要:实际相当于,jdk会自动生成一个匿名内部类,完成职责: 可以看到前者更简洁。(注意前者最后的分号不能省略,编译器把整个看作一条语句) 不过,匿名内部类仅限于只实例化一次的内部类,如果内部类需要多次实例化,通常用后者。 另外,匿名内部类要么继承一个父类,要么实现一个接口,不能两者兼有,实现接口时也不能 阅读全文
posted @ 2016-08-12 12:15 toto怎么会喝醉 阅读(507) 评论(0) 推荐(0)
摘要:设置 1. 点 “window” "Preferences" "Java" "Installed JRES" 2. 此时"Installed JRES"右边是列表窗格,列出了系统中的 JRE 环境,选择你的JRE,然后点边上的 "Edit...", 会出现一个窗口(Edit JRE) 3. 选中rt 阅读全文
posted @ 2016-08-12 12:11 toto怎么会喝醉 阅读(200) 评论(0) 推荐(0)
摘要:模板模式 模版模式,又被称为模版方法模式,它可以将工作流程进行封装,并且对外提供了个性化的控制,但主流程外界不能修改,也就是说,模版方法模式中,将工作的主体架构规定好,具体类可以根据自己的需要,各自去实现。 几个要点,针对java: 1. 抽象父类(防止实例化),公共方法(public),规定好工作 阅读全文
posted @ 2016-08-10 22:46 toto怎么会喝醉 阅读(372) 评论(0) 推荐(0)
摘要:工厂模式 普通工厂模式 原本需要new出来的对象,通过一个类的方法去搞定,Factory.build(parameter),类似这种。 多方法工厂模式 工厂类提供多种build方法,或者根据入参类型决定输出对象。 静态工厂方法 工厂的build方法为静态方法,直接调用,较为常用。 总体来说,工厂模式 阅读全文
posted @ 2016-08-10 22:15 toto怎么会喝醉 阅读(261) 评论(0) 推荐(0)
摘要:[TOC] Jackson Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。 多态类型的处理 jackson允许配置多态类型处理,当进行反序列话时,JSON数据匹配的对象可能有多个子类型,为了正确的读取对象的类型,我们需要添加一些 阅读全文
posted @ 2016-08-10 17:54 toto怎么会喝醉 阅读(13491) 评论(1) 推荐(0)