- 博客(7)
- 资源 (2)
- 收藏
- 关注
原创 Java基础知识总结(三)——类和接口
1. 访问控制权限:1.1 访问控制权限的种类:私有:private,default-private(包访问权限);保护:protected;公有:public;1.2 为什么要访问控制权限:信息隐藏:私有权限可以增强内聚性,便于之后的版本更新;公有权限说明对外界的承诺,必须兼容。1.3 重要概念:编译单元:一个Java源代码文件,最多顶层可以有一个public类,
2015-11-15 21:41:10 2932 2
原创 Java中的final参数/变量+匿名内部类的字节码分析,以及Java 8中的使用
在Java 8之前一个常识就是如果要在方法中定义一个匿名内部类并使用该方法内的局部变量(包括参数),需要使用final关键字修饰。网上也有很多对这种机制的解释和说明,但是大部分都是一种抽象的认识。如果能够分析一下字节码,这个问题其实很清楚。显然的一个事实是局部变量(称为变量a)是保存在栈帧的局部变量表中的(引用或基本类型),这里把定义匿名内部类的方法称为方法A,匿名内部类的中使用这个局
2015-11-27 20:53:30 2791 1
原创 Java中的享元模式——不可变类的valueOf
1. 享元模式是什么:定义:运用共享技术有效地支持大量的细粒度的对象。这个定义似乎有些抽象。我的理解就是在大量的对象中将那些重复出现,值相对稳定的属性集合抽象出来封装到共享对象从而减少重复对象的创建。既然是可共享的状态,我觉得的很重要的一个特点就是不可变性,因为它被很多对象所引用,不可变性才能保证安全的使用(包括线程安全),Java中String,Integer,Double等
2015-11-27 14:12:20 2014 1
原创 Java中的命令模式——Thread,ThreadPoolExecutor和Runnable
1. 命令模式是什么:定义理解:命令模式最大的特性就在于将请求封装成抽象,也就是“命令”,并可以提供命令队列(可选的),支持排队、撤销等功能。优点:(1)将请求抽象,可以动态的扩展请求的类型;(2)将调用代码和接收执行的代码分离开来,用“命令”这个第三方进行解耦;(3)可以方便对对命令进行管理:提供队列,日志,撤销,重做等等额外的功能;缺点:将命令抽象出
2015-11-25 17:37:47 4370
原创 关于Java类初始化和实例化中的2个“雷区”
在考虑类初始化时,我们都知道进行子类初始化时,如果父类没有初始化要先初始化子类。然而事情并没有一句话这么简单。首先看看Java中初始化触发的条件:(1)在使用new实例化对象,访问静态数据和方法时,也就是遇到指令:new,getstatic/putstatic和invokestatic时;(2)使用反射对类进行调用时;(3)当初始化一个类时,父类如果没有进行初始化,先触发父类的初始
2015-11-24 19:36:46 4102 1
转载 Java中的设计模式应用(23种)
你可以通过Wikipedia对设计模式有个整体上的理解。Wikipedia上也提高了GoF所涉及到的模式。我这里总结一下,并且尽可能指出在JavaSE与JavaEE的API中是如何运用这些模式的。1.创建型设计模式抽象工厂模式特点:创建方法返回一个可以用来创建抽象类或接口的工厂类。javax.xml.parsers.DocumentBuilderFact
2015-11-15 18:52:52 993
原创 基于wait和nofity的生产者和消费者模式版本
如果不用阻塞队列,生产者和消费者模式如何实现,我自己写了一版本,小记一下:除了Producer和Consumer之外,我还创建了一个ValueHolder用来解耦,并且包含了两个fianl对象作为锁;我觉得这样做可以基于final引用同步,更为安全一些;import java.util.concurrent.ExecutorService;import java.util.concurr
2015-11-08 17:03:03 1176
动态代理/获取代理IP工具
2014-01-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人