- 博客(6)
- 收藏
- 关注
原创 集合之Set
Set集合就像是一个罐子,它记不住添加元素的顺序,所以Set集合不允许元素重复。即Set集合的特性是*无序,不重复的*。# HashSetHashSet是采用hash算法来存储元素的集合,所以查找与存取的速度都比较快。HashSet底层是通过HashMap实现的:private transient HashMap map; // Dummy value to associ
2017-08-09 17:09:08 320
原创 for、for-each、迭代器
在jdk1.5之前,迭代集合的时候通常使用迭代器,而迭代数组的时候通常选择for循环,但是1.5之后,可以使用for-each循环,它摒弃了传统for循环的索引,或者在使用iterator时不用调用hasNext()就可以进行遍历。事实上,for-each内部还是用iterator,能够使用for-each循环的对象必须实现了Iterable接口,该接口中就包含了一个iterator方法,该方
2017-08-09 11:32:01 553 1
原创 集合之List
集合java的集合主要分类Collection接口和Map接口,Collection接口作为集合的根接口,实现了Iterable接口,表示集合可以进行for-each循环。继承树如下:注:Iterable与Iterator的比较:Iterable接口中有个名字叫做iterator的方法需要实现,而Iterator接口中有next()、hashNext()、remove()三个方法需
2017-08-09 11:18:11 273
原创 对象相等之equals与==的区别
# 对象相等怎么样才算是对象相等?其实判断对象相等有两种:1.对象相等性:即堆中的两个不同对象在意义上相等,其实也就是两个对象在堆中的内容相等。2.引用相等性:即两个对象的引用指向堆中同一个对象,也就是两个对象在栈中的内容相等。知道了对象相等的两种判断标准,就来说一个equals与==的区别吧~# equals()方法假设有两个对象x,y,判断x.equals(y)有结果f
2017-08-09 10:27:53 1162
原创 synchronized
上一篇中在提到StringBuffer类中操作字符串的方法都是用synchronized修饰的,所以是线程安全的,那么在这篇就介绍一个synchronized是什么,为什么它修饰了就是线程安全的。造成线程安全的诱因1.存在共享数据2.存在多条线程共同操作共享数据解决方案当存在多条线程操作共享数据时,只要保证在同一时刻有且只有一条线程能够操作该共享数据,其他线程之一必须等
2017-08-08 18:51:18 255
原创 String、StringBuffer
这个话题貌似是面试必问的问题了,我也认认真真的学习了一下,下面是我的一些愚见~1.String类代表了字符串,是常量,因此是不可变的。String来的源码中有这样一段代码:/** The value is used for character storage. */private final char value[];这是一个final修饰的不可变的数组,注释说明它是
2017-08-08 18:04:13 2726
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人