JVM相关知识

类的加载过程

双亲委派机制

原理

优势

避免类的重复加载

保护程序安全,避免核心api被篡改

示例

自定义一个java.lang.String类,加载时会向上委派,启动类加载器Bootstrap ClassLoader一看是java开头的类自己可以加载,于是就由启动类加载器进行加载,这时加载出来的就是核心库中的String类而不是自定义的,并不会打印

由于核心库中的String类是没有main()方法的,于是执行自定义的String类main()方法会报错

这样可以保证对java核心源代码的保护,称为沙箱安全机制

类的主动使用和被动使用

主动使用:

  • 创建类的实例
  • 访问某个类或接口的静态变量,或者对该静态变量赋值
  • 调用类的静态方法
  • 反射
  • 初始化一个类的子类
  • JAVA虚拟机启动时被标明为启动类的类
  • JDK7开始提供的动态语言支持
    其他使用JAVA类的方式都是对类的被动使用,都不会导致类的初始化
相关推荐
hqxstudying3 小时前
Java开发时出现的问题---语言特性与基础机制陷阱
java·jvm·python
极光雨雨5 小时前
JVM中年轻代、老年代、永久代(或元空间)、Eden区和Survivor区概念介绍
java·jvm
麦兜*2 天前
Spring Boot 整合量子密钥分发(QKD)实验方案
java·jvm·spring boot·后端·spring·spring cloud·maven
崎岖Qiu2 天前
【JVM篇13】:兼顾吞吐量和低停顿的G1垃圾回收器
java·jvm·后端·面试
-Xie-2 天前
JVM学习日记(十三)Day13
jvm·学习
小白(猿)员2 天前
JVM、JDK、JRE的区别
java·开发语言·jvm
山间小僧2 天前
「查漏补缺」ZGC相关内容整理
java·jvm·后端
橙序员小站2 天前
仍然嫌GC卡顿?新一代低延迟GC了解一下
java·jvm·性能优化
籍籍川草3 天前
JVM指针压缩的那些事
java·开发语言·jvm