JVM相关知识

类的加载过程

双亲委派机制

原理

优势

避免类的重复加载

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

示例

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

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

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

类的主动使用和被动使用

主动使用:

  • 创建类的实例
  • 访问某个类或接口的静态变量,或者对该静态变量赋值
  • 调用类的静态方法
  • 反射
  • 初始化一个类的子类
  • JAVA虚拟机启动时被标明为启动类的类
  • JDK7开始提供的动态语言支持
    其他使用JAVA类的方式都是对类的被动使用,都不会导致类的初始化
相关推荐
leisoo80971 天前
ig50数据落盘ClickHousevsTimescaleDBvsDuckDB实测对比 IG50免费开源股票数据API接口
开发语言·jvm·数据库·python·json
今天的砖头有点烫手啊1 天前
JVM 调优实战:从 GC 日志到参数优化,一次完整排查
java·jvm
JAVA面经实录9172 天前
MySQL问题定位与性能优化完整知识体系
java·jvm·数据库·mysql·性能优化
LCG元2 天前
【实战】树莓派物联网开发:DHT11温湿度采集与MQTT云上报全流程
java·jvm·物联网
欢醉2 天前
干货分享Gateway踩坑实录:Netty直接内存把网关吃垮了OutOfDirectMemoryError
jvm·springcloud
wuminyu3 天前
JDK21 FFM异步读取MSG_ZEROCOPY错误队列揭秘
java·linux·c语言·jvm·c++
YH55269843 天前
GPT‑5.6 Sol 原本支持 1M 上下文,Codex 现已放开此前限制,如何看待这次调整?
java·jvm·人工智能·gpt·算法·chatgpt
2602_959960923 天前
谢飞机面试大厂:Spring Boot、JVM、Redis、Kafka、微服务与音视频搜索场景求生实录
java·jvm·spring boot·redis·面试题
wuminyu3 天前
JDK21中虚拟线程和FFM协同实现高并发源码剖析
java·linux·c语言·jvm·c++
SWAGGY..3 天前
【C++进阶】:(1)继承机制详解
java·jvm·c++