对象

Java虚拟机采用自动的内存管理和自适应的优化策略。但了解java虚拟机的运行机制和优化策略,写出适合java虚拟机管理的程序对性能提升是有意义的。

逃逸分析:对象的作用范围只在本线程范围,如方法(包括静态方法)中new 对象,这个对象是不可能被其它线程共享。可以直接在栈上分配内存。栈上数据在出栈后会释放内存,不需要GC回收。

大对象:虚拟机栈容量有限,大的对象会直接在堆上分配。堆内存回收频率低,影响范围和时间长。避免大的对象编写。

 

对象在虚拟机中设计至关重要,连接栈帧、堆、锁信息、常量池信息、编译及优化。

这里是对对象的简介,由于时间和水平,目录如下,此后会继续写Hotspot角度对象详细设计。

对象    3

对象的创建    3

1. 类加载检查    4

2. 对象分配内存    4

3. 并发处理    5

4. 内存空间初始化    5

5. 对象设置    5

6. 执行init()    5

对象内存布局    6

对象头    6

实例数据    6

对齐填充    6

对象访问定位    7

对象的三种状态:    9

引用标记    9

引用计数法    9

可达性分析算法    10

支配树    10

对象的引用类型    11

强引用(StrongReference)    12

软引用(SoftReference)    14

弱引用(WeakReference)    15

虚引用(PhantomReference)    16

其它API    17

回收    18

对象回收    18

最新文章

  1. 基于ruby的watir自动化测试 笔记一
  2. October 5th 2016 Week 41st Wednesday
  3. SQL语句实现取消自增列属性
  4. MapReduce之单词计数
  5. ansible 配置运行环境
  6. MySQL存储引擎总结
  7. ORM之PetaPoco入门(二)--Petapoco基本用法
  8. Qt tip 网络请求 QNetworkRequest QJason 处理 JSON
  9. jq之简单表单验证
  10. spark 中的RDD编程 -以下基于Java api
  11. 模拟赛20181016 Uva 1040 状压+搜索 2005 ACM world final problem c
  12. 并发编程之synchronized关键字
  13. 收藏一个带动画效果的ScrollViewer以及ScrollBar的模板
  14. Uncaught InvalidStateError: Failed to set the 'value' property on 'HTMLInputElement': This input element accepts a filename, which may only be programmatically set to the empty string.
  15. Linux之文件(目录)默认权限、特殊权限与隐藏权限
  16. 出现“error LNK1169: 找到一个或多个多重定义的符号”的原因
  17. pyspider源码解读--调度器scheduler.py
  18. CentOS最小安装无法使用ifconfig命令
  19. poj 2599 单调栈 ***
  20. C# Random 生成不重复随机数

热门文章

  1. URAL 1984. Dummy Guy(数学啊)
  2. Java---24---基本数据类型对象包装类
  3. sklearn--feature extract--人脸识别
  4. 记录:Android中StackOverflow的问题
  5. sql server 集群配置
  6. 开发中可能会用到的几个小tip----QT, pycharm, android, 等
  7. amchart 图表设置
  8. 简洁方便的集合处理——Java 8 stream流
  9. oracle浅析导致数据库性能问题的常见原因
  10. LNMP环境搭建之php安装,wordpress博客搭建