当前位置: 首页 > news >正文

openjdk源码==类加载过程

jdk\src\share\bin\main.c     

main

JLI_Launch

jdk\src\share\bin\java.c  JLI_Launch

jdk\src\solaris\bin\java_md_solinux.c    

        JVMInit

        ContinueInNewThread

        JavaMain

        InitializeJVM

jdk\src\share\bin\java.h

        CreateJavaVM

调用JNI

hotspot\src\share\vm\prims\jni.cpp

        JNICALL JNI_CreateJavaVM(

hotspot\src\share\vm\runtime\thread.cpp

        jint Threads::create_vm

hotspot\src\share\vm\runtime\init.cpp

        init_globals

        classLoader_init(); //读取JDK自己的rt.jar中class的地址并保存地址

        universe2_init();//从上面的地址中加载解析JDK自己的class文件到内存

hotspot\src\share\vm\memory\universe.cpp

         universe2_init()

        void Universe::genesis(TRAPS) {

        SystemDictionary::initialize(CHECK);

hotspot\src\share\vm\classfile\systemDictionary.cpp

        void SystemDictionary::initialize(TRAPS) {

        initialize_preloaded_classes(CHECK);

        initialize_wk_klasses_until(jsr292_group_start, scan, CHECK);

        k = load_instance_class(name, class_loader, THREAD);

         k = ClassLoader::load_classfile(class_name, CHECK_(nh));

===================

HotSpot源码篇-执行main方法 - 简书

        

http://www.lryc.cn/news/10546.html

相关文章:

  • vue2的后台管理系统 迁移到 vue3后台管理系统
  • 2023年美赛F题
  • 【数据结构与算法分析】介绍蛮力法以及相关程序案例
  • 用股票交易量查询接口是怎么查询a股全天总成交量的?
  • 求职季哪种 Python 程序员能拿高薪?
  • 如何选择好的IB课程学校?
  • 2023美赛ABCDEF题思路+参考文献+代码
  • DataEase 制作数据可视化大屏经验分享
  • 前端基础-2day
  • 在线一键JS混淆还原
  • Java基本语法
  • 什么表单设计工具能快速提升办公效率?
  • SystemVerilog——Axi4Lite_To_Localbus
  • 硬件_IMX6ULL的LCD控制器
  • ICLR 2022—你不应该错过的 10 篇论文(下)
  • 国内外优秀程序员的私域博客大全
  • 【C++ Primer Plus】第六章:分支语句和逻辑运算符
  • 堡垒机的主要功能是什么?为什么需要堡垒机?
  • 记录spring中Transactional事务注解失效的六个场景
  • 【23种设计模式】行为型模式详细介绍(下)
  • dbeaver工具连接达梦数据库
  • 比Teambition、Worktile 更适合研发团队的几大工具盘点
  • matlab图像处理常用功能以及函数
  • eBPF 之 ProgramType、AttachType和InputContext
  • C++运行时类型识别RTTI
  • idea多时编辑多行-winmac都支持
  • BI是报表?BI是可视化?BI到底是什么?
  • Python基础-数据类型之元组
  • 大数据面试小抄
  • Vue:(三十一)Vue封装的过度与动画