java
Darling_0604
这个作者很懒,什么都没留下…
展开
-
java中的static关键字
static可以用来修饰变量、方法、代码块、内部类,还可用于静态导包。 被static修饰的变量、方法不需要依赖对象来进行访问,即使从未创建某个类的任何对象,只要类被加载,就可以通过类名.变量(方法名)来进行访问。一个static字段对每个类都只有一份存储空间,而非static字段对每个对象都有一个存储空间。 static在修饰变量时只能用于修饰成员变量而不能用于修饰局部变量。 static原创 2017-07-31 21:26:41 · 190 阅读 · 0 评论 -
java 双亲委派模型
双亲委派模型要求除了顶层的类加载器外,其余的类加载器都应当有自己的父类加载器。这里的类加载器之间的父子关系一般不会以继承的关系来实现,而都是以组合的关系来复用父加载器的代码。 双亲委派模型的工作过程是:如果一个类加载器 收到了类加载器的请求,它首先不会自己去尝试加载这个类,而是把这个类委托给父类加载器去完成,每个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有原创 2017-07-31 21:28:51 · 384 阅读 · 0 评论 -
Java集合HashSet源码剖析
public class HashSet extends AbstractSet implements Set, Cloneable, java.io.Serializable HashSet实现Set接口,内部维护一个HashMap实例变量。不保证顺序,允许null元素。 对于基本的操作,如add,remove,contains,size,只需要常量的时间转载 2017-07-31 23:01:38 · 260 阅读 · 0 评论 -
ConcurrentHashMap实现原理
HashMap在并发执行put操作时会引起死循环,因为多线程会导致HashMap的Entry链表形成环形数据结构,Entry的next节点永远都不会为空,就会产生死循环获取Entry。 HashTable容器使用synchronized来保证线程安全,当一个线程访问HashTable的同步方法,其他线程也访问同步方法时会进入阻塞或轮询状态,导致其效率低下。 ConcurrentHashMap使原创 2017-08-03 22:13:23 · 204 阅读 · 0 评论 -
Java集合ArrayList源码解析
对于集合,我认为关注的点主要有四点: 1、是否允许空 2、是否允许重复数据 3、是否有序,有序的意思是读取数据的顺序和存放数据的顺序是否一致 4、是否线程安全 ArrayList ArrayList是最常见以及每个Java开发者最熟悉的集合类了,顾名思义,ArrayList就是一个以数组形式实现的集合,以一张表格来看一下ArrayList里面有哪些基本的元素:转载 2017-08-04 22:12:33 · 239 阅读 · 0 评论 -
Java集合HashMap的源码解刨
初识HashMap 之前的List,讲了ArrayList、LinkedList,最后讲到了CopyOnWriteArrayList,就前两者而言,反映的是两种思想: (1)ArrayList以数组形式实现,顺序插入、查找快,插入、删除较慢 (2)LinkedList以链表形式实现,顺序插入、查找较慢,插入、删除方便 那么是否有一种数据结构能够结合上面两种的优点呢?有,答案转载 2017-07-31 23:08:59 · 236 阅读 · 0 评论