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

JVM专题

JVM类加载

Java里有如下几种类加载器:

  • 引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如 rt.jar、charsets.jar等
  • 扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR类包
  • 应用程序类加载器:负责加载ClassPath路径下的类包,主要就是加载你自己写的那些类
  • 自定义加载器:负责加载用户自定义路径下的类包

JVM类加载运行全过程

当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到 JVM。

通过Java命令执行代码的大体流程如下:
        

        

JVM内存模型

    在JDK8中,运行时数据区(内存模型),一共分堆、栈(线程)、本地方法栈、程序计数器、方法区(元空间),方法区(原空间)中有:常量+静态变量+类信息。

JVM对象结构

对象内存分配

new一个对象,判断是否栈内分配,如果是栈上进行分配,如果是否,再判断是否是大对象,如果是,判断OLD,如果否,进行Full GC,然后结束,如果是,判断AGE,如果否,进行S2,判断Minor GC,如果否,转到S1,如果是,结束,

        如果不是大对象,判断TLAB,如果是/否,进行EDEN,再进行Minor GC后续判断流程。

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

相关文章:

  • 蓝桥杯模板题目
  • SAP IDT - Building Data Foundation
  • 【Python】【进阶篇】三、Python爬虫的构建User-Agnet代理池
  • 数据结构.双链表的各种操作
  • 去年12月被无情辞退,三个月后我携手自动化测试神技王者归来
  • 区块链技术之共识机制
  • SpringCloud断路器——Hystrix
  • 分布式 - 分布式体系架构:集群和分布式
  • NodeJs常用内置模块
  • 4.0 功能抢先看 | 读懂一个项目的研发效能 之 项目人效
  • Object方法
  • 042:cesium加载Eris地图(多种形式)
  • 第十四届蓝桥杯大赛软件赛省赛(C/C++B组)
  • Python生成随机验证码
  • Longitudinal Change Detection on Chest X-rays Using Geometric Correlation Maps
  • 5年功能测试的一些心得
  • 在外包做了3年测试,离职后却成功入职字节跳动.....
  • 网络编程套接字( TCP )
  • QT 判断当前操作系统是否为 Windows 8 及以下版本
  • 走进小程序【五】微信小程序架构之【逻辑层】详解
  • mysql workbench使用教程
  • 蓝易云:Linux系统常用命令-系列【3】
  • Nginx实现会话保持,集群模式下session域共享
  • 【SpringMVC】6—SpringMVC拦截器
  • 【算法】插入排序
  • java servlet 期刊在线投稿系统jsp编程sqlserver数据库mvc模式开发计算机网页设计
  • 命名空间和程序集
  • 108、指针进阶
  • arm平台交叉编译rt-tests
  • Melis4.0[D1s]:5.测试笔记 - 修改显示测试源码