【哪些内存需要回收】 当对象判定为"已死"状态,虚拟就要采取一定的手段将这些对象从内存中移除。 1.引用计数算法 很多教科书判断对象是否存活的算法是这样的:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值加1;当引用失效时,计数器减1;任何时刻计数器都为0的对象就是不可能再被使用的。 引...
分类:
编程语言 时间:
2015-04-04 15:08:14
阅读次数:
180
几条主要的最普遍的内存分配规则: 1.对象优先在Eden分配 大多数情况下,对象在新生代的Eden区中分配。 当Eden区没有足够的空间进行分配时,虚拟将发起一次Minor GC,如果GC后新生代中存活的对象无法全部放入Survivor空间,则需要通过分配担保机制提前进入到老年代中,前提是老年代中不...
分类:
编程语言 时间:
2015-04-04 14:56:08
阅读次数:
143
这句话感觉道出了GC的本质 1.程序计数器(Program Counter Register) 程序计数器是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改为这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基...
分类:
编程语言 时间:
2015-04-04 12:09:53
阅读次数:
204
final:如果一个变量或方法参数被final修饰,就表示它只能被赋值一次,但是JAVA虚拟机为变量设定的默认值不记作一次赋值。final的用途 :可用来定义变量,包括静态变量和非静态变量。可用来定义方法传入的参数。可用来定义类。可用来定义方法。修饰变量:修饰基本类型,赋予它的值是不可变的,即是常量...
分类:
其他好文 时间:
2015-04-03 13:01:00
阅读次数:
158
Java关键字this只能用于方法方法体内。当一个对象创建后,Java虚拟机(JVM)就会给这个对象分配一个引用自身的指针,这个指针的名字就是 this。因此,this只能在类中的非静态方法中使用,静态方法和静态的代码块中绝对不能出现this,这在“Java关键字static、final 使用总结”...
分类:
编程语言 时间:
2015-04-03 12:53:55
阅读次数:
194
强引用 平时我们编程的时候例如:Object object=new Object();那object就是一个强引用了。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机强引用 平时我们编程的时候例如:Object object=new .....
分类:
编程语言 时间:
2015-04-03 06:47:18
阅读次数:
292
Java虚拟机-安全沙箱《Java虚拟机》-安全沙箱学习了一下Java的安全机制,以前学习C++的时候好像就从来没有考虑过太多安全方面的问题,一些代码方面的安全问题,诸如指针、内存什么的考虑过,但是整体的安全性基本无视,学习了这一章还是有蛮多收获。沙箱组成沙箱的四个组件:类装载器 class文件检验...
分类:
编程语言 时间:
2015-04-02 23:55:35
阅读次数:
160
1、强引用 ? 平时我们编程的时候例如:Object object=new Object();那object就是一个强引用了。如果一个对象具有强引用,那就类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空 间不足,Java虚拟机...
分类:
编程语言 时间:
2015-04-02 22:44:36
阅读次数:
234
从今天开始,我会发5个关于java虚拟机的小系列:实战Java虚拟机之一“堆溢出处理”实战Java虚拟机之二“虚拟机的工作模式”实战Java虚拟机之三“G1的新生代GC”实战Java虚拟机之四“禁用System.gc()”实战Java虚拟机之五“开启JIT编译”下面说说【实战Java虚拟机之一“堆溢出处..
分类:
编程语言 时间:
2015-04-02 16:45:25
阅读次数:
255