Java 基础
zxremail
这个作者很懒,什么都没留下…
展开
-
什么时候 hashCode() 与 equals() 应该同时覆写!
当某个类的对象作为HashMap的key时,必须同时覆写equals()和hashCode方法更加一般意义的是:只要某各类结合基于散列的集合一起使用,那么就必须同时覆写equals()和HashCode方法否则就会被Object类 的hashCode方法所干扰! 采用e.hash == hash判断hashCode()是出于效率考虑,短路与!HashMap的get()方法!原创 2009-09-15 13:44:00 · 579 阅读 · 0 评论 -
动态代理的意义
伟大意义:实现了三个模块组的解藕,可以使它们可以在客户端各自可以独立地变化,为客户端的调用提供了极大的方便 通过这种方式,被代理的对象(RealSubject)可以在运行时动态改变,需要控制的接口(Subject接口)可以在运行时改变,控制的方式(DynamicSubject类)也可以动态改变,从而实现了非常灵活的动态代理关系 例如:4*9*3=108种组合 (接口模块组)原创 2009-09-15 13:48:00 · 632 阅读 · 0 评论 -
ArrayList Vector LinkedList 各种容器的区别与用法
ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动等内存操作,所以索引数据快插入数据慢,Vector由于使用了synchronized方法(线程安全)所以性能上比ArrayList要差,LinkedList使用双向链表实现存储,按序号索引数据需要进行向前或向后遍历,但是插入数据时只需要转载 2009-09-15 19:57:00 · 517 阅读 · 0 评论