摘要: 线程是程序执行流的最小单位,一个进程可以有多个线程。 阅读全文
posted @ 2016-12-19 12:56 冰镇矿泉水 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1.iterator遍历linkedlist集合 这里可以看见Iterator li = list.iterator(); 那么这个iterator()方法是在它的抽象父类中,通过new Itr();去实例化这个Iterator对象。 这里cursor初始化值为0; 当cursor等于size的时候 阅读全文
posted @ 2016-12-16 15:04 冰镇矿泉水 阅读(7008) 评论(0) 推荐(0) 编辑
摘要: 实现源码 这里可以看见当我们new一个hashset时,实际上hashset类又创建了一个hashmap对象map。 当我们调用add方法时,实际上add(e)对象e作为map的key值,因为map的key不允许重复,所以set集合不允许重复元素,因为hashtable算法实现原理所以set集合也是 阅读全文
posted @ 2016-12-15 12:32 冰镇矿泉水 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 注:以下内容并非基于最新的jdk版本 q1:hashmap为什么叫hashmap? 答:hashmap基于hashtable(不是hashtable类)实现。 q2:hashtable(不是hashtable类)又什么? 答:hashtable是一个数组加链表的数据结构,以下使用hashmap举例说 阅读全文
posted @ 2016-12-14 22:32 冰镇矿泉水 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 1.hashcode的作用? hashcode代表对象的特征,在集合类中广泛的使用。 2.hashcode是如何生成的? 在普通的对象中,获得对象的内存的地址,经过一些算法,不同对象生成不同的hashcode 字符串类型,它会根据字符串的内容,生成相关的hashcode Integer类型,返回数字 阅读全文
posted @ 2016-12-14 17:41 冰镇矿泉水 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 1.与运算&,同为1为1,否则为0; 例如:10001(二进制)&10000(二进制)=10000(二进制) 2.或运算|,只要有1就是1; 例如:10001(二进制)&10000(二进制)=10001(二进制) 3.非运算~,1为0,0为1; 例如:~10001(二进制)=01110(二进制) 4 阅读全文
posted @ 2016-12-14 16:37 冰镇矿泉水 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 看代码! 就是说i=8+j++ 等价于 i=8+j然而这时候j已经等于j+1了。 那么 i = 8+ ++j等价于 i = 8+(j+1)这时候j已经等于j+1了。 阅读全文
posted @ 2016-12-09 16:29 冰镇矿泉水 阅读(132) 评论(0) 推荐(0) 编辑
摘要: LinkedList底层的实现基于双向表 next指向下一个node的地址。prev指向上一个node。 这里的代码是LinkedList类的源码。 那么当我们是用list.add(e);方法时会添加到这个链表的末位 那么链表的首尾node的prev和next,看实现代码 也就是说,firstnod 阅读全文
posted @ 2016-12-09 14:11 冰镇矿泉水 阅读(4289) 评论(0) 推荐(0) 编辑
摘要: 有参构造的用处在于构造一个对象的同时初始化它的属性。 阅读全文
posted @ 2016-12-09 10:55 冰镇矿泉水 阅读(1033) 评论(0) 推荐(0) 编辑
摘要: 源起:查看COLLECIOTNS类 Q1:为什么java需要泛型? 因为java对于对象类型的确认在编译期,那么强制类型转换就可以通过编译,但是运行时的错误却无法避免,那么泛型的存在可以避免强制类型转换的出现。 我的理解,泛型作用于一个对象的属性。 Q2:网上谈到A<Number>及B<Intege 阅读全文
posted @ 2016-12-07 14:05 冰镇矿泉水 阅读(130) 评论(0) 推荐(0) 编辑