- 博客(13)
- 收藏
- 关注
原创 Effective Java 学习笔记(8)
当重载equals方法时,遵循惯例.equals不是每个类都必须重载,当以下几个条件满足,可以不重载equals.1. 类的实例只有同一个才被判为相等. 如Thread类.2. 不用关心两个对象是否逻辑相等的时候,或是说比较对象没有意义.3.父类已经重载了equals,而且父类的equals也适用于子类,子类就不用重载equals.4.这是一个私有类或是包内访问,你确定equa
2010-01-24 19:34:00 382
原创 Effective Java 学习笔记 (7)
Finalizer 不可计划的,也是危险的,一般也是不必要的.不能在finalizer中放任何与依赖时间相关的操作,因为你不知道它什么时候被执行. 比如在finalizer中关闭文件的做法就是错误的, 根据JVM的实现方式不同,有可能导致打开的文件数过多而无法再打开文件.也不能在finalizer中改变状态,如给数据库解锁等.finalizer还能带来严重的性能问题,显示的调用的终
2010-01-24 19:30:00 445
原创 Effective Java 学习笔记 (6)
及时消除不使用的对象的引用, 理论上, 带有内存管理的语言是不存在内存泄漏的, 但是如果对对象的操作不当,也是可能会造成内存泄漏.如有一个stack, 其pop函数如下.public Object pop(){ if( Element.length() == 0) return null; return Element[s
2010-01-24 19:27:00 388
原创 Effective Java 学习笔记 (7)
Finalizer 不可计划的,也是危险的,一般也是不必要的.不能在finalizer中放任何与依赖时间相关的操作,因为你不知道它什么时候被执行. 比如在finalizer中关闭文件的做法就是错误的, 根据JVM的实现方式不同,有可能导致打开的文件数过多而无法再打开文件.也不能在finalizer中改变状态,如给数据库解锁等.finalizer还能带来严重的性能问题,显示的调用的终
2010-01-24 19:27:00 391
原创 Effective Java 学习笔记(5)
尽量复用对象,而不是创建新的对象,特别是当一个对象是immutable(不可改变)的时候。如String对象,String s= new String(“String”); 千万不要这样做,因为这里实际上创建了两个对象。要避免出现这样的情况,1是可以用静态工厂函数,来解决,如类库中的Boolean.valueOf(“true”),这种方式要优于new Boolean(“true
2010-01-24 19:26:00 347
原创 Effective Java 学习笔记(4)
这个原则很简单,就是使用私有构造函数防止类被实例化。有时,我们会写一些工具类,如java.lang.Math 或是 java.util.Arrays, 这些类中都是静态函数,在设计的时候,这些类并不是用来被实例化的。这个时候,就很有必要把构造函数私有化。public class UtilityClass { private UtilityClass() { throw new Assert
2010-01-24 19:25:00 350
原创 Effective Java 学习笔记(3)
在实现singleton模式时,我们有以下几种方法。1. public static final 字段加上private 的构造函数。public class Singleton{ public static final Singleton INSTANCE = new Singleton(); private Singleton() { .
2010-01-24 19:23:00 468
原创 Eclipse 中 运行 J2me 程序出现ClassNotFound的异常
有时,在运行一个J2me程序, 编译时一切正常,但是模拟器在起启后一会儿就自动退出, 然后控制台抛出 TestMidlet ClassNotFound 的错误, 或是抛出一大堆内存或是栈上的数据, 这是由于我们的环境包含了多个Perverification程序, 模拟器有一个, WTK有一个,Eclipseme有一个,因此,只要我们选择适当的perverification程序就可以了. 选
2010-01-24 19:15:00 566
原创 Effective Java 学习笔记(2)
有时,我们在写一个构造函数时,经常因为它包含众多的参数而苦恼,这时可以考虑用Builder模式来创建对象。如,我们要设计一个营养成份的类,包含能量,蛋白质,脂肪,钙,铁,锌,维生素A, 维生素B1 ... 等,但在构造的时候,不一定每次都需要这些参数,如钙,铁,锌和维生素等是可选的,为了适应多种可能的搭配,比较原始的办法就是采用telescoping constructor模式,例子如下。
2010-01-24 19:12:00 459
原创 Java 中的内部静态类
Java 中内部动态类(没有static)关键字和内部静态类的就在于内部动态类不能定义静态变量或是静态方法,如果要在内部类中使用静态成员,必须将类声明为静态类.内部类中的静态方法可以访问外部类的静态方法和本类中的静态方法或成员, 非静态方法可以访问其他所有的方法或成员
2010-01-24 19:03:00 428
原创 Http协议之Referer
Http协议头中的Referer主要用来让服务器判断来源页面, 即用户是从哪个页面来的,通常被网站用来统计用户来源,是从搜索页面来的,还是从其他网站链接过来,或是从书签等访问,以便网站合理定位.Referer有时也被用作防盗链, 即下载时判断来源地址是不是在网站域名之内, 否则就不能下载或显示,很多网站,如天涯就是通过Referer页面来判断用户是否能够下载图片.当然,对于某些恶意用户,也
2010-01-24 18:51:00 1042
原创 WML中 PostField中数据提交编码
在实现表单提交时,对于Post方法,理论上是根据字段中所带的标志来说明代码对数据的处理方式。 $(keyword:escape):指示微浏览器将非文本数字的字符替换成十六进制代码;如 + 被转成 %2B 空格 被转成%20,字母数字不动,按照URL的编码标准处理。 $(keyword:unesc):指示微浏览器用相应的字符替换十六进制代码;反过来,把%2B 替换成+ $(keywor
2010-01-13 22:57:00 493
原创 Effective Java 学习笔记(1)
通常情况下,我们在写一个类时,一般会赋予它一个或几个public的构造函数,让外部程序能够创建对象. 然而,在effective java 中,从另一个角度告诫我们在使用public的构造函数前,先考虑用public 的静态函数来创建对象. 其优点如下:1. 一个静态的工厂函数,可以取不同的名字. 而构造函数的名字只能与类同名. 一个API的设计中,一个好懂的名字可以免去使用者在文
2010-01-13 22:56:00 372
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人