zoukankan      html  css  js  c++  java
  • 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. 帧数据区:支持常量池解析,正常方法返回,异常派发数据

     栈的生长方式:

  • 相关阅读:
    javascript 字符串截取
    HTML5 转
    Javascript try catch finally
    C#之json字符串转xml字符串
    AspNetCore Json序列化设置
    类加载(对象创建)顺序
    线性表,线性表和链表的区别
    Implement int sqrt(int x).
    Add Binary
    Roman to Integer(将罗马数字转成整数)
  • 原文地址:https://www.cnblogs.com/qilong853/p/6526453.html
Copyright © 2011-2022 走看看