zoukankan      html  css  js  c++  java
  • JVM调优学习

    java类的加载过程

    jvm的核心类加载器

    什么是双亲委派

    启动jvm.dll文件启动java虚拟机---》创建一个类加载器(c++)---》c++调用java代码启动sun.miscLauncher实列,然后通过这个实例启动很多java类加载器---》获取自己的加载器classloder,是AppClassLoder的实例(launcher.getClassLoder())---》运行指定的类文件---》调用main方法启动---》运行程序---》jvm销毁

    类的加载:验证,准备,解析,初始化jvm,加载使用

      验证:验证字节码的准确性

      准备:给类的静态变量分配内存,并赋予默认值

      解析:将符号引用转变为直接引用(指向数据存储在内存中的指针或句柄)

      初始化:对类的静态变量初始化为指定的值,执行静态代码块

    运行时常量池,类型信息,字段信息,方法信息,类加载器的引用,对应class实例的引用

    引导类加载器:负责加载支撑jvm运行的位于jre的lib目录下的核心类库,不如rt。jar,charsets.jar等

    扩展类加载器:负责加载支撑jvm运行的位于jre的lib下的ext扩展目录下的jar包

    应用程序类加载器:负责加载classPash路径下的jar包,主要是加载自己写的类

    自定义类加载器:负责加载用户自定义路径下的类包

     

     java虚拟机主要有

     java每个方法启动都会在栈中分配一块内存

      在栈帧中存储局部变量,操作数栈,动态链接,方法出口等

      程序计数器:记录程序执行到哪一行代码

      操作数栈:用于计算局部变量的内存空间

      动态链接:将符号转化为jvm认识的符号

      方法出口:记录方法返回到主线程的位置

    jvisualvm

    对象头  实时数据  

    逃离分析  标量替换

    加油,每天都是精彩的一天
  • 相关阅读:
    WDA学习(14):Colors Cell and Input Enable to ALV Column
    JavaScript try-catch语句(错误处理)
    constructor
    input file 重复上传同一张图片失效的解决办法
    input下拉带输入框
    box-shaw四边阴影详解
    苹方字体合集
    两个div不同高度并排显示
    弹窗库
    webstorm破解安装版本
  • 原文地址:https://www.cnblogs.com/xining/p/14503288.html
Copyright © 2011-2022 走看看