摘要: 对象锁(方法锁),是针对一个对象的,它只在该对象的某个内存位置声明一个标识该对象是否拥有锁,所有它只会锁住当前的对象,一般一个对象锁是对一个非静态成员变量进行synchronized修饰,或者对一个非静态成员方法进行synchronized进行修饰,对于对象锁,不同对象访问同一个被synchroni 阅读全文
posted @ 2016-09-05 15:14 一步一个脚印,坚持 阅读(11010) 评论(0) 推荐(0)
摘要: http://blog.csdn.net/u014314614/article/details/49944239 阅读全文
posted @ 2016-09-05 11:05 一步一个脚印,坚持 阅读(189) 评论(0) 推荐(0)
摘要: http://blog.csdn.net/stephenxe/article/details/52386786 阅读全文
posted @ 2016-09-05 10:40 一步一个脚印,坚持 阅读(188) 评论(0) 推荐(0)
摘要: 我们先看2个类的定义 可见Hashtable 继承自 Dictiionary 而 HashMap继承自AbstractMap 注意1 方法是同步的注意2 方法不允许value==null注意3 方法调用了key的hashCode方法,如果key==null,会抛出空指针异常 HashMap的put方 阅读全文
posted @ 2016-09-05 10:34 一步一个脚印,坚持 阅读(444) 评论(0) 推荐(0)
摘要: Collection 接口的接口 对象的集合 ├ List 子接口 按进入先后有序保存 可重复 │├ LinkedList 接口实现类 链表 插入删除 没有同步 线程不安全 │├ ArrayList 接口实现类 数组 随机访问 没有同步 线程不安全 │└ Vector 接口实现类 数组 同步 线程安 阅读全文
posted @ 2016-09-05 10:28 一步一个脚印,坚持 阅读(3752) 评论(0) 推荐(0)
摘要: String 字符串常量StringBuffer 字符串变量(线程安全)StringBuilder 字符串变量(非线程安全) 简要的说, String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等 阅读全文
posted @ 2016-09-05 10:24 一步一个脚印,坚持 阅读(6240) 评论(0) 推荐(1)
摘要: Arraylist和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加插入元素,都允许直接序号索引元素,但是插入数据要涉及到数组元素移动等内存操作,所以插入数据慢,查找有下标,所以查询数据快,Vector由于使用了synchronized方法-线程安全,所以性能上比Array 阅读全文
posted @ 2016-09-05 10:17 一步一个脚印,坚持 阅读(46835) 评论(1) 推荐(8)
摘要: 作用: 1、HashCode的存在主要是为了查找的快捷性,HashCode是用来在散列存储结构中确定镀锡的存储地址的 2、如果两个对象的equals相等,那么HashCode一定相等,反之不行 3、如果equals被重写,HashCode尽量也重写 4、如果两个对象HashCode相等,不代表这两个 阅读全文
posted @ 2016-09-05 09:48 一步一个脚印,坚持 阅读(444) 评论(0) 推荐(0)
摘要: 1、clone() 创建并返回对象的一个副本,要进行“克隆”的对象所属的类必须实现java.lang.Cloneable接口 2、equals() 功能:比较引用数据类型的等价性 等价标准:引用类型比较引用,基本类型比较值 存在特例:对file,String,Date及封装等类型来说,是比较类型及对 阅读全文
posted @ 2016-09-05 09:40 一步一个脚印,坚持 阅读(689) 评论(0) 推荐(0)