jvm第二章(二)



上面const pool 常量池 在运行的时候 加载在内存里 就叫做 运行时常量池。




加载

方法区是一个虚的概念
jdk1.7及以前 叫永久代 之后 叫元空间 都算是方法区具体的落地实现。 泛泛称为 方法区 没问题。

动态代理技术 用的较多的类 java.lang.reflact.proxy


CA FE BA BE 魔术(标识)

链接

初始化


静态变量(或称 类变量)


声明的变量在后面的,那么在之前的静态代码块当中,是不可以去调用它的,是可以给它赋值。

构造器 对应过来 就是 init方法

先引入了A的值 ,再引入了B的值。那A呢 是因为父类已经提前加载过了导致的。

一个类 它往内存中加载的话,只需要加载一次就可以了 加载完之后,把它放在 方法区
方法区在jdk8的时候 用的是 元空间
元空间实际使用的是本地内存。
也就是我们把类加载在内存中以后,使用的是直接内存给缓存起来了,
之后你再使用这个类的话,实际上都是使用 内存中已经存在的类本身。
也就是 一个类 只会被加载一次(clinit)

原文地址:https://www.cnblogs.com/sakura579/p/14166214.html