嘟嘟程序猿JvmJava进阶

Java类加载机制

2019-05-07  本文已影响105人  与搬砖有关的日子

1、类的加载

类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在方法区的内存中,然后再堆区创建一个java.lang.class对象,用来封装类再方法区中的数据结构。类加载器并不需要等到某个类被“首次主动使用”时再加载它,JVM规范允许类加载器在预料某个类将要被使用时就预先加载它 image.png

2、类的生命周期 image.png

3、对象的创建过程 image.png

4、类加载器

在类加载的第一个阶段“加载”过程中,需要通过一个类的全限定名来获取此类的二进制字节流,完成这个动作的代码块就是类加载器。


image

JVM类加载机制

5、双亲委派模型

如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把请求委托给父加载器去完成,依次向上,因此,所有的类加载请求最终都应该被传递到顶层的启动类加载器中,只有当父加载器在它的搜索范围中没有找到所需的类时,即无法完成该加载,子加载器才会尝试自己去加载该类。

6、类的实例化顺序(原文地址

先静态,先父后子;先静态:父静态>子静态;优先级:父类>子类静态代码块>非静态代码块>构造函数。

7、String对象的两种创建方式

image

字符串拼接会重新创建对象。
java基本数据类型Byte、Short、Integer、Long、Character、Boolean实现了常量池,这5类数据创建了[128,127]的相应类型的缓存数据,超过此范围仍然需要去创建新的对象,Float、Double没有实现常量池。


image
上一篇 下一篇

猜你喜欢

热点阅读