JVM相关知识

类的加载过程

双亲委派机制

原理

优势

避免类的重复加载

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

示例

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

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

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

类的主动使用和被动使用

主动使用:

  • 创建类的实例
  • 访问某个类或接口的静态变量,或者对该静态变量赋值
  • 调用类的静态方法
  • 反射
  • 初始化一个类的子类
  • JAVA虚拟机启动时被标明为启动类的类
  • JDK7开始提供的动态语言支持
    其他使用JAVA类的方式都是对类的被动使用,都不会导致类的初始化
相关推荐
很搞笑的在打麻将1 天前
Java集合线程安全实践:从ArrayList数据迁移问题到synchronizedList解决方案
java·jvm·算法
坚持学习前端日记1 天前
微服务模块化项目结构
java·jvm·微服务
有一个好名字1 天前
【无标题】
java·开发语言·jvm
期待のcode1 天前
Java虚拟机的垃圾对象判定
java·开发语言·jvm
期待のcode1 天前
Java虚拟机的运行模式
java·开发语言·jvm
鱼跃鹰飞1 天前
JMM 三大特性(原子性 / 可见性 / 有序性)面试精简版
java·jvm·面试
一颗青果2 天前
进程组 | 会话 |终端 | 前台后台 | 守护进程
linux·运维·jvm
进阶小白猿2 天前
Java技术八股学习Day17
java·jvm·学习
a努力。2 天前
中国电网Java面试被问:Dubbo的服务目录和路由链实现
java·开发语言·jvm·后端·面试·职场和发展·dubbo
高速de蜗牛2 天前
JVM内存模型的结构详解
jvm