- 博客(7)
- 资源 (5)
- 收藏
- 关注
原创 七、引用(reference)详解
什么是引用?如果reference类型的数据中存储的数值代表的是另外一块内存的起始地址,就称这块内存代表着一个引用。引用不等同于对象本身,根据虚拟机种类的不同,可能是一个指向对象起始地址的引用指针,也可能是指向一个代表对象的句柄或其他与此对象相关的位置。
2017-03-31 20:31:25 15994
原创 六、jvm之如何判断对象已死?
在堆里面几乎存放中Java程序运行所动态生成的所有对象,垃圾回收器在对堆进行回收前,第一件事情就是要确定这些对象之中还有哪些存活,哪些已经死去(即不可能再被任何途径使用的对象)。判断的方式有两种:引用计数算法和可达性算法。 目前虚拟机基本都是采用 可达性算法,为什么不采用引用计数算法呢?下面就说说引用计数法是如何统计所有对象的引用计数的,再对比分析可达性算法是如何解决引用技术算法的不足。
2017-03-31 20:29:19 860
原创 五、Java对象的访问定位
Java对象在访问的时候,我们需要通过java虚拟机栈的reference类型的数据去操作具体的对象。由于reference类型在java虚拟机规范中只规定了一个对象的引用,并没有定义这个这个引用应该通过那种方式去定位、访问java堆中的具体对象实例,所以一般的访问方式也是取决与java虚拟机的类型。目前主流的访问方式有通过句柄和直接指针两种方式。
2017-03-31 20:27:39 521
原创 四、Java对象的内存布局
上篇博客介绍的对象的创建过程,本文来介绍一下对象的组成结构。 在HotSpot虚拟机中,对象在内存中的布局划分为3个区域:对象头(Header),实例数据(Instance Data)以及对齐填充(Padding)。对象头HotSpot虚拟机对象的对象头一般包含两部分信息。第一部分用于存储对象自身的运行时数据,例如HashCode、GC分代年龄等信息。在32位和64位的JVM中...
2017-03-31 20:26:15 607 2
原创 Markdown小结
使用Markdown进行博客的写作也已经有差不多两年了,在这里总结一下自己的一些心得和学习的路径吧!为什么要适用markdown?推荐文章:Markdown写作浅谈 这篇文章详细介绍了使用markdown进行写作的好处以及为什么要用为知笔记进行写作。markdown语法的简单介绍推荐文章:献给写作者的 Markdown 新手指南markdown编辑器1. 作业部落markdown编辑器官网 这个
2017-03-26 16:15:03 501
原创 三、JVM之对象的创建
上篇博文中已经介绍过了jvm内存的概况,接下来我们从jvm的角度来重新来认识一下Java对象是如何创建。 Java是一门面向对象的语言,在Java程序运行的时候无时无刻都有对象的产生。在 语言方面 ,创建一个对象仅仅是一个new关键字而已。那么在 虚拟机中 ,对象(仅指普通对象,不包括数组和Class对象等)的创建又是一个怎么样的过程呢?一、 类加载虚拟机遇到一条new指令时,首先将...
2017-03-20 12:57:05 616
原创 一、JVM内存区域详解
Java中虚拟机在执行Java程序的过程中会将它所管理的内存区域划分为若干不同的数据区域。下面来介绍几个运行时数据区域。 一、程序计数器1.1 简述程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行号指示器。1.2 作用大家都知道,Java程序从源文件创建到程序运行要经过两大步骤: 1...
2017-03-18 21:21:31 843
Java编程思想(第4版)_扫描版带目录+习题答案+源代码TIJ4-code
2017-11-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人