随笔分类 - java学习
摘要:类的加載规则 总的顺序是:先父类后子类,先静态后动态,属性和代码块的初始化遵循正常的出场顺序无论是静态还是动态,但是他们总是先于构造器执行。 注:当加载到一个静态属性的时候他的赋值对象为一个静态的对象,这个时候就会中断静态相关的加载,转而先去执行非静态相关的代码。这里还需要注意的是属性和代码块的加载
阅读全文
posted @ 2019-01-16 10:33
楠木(鱼摆摆)
摘要:介绍 垃圾回收需要做的三件事:1.那些内存需要回收;2.什么时候需要回收;3.如何回收。 如何判断对象可以回收? 引用计数法 即对象在被创建时,添加一个引用计数器,每当有一个地方引用它时,计数器+1,引用失效时,计数器-1,任何时刻计数器为0的对象就是不可能再被使用的(是可以被回收还是不可能在被使用
阅读全文
摘要:介绍 原文地址:1 在启动虚拟机时,可以通过配置不同参数来自定义自己的内存相关信息。 注:以下参数都是直接举例使用,可以通过修改后面的数字和单位直接使用。 JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K.更具应用的线程所需内存大小进行 调整.在相同物理内存下,减小这个值能生成
阅读全文
摘要:介绍 如图,这是jvm运行时的数据分析。以下分别介绍各个数据区域的作用 程序计数器 程序计数器是jvm较小的一块内存空间,可以看作当前线程所执行的字节码的行号指示器。程序计数器是线程私有的内存(java虚拟机多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器
阅读全文
摘要:原文:LinkedHashSet 和 LinkedHashMap 介绍 LinkedHashSet和LinkedHashMap在Java里也有着相同的实现,前者仅仅是对后者做了一层包装,也就是说LinkedHashSet里面有一个LinkedHashMap(适配器模式)。因此本文将重点分析Linke
阅读全文
摘要:介绍 原文地址:HashSet and HashMap 二者在Java里有着相同的实现,前者仅仅是对后者做了一层包装,也就是说HashSet里面有一个HashMap(适配器模式)。因此本文将重点分析HashMap。 HashMap实现了Map接口,允许放入null元素,除该类未实现同步外,其余跟Ha
阅读全文
摘要:介绍 HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java集合框架中的一部分。 HashMap和H
阅读全文
摘要:ArrayDeque介绍 原文地址:arrayDeque ArrayDeque和LinkedList是Deque(double ended queue)的两个通用实现,官方更推荐使用AarryDeque用作栈和队列。 从名字可以看出ArrayDeque底层通过数组实现,为了满足可以同时在数组两端插入
阅读全文
摘要:LinkedList介绍 LinkedList继承了List和Deque(双向链表)的接口,也就是说LinkedList集合是一个顺序容器,即可以满足队列的先进先出,也可以满足栈的先进后出,当你需要使用栈或者队列时,可以考虑使用LinkedList,一方面是因为Java官方已经声明不建议使用Stac
阅读全文
摘要:java容器接口类图 注:Map接口没有继承自Collection接口,因为Map表示的是关联式容器而不是集合。但Java为我们提供了从Map转换到Collection的方法,可以方便的将Map切换到集合视图。上图中提供了Queue接口,却没有Stack,这是因为Stack的功能已被JDK 1.6引
阅读全文