随笔分类 -  JVM

摘要:1 JDK7和JDK8将字符串常量池存放在了堆中 字符串常量池string pool中存的是引用值而不是具体的实例对象,具体的实例对象是在堆中存放的,string pool实现为哈希表。 public class TestStringPool { //-Xms5m -Xmx5m -XX:-UseGC 阅读全文
posted @ 2019-06-19 12:00 踏月而来 阅读(1363) 评论(0) 推荐(0)
摘要:JVM默认的三个类加载器 AppClasLoader 系统类加载器 ExtClassLoader 扩展类加载器 BootstrapClassLoader 根类加载器 (由C++实现,在控制台打印出来的是null) 他们加载的jar包所在的路径不同 父委托机制 Invoke findLoadedCla 阅读全文
posted @ 2019-05-27 12:43 踏月而来 阅读(207) 评论(0) 推荐(0)
摘要:内存模型粗略划分为:堆和栈 详细划分为:堆,栈,本地方法栈,方法区,程序计数器 堆: 存放对象实例 栈: 每创建一个线程,都会为他分配内存空间作为他的栈,当方法执行时,会生成对应的栈帧(局部变量表、操作数栈、动态链接、方法出口),每一个方法被调用直至执行完成的过程,就对应着一个栈帧在栈中从入栈到出栈 阅读全文
posted @ 2019-04-13 10:59 踏月而来 阅读(745) 评论(0) 推荐(0)
摘要:类的加载分为三个阶段,加载 >链接 >初始化 类加载的过程 将class表示的二进制文件加载到内存,放在方法区中,并在堆中创建一个java.lang.Class对象(封装的是class的数据结构) 类的主动使用,会加载类 1 new Test() 2 对类中的静态变量进行读写,对接口中的静态变量进行 阅读全文
posted @ 2019-03-19 12:31 踏月而来 阅读(1487) 评论(0) 推荐(0)