
虚拟机
小强的不死
这个作者很懒,什么都没留下…
展开
-
虚拟机---4.gc
下文纯个人理解,有不同意见欢迎指点批评。这些纯个人知识梳理总结讲到虚拟机,大伙肯定会讲垃圾回收。方便,自动。那什么是垃圾?没人用了。那哪里才有垃圾?内存。具体回收都说是堆,其实还有共享方法区;共享方法区,就是放了二进制文件的对象和二进制结构和静态常量的地方;它怎么回收确定,想下,这个二进制文件进来,是有触发。既然回收就是全部触发都没了。new的对象回收了。没有实例了。class对象没人...原创 2018-11-20 21:43:28 · 115 阅读 · 0 评论 -
虚拟机---5.溢出
只考虑虚拟机结构化溢出1. 堆溢出,数组扩容,丢弃 设置下-Xms8m -Xmx8m java.lang.StringBuilder stringBuilder = new java.lang.StringBuilder(); for(;;){ stringBuilder.append(" a "); ...原创 2018-11-21 22:57:19 · 1990 阅读 · 0 评论 -
虚拟机---2.加载
金句:加载不一定初始化,初始化不是实例化 接着1.二进制文件的编译后,会干啥?我的文章都是记录总结,梳理自己的知识。这篇更多是个人理解和总结。说白就是吹水。。。文件编译成虚拟机识别的结构,类的表结构;肯定下一步就是加载进虚拟机。a、先,二进制文件会是啥东西?类,接口,数组(人家把类当数组用,数组交由虚拟机自己直接生成,无需二进制文件加载 new test [100...原创 2018-11-20 00:56:31 · 164 阅读 · 0 评论 -
虚拟机---3.执行
接着上一篇的加载,存成虚拟机要求的结构。那下一步就是代码的执行。字节码已经加载进来,肯定是你new了它,或者其他情况触发了它的加载。打比如new了它,也就加载、链接(验证、准备、解析)、初始化了。再接着就是实例化。实例化,这个过程是啥,就是执行。这过程涉及到啥?怎么样把字节码转化成机器码(设备可识别代码)?虚拟机抽象定义,new这个操作就是一个栈帧,平时打印异常,记得不,e.print...原创 2018-11-20 01:54:36 · 151 阅读 · 0 评论 -
虚拟机---1.二进制
了解了结构后,多大的名字编译不过。引用字符名标示长度为u2,两个8位,2的16次方,65536字节;64KB;一个字母一个字节,64000个字母。一、txt编写简单类public class XiaoQiang{ private String name; public void setName(String name){ this.name = name;...原创 2018-11-18 15:32:36 · 723 阅读 · 0 评论