易截截图软件、单文件、免安装、纯绿色、仅160KB

Effective Java 学习笔记 (11)

Clone这个方法很鸡肋,原因是因为它是受保护的(protected),其二Clone这个方法是可选的,即有可能类没有提供这个方法。
clone没有调用构造函数,而且如果父类没有实现clone的话,子类永远也不可能正确实现clone.
总之,clone是个很头痛的函数,如果要正确实现,必须考虑到深考贝的情况,否则被克隆出来的对象就不是独立的,如,要写一个堆栈类的克隆函数,正确的实现方法是:
@Override public Stack clone() {
            try {
                        Stack result = (Stack) super.clone();
                        result.elements = elements.clone();
                        return result;
            } catch (CloneNotSupportedException e) {
                        throw new AssertionError();
            }
}
要注意对于final字段不能正常工作,clone结构与可变对象的final字段是不兼容的。
对于列散数组,仅仅递归调用的clone方法还不够,看书中正确的做法:
public class HashTable implements Cloneable {
            private Entry[] buckets = ...;
            private static class Entry {
                        final Object key;
                     


相关文档:

Java 的缓存的实质

计算机缓存的定义 :缓存是CPU的一部分,它存在于CPU中
就此可以说明 CPU中不可能存放大量的数据
所以java 的缓存 不是真正意义上的缓存
而且
缓存是为了解决CPU速度和内存速度的速度差异问题
内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存,这样CPU就可以不经常到象“蜗牛”一样慢的内存中去取数 ......

java中数据类型间的强制转换

java中基本数据类型按精度低高的排列顺序是
                        byte<short<int<long<float<double
1.当把级别低的变量的值赋给级别高的变量时,系统会自动完成数据类型的转换 ......

JAVA 常用加密方法

1.Base64
  加密:org.apache.commons.codec.binary.Base64.encodeBase64(byte[] binaryData)
  解密:org.apache.commons.codec.binary.Base64.decodeBase64(byte[] base64Data)
2.Md5
  加密:org.apache.commons.codec.digest.md5Hex(byte[] data)
  解密:无
3.DES(des-ecb,3des,des-cbc,cb ......

java IO

1.InputStream和OutputStream是用于读或写单个字节或者字节数组,我们很少用到它们的方法,它们之所以存在是因为别的类可以使用它们,以便提供更有用的接口。因此,我们很少使用单一的类来创建流对象,而是通过叠合多个对象来提供所期望的功能。
2.FilterInputStream和FilterOutputStream是用来提供装饰器类接口以控制特定 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号