jvm 02-java对象访问模式

  • java的引用类型是最为重要的数据处理模型
  • 整个引用数据类型在数据处理之中会牵扯到:堆内存、栈内存、方法区。
  • 整个引用操作流程
    • 新定义的对象名称保存在本地变量表中
    • 而后在这块区域里面需要确定要与之对应的栈内存空间
    • 通过变量表中的栈地址可以找到堆内存
    • 利用堆内存的对象进行本地方法的调用(方法区)
  • 例如:Object obj = new Object() --实例化了一个Object类对象
    • Object obj :该表达式既保持在栈内存之中,也保存了堆内存的引用。同时数据会保存在本地变量表中。
    • new Object() :该表达式为一个真正的对象,该对象保存在堆内存之中。

引用数据类型的两种模式

  • 通过句柄访问

  • 通过直接指针访问(HotSpot虚拟机)

    • 该模式没有句柄池的概念
    • 在JVM中是直接利用对象保存模式,即直接保存具体的对象
    • 该策略省略了句柄到对象间的查找,而后该对象直接进行java方法区的调用

获取当前JVM版本(java -version)

  • mixed mode为混合模式,适合于编译和执行
localhost:~ $ java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
localhost:~ $

纯解释模式启动(java -Xint -version)

localhost:~ $ java -Xint -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, interpreted mode)
localhost:~ $

纯编译模式启动(java -Xcomp -version)

localhost:~ $ java -Xcomp -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, compiled mode)
localhost:~ $

JVM的启动有两种模式

  • -server:服务器模式,占用的内存大、启动速度慢,默认模式
  • -client:本地单机运行程序模式,启动速度快
  • 配置文件路径:..Javajdk1.8.0_131jrelibamd64jvm.cfg
原文地址:https://www.cnblogs.com/liangjingfu/p/9922792.html