JVM相关知识

类的加载过程

双亲委派机制

原理

优势

避免类的重复加载

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

示例

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

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

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

类的主动使用和被动使用

主动使用:

  • 创建类的实例
  • 访问某个类或接口的静态变量,或者对该静态变量赋值
  • 调用类的静态方法
  • 反射
  • 初始化一个类的子类
  • JAVA虚拟机启动时被标明为启动类的类
  • JDK7开始提供的动态语言支持
    其他使用JAVA类的方式都是对类的被动使用,都不会导致类的初始化
相关推荐
杨杨杨大侠1 小时前
Java 不再需要 JVM?一文看懂 GraalVM Native Image、Substrate VM 与 JDK
java·jvm·java ee
顺风尿一寸8 小时前
从 ls -U 到 Tomcat libs加载jar包:ext4 目录哈希序如何影响 Java 文件排序顺序
linux·jvm
刘天远9 小时前
Agent最小权限实现:策略表、临时令牌与撤权回归
java·jvm·人工智能·sqlite
用户094248568031 天前
第9章:OpenJDK堆分代与 Serial/Parallel GC 基础
java·jvm
小陈不好吃1 天前
深入理解 JVM 内存模型:从堆栈结构到 GC 日志分析实战
java·jvm·java-ee·jdk
liangbo71 天前
12-JVM 调优方法论与参数速查
java·jvm
用户094248568031 天前
第8章:Java 内存模型(JMM)入门——可见性、有序性、原子性
java·jvm
西峰u1 天前
Java多线程从入门到线程安全
java·开发语言·jvm
wuminyu2 天前
Kafka中sendfile与mmap实现机制解析
java·linux·c语言·jvm·c++
万年咸鱼2 天前
JVM 内存区域详解
jvm