
jdk: 有编译器帮我们javac进行编译了。
javac Person.java 编译 生成Person.class文件
sublime可以查看2进制或16进制,查看 编码。oracle官网会有说明。
16进制,u2表示两位数。开头都是cafe babe

反编译 :javap -c XXX.class > XXX.java

装载:class -> JVM 类装载器

这就是双亲委派。根据全限定名来找,依次交给父类,找不到才交给自己。
tomcat就破坏了双亲委派,有自己的类加载器,比如说先加载自己路径下的。
JVM参考了冯诺依曼计算机模型。


左边两个(方法区和堆):进程相关。线程共享
右边3个:线程相关。线程私有
运行时常量池已经改成分布到方法区了。

方法区 和 堆 都会OOM
虚拟机栈:
栈帧:


网址:

例如:

每一个线程都有一个java虚拟机栈。


可以看到上边三个都是线程私有的。
方法区指向堆:static var = new Obj(); 静态成员变量直接new,就是方法区指向堆。

对象大小必须是8字节的整数倍。
Class Pointer就是指向方法区的。




1111

被折叠的 条评论
为什么被折叠?



