博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
002. 深入JVM学习—JVM对象访问模式
阅读量:6144 次
发布时间:2019-06-21

本文共 1132 字,大约阅读时间需要 3 分钟。

hot3.png

1. Object obj = new Object(); 分析


  1. Object obj:描述的是保存在栈内存之中,而后保存有堆内存的引用,这个数据会保存在本地变量表中(变量表描述有哪些对象,保存对象栈的位置,栈对应着堆内存地址,所以这也是java变量不允许重名的原因)

  2. new Object():一个真正的对象,保存在堆内存之中。

  3. 直观操作

    • 新定义的对象名称保存到本地变量表中,而后在这块区域中需要确定与之对应的栈内存空间。
    • 通过变量表中的栈地址可以找到堆内存。
    • 利用堆内存的对象进行本地方法的调用(方法区)。

2. 访问引用类型数据的模式


  1. 通过句柄访问(连接最稳定)

    句柄访问

  2. Java通过直接指针访问——HotSpot虚拟机

    • Java中使用的是对象保存模式,也就是说堆内存中不需要保存句柄,而直接保存具体的对象。省略了句柄到对象间的查找。而后这个对象可以直接进行Java方法区的调用。

    Java运行流程图

3. JVM历史简介


  1. 三种JVM

    • SUN公司最早改良的HotSpot
    • BEA公司的JRockit
    • IBM JVM's
  2. Oracle收购了SUN和BEA之后,得到了业内的两个虚拟机版本。

4. 范例


  1. 取得当前的JVM版本

    java -version
    java version "1.8.0_171"Java(TM) SE Runtime Environment (build 1.8.0_171-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)
    • mixed mode:所谓的混合模式就是适合于编译和执行。
  2. 使用纯解释模式启动

    java -Xint -version
    java version "1.8.0_171"Java(TM) SE Runtime Environment (build 1.8.0_171-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, interpreted mode)
  3. 使用纯编译模式启动

    java -Xcomp -version
    java version "1.8.0_171"Java(TM) SE Runtime Environment (build 1.8.0_171-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, compiled mode)

5. 总结


  • 引用数据类型在HotSpot中都是直接进行的引用处理,没有句柄池的概念。

转载于:https://my.oschina.net/shadowolf/blog/1833984

你可能感兴趣的文章
ICCV2017 论文浏览记录
查看>>
科技巨头的交通争夺战
查看>>
当中兴安卓手机遇上农行音频通用K宝 -- 卡在“正在通讯”,一直加载中
查看>>
Shell基础之-正则表达式
查看>>
JavaScript异步之Generator、async、await
查看>>
讲讲吸顶效果与react-sticky
查看>>
c++面向对象的一些问题1 0
查看>>
直播视频流技术名词
查看>>
企业级java springboot b2bc商城系统开源源码二次开发-hystrix参数详解(八)
查看>>
java B2B2C 多租户电子商城系统- 整合企业架构的技术点
查看>>
IOC —— AOP
查看>>
比特币现金将出新招,推动比特币现金使用
查看>>
数据库的这些性能优化,你做了吗?
查看>>
某大型网站迁移总结(完结)
查看>>
部署SSL证书后,网页内容造成页面错误提示的处理办法
查看>>
MS SQLSERVER通用存储过程分页
查看>>
60.使用Azure AI 自定义视觉服务实现物品识别Demo
查看>>
Oracle 冷备份
查看>>
jq漂亮实用的select,select选中后,显示对应内容
查看>>
C 函数sscanf()的用法
查看>>