Java虚拟机
文章平均质量分 86
Freedom小黄
这个作者很懒,什么都没留下…
展开
-
Java的内存区域以及各种垃圾回收算法和垃圾回收器
Java的内存区域可以分为 方法区(区别于永生代),堆,JVM栈,本地方法栈,程序计数器。 其中方法区,堆是线程共享的,JVM栈和本地方法栈,程序计数器是线程独有的。 1.程序计数器相当于当前线程执行的字节码的行号指示器。就是线程切换后可以恢复到正确的位置。 2.JVM栈是线程私有的,每个方法调用的时候都会创建一个栈帧用于存储局部变量表、操作数栈、原创 2016-09-08 18:40:59 · 1904 阅读 · 0 评论 -
内存泄露和内存溢出
内存泄露和内存溢出这两个概念经常会被很多人搞混,到底这两个的区别是什么呢。 内存溢出是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory。 内存泄漏是指分配出去的内存不再使用,但是无法回收。下面就是例子: List list=new ArrayList(); for(int i=1;i<100;i++){ Obje原创 2016-09-07 15:48:37 · 273 阅读 · 0 评论 -
强引用,软引用,弱引用,虚引用
强引用就是我们通常意义上的引用,类似”Object object=new Object();”,只要强引用在,就不会被GC。 软引用,这种对象就是拿来JVM拿来防止内存溢出的一个措施,当JVM要进行内存泄露的时候就会把这种对象进行回收,如果内存还不够,才会抛出OutOfMemoryError。SoftReference<A> softReference=new SoftReference<>(ne原创 2016-09-07 16:17:25 · 433 阅读 · 0 评论