zoukankan      html  css  js  c++  java
  • jvm知识点

    一 对象的创建过程

    1.loding

    程序运行时,java文件程序被编译为class文件后,  将.Class文件加载到内存 此时会触发 JVM双亲委派机制* findInCache -> parent.loadClass -> findClass()

    2.Linking 

    静态变量赋默认值

    1. Verification
    1. 验证文件是否符合JVM规定
    2. Preparation
    1. 静态成员变量赋默认值
    3. Resolution
    1. 将类、方法、属性等符号引用解析为直接引用 常量池中的各种符号引用解析为指针、偏移量等内存地址的直接引用

    3. Initializing

    调用类初始化代码 <clinit>,给静态成员变量赋初始值

    4.申请对象内存

    5.成员变量赋默认值

    6.调用构造方法<init>

       1.成员变量顺序赋初始值

       2.执行构造方法语句

    二 对象在内存中的存储布局

     

    普通对象


    1. 对象头:markword 8
    2. ClassPointer指针:-XX:+UseCompressedClassPointers 为4字节 不开启为8字节
    3. 实例数据
    引用类型:-XX:+UseCompressedOops 为4字节 不开启为8字节
    Oops Ordinary Object Pointers
    4. Padding对齐,8的倍数

    数组对象

    1. 对象头:markword 8
    2. ClassPointer指针同上
    3. 数组长度:4字节
    4. 数组数据
    5. 对齐 8的倍数
    个人网址 http://threenut.cn/
  • 相关阅读:
    cocos2d-x 游戏暂停界面,监听home键,返回键,Menu键 解决方案
    转载cocos2dx的各种动作用法
    cocso2d-x改变精灵图片
    cocos2d-x 菜单
    for循环
    nginx限制IP访问网站
    zabbix server in not running
    筛选nginx访问日志文件中的域名
    Zabbix历史数据清理
    http跳转http
  • 原文地址:https://www.cnblogs.com/july7/p/15377089.html
Copyright © 2011-2022 走看看