JVM
文章平均质量分 91
Zerohuan
这个作者很懒,什么都没留下…
展开
-
Java中的final参数/变量+匿名内部类的字节码分析,以及Java 8中的使用
在Java 8之前一个常识就是如果要在方法中定义一个匿名内部类并使用该方法内的局部变量(包括参数),需要使用final关键字修饰。网上也有很多对这种机制的解释和说明,但是大部分都是一种抽象的认识。如果能够分析一下字节码,这个问题其实很清楚。显然的一个事实是局部变量(称为变量a)是保存在栈帧的局部变量表中的(引用或基本类型),这里把定义匿名内部类的方法称为方法A,匿名内部类的中使用这个局原创 2015-11-27 20:53:30 · 2814 阅读 · 1 评论 -
JVM(一)——GC,内存分配和垃圾回收
心得:Java中垃圾回收和内存可以实现高度的自动化,栈帧可以由JVM自动分配和回收,局部变量表和操作数栈也可以在编译时就确定好,堆中的内存分配和回收才是JVM关注的重点,JVM实现大多采用可达性分析来标记存活对象,什么时候标记?让用户线程主动跑到那些安全的地方(引用关系不变的时候,SafePoint和Safe Region),再由GC收集器来标记进行处理。不同的垃圾收集器甚至可以决定堆的内存布局,比原创 2016-01-03 15:54:05 · 3664 阅读 · 1 评论