• JAVA虚拟机


    1.java虚拟机是什么

    1. 抽象规范
    2. 一个具体的实现
    3. 一个运行中的虚拟机实例  

    2.java虚拟机的生命周期

    当启动一个java程序时时,一个虚拟机实例就诞生了,当程序中的所有非守护线程都终止时,虚拟机实例将退出

    3.java虚拟机的体系结构

     

     4.数据类型

    5.字长

    虚拟机中最基本的数据单元是字,两个字单元需持有long或double类型的值

    6.类装载器子系统

    用户自定义的类需派生自java.lang.ClassLoader类,每一个被装载的类型,都会被创建一个java.lang.Class实例

    ClassLoader中的四个重要方法:

    7.方法区

    还存储:

    1. 常量池
    2. 字段信息
    3. 方法信息
    4. 类静态变量
    5. 一个到ClassLoader的引用
    6. 一个到Class实例的引用:Class类中的方法,获得Class的方式:Class.forName(String className);对象的getclass()方法
    7. 方法表

    8.堆

    堆空间设计的两种方式:

    第一种对象移动方便,但需要进行两次指针传递;第二种只需要一个指针,但是移动对象时需要更新整个运行时数据区中指向对象的引用

    方法表:

    此外,堆上还负责存储对象锁,等待集合

    数组在堆上的表示:

    9.程序计数器

    10.栈

    栈帧由三部分组成:

    1. 局部变量区:方法对应的参数和局部变量
    2. 操作数栈
    3. 帧数据区:支持常量池解析,正常方法返回,异常派发数据

     栈的生长方式:

  • 相关阅读:
    jquery的全选,全不选,反选
    jquery中的on方法绑定动态元素
    IIS服务器不能下载.apk文件的解决方略
    14:堆和堆排序
    虚拟内存
    leetcode28:实现strStr()
    leetcode387:字符串中的第一个唯一字符
    leetcode344:反转字符串
    leetcode198:打家劫舍
    leetcode64:最小路径和
  • 原文地址:https://www.cnblogs.com/qilong853/p/6526453.html
Copyright © 2020-2023  润新知