《深入理解Java虚拟机》 第二版中介绍到了类的加载过程。一个类从加载入内存到卸载出内存为止,整个生命周期包括:Loading(加载)-----Verification(验证)-----Preparation(准备)-----Resolution(解析)-----Initialization(初始化...
分类:
其他好文 时间:
2015-05-25 18:04:53
阅读次数:
132
本文引用自:深入理解Java虚拟机的第2章内容 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述: 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一...
分类:
其他好文 时间:
2015-05-23 11:22:27
阅读次数:
163
---恢复内容开始---参考文献:深入理解Java虚拟机 周志明《Java虚拟机规范SE 7版》规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域。如图:程序计数器(Program Counter Register)是一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的信号指示...
分类:
编程语言 时间:
2015-05-19 00:26:51
阅读次数:
199
文章开始之前,首先需要申明,本系列文章讨论的是HotSpot VM,文章中多数观点基于《深入理解Java虚拟机:JVM高级特性与最佳时间 周志明》,笔者如有理解错误,欢迎指正。
在开始探索jvm虚拟机之前,不得不对jvm的内存区域进行讨论,依旧先附上图表:
程序计数器
程序计数器,也能叫做PC寄存器,从名字上来理解可能会把它想成一个计数的内存区域,但是,了解汇编的人会知道...
分类:
其他好文 时间:
2015-05-16 20:35:12
阅读次数:
162
编译器Java是编译型语言,按照编译的时期不同,编译器可分为:前端编译器:其实叫编译器的前端更合适些,它把*.java文件转变成*.class文件,如Sun的Javac、Eclipse JDT中的增量式编译器ECJ; JIT编译器:虚拟机的后端运行期编译器(Just In Time Compiler...
分类:
编程语言 时间:
2015-05-15 15:07:59
阅读次数:
153
参考文献:深入理解Java虚拟机 周志明 Java编程思想 Bruce Eckel为什么自动化垃圾回收后还要了解GC呢:当需要排查各种溢出、内存泄漏问题时,当垃圾收集成为系统达成更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。垃圾回收的主要区域:Java堆和方...
分类:
编程语言 时间:
2015-05-13 00:24:34
阅读次数:
266
参考:1.JVM Specification: http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.5 2.《深入理解Java虚拟机》 刚开始看JVM Specification ,说实话由于专业英语不过关,有些关...
分类:
其他好文 时间:
2015-05-12 00:03:20
阅读次数:
172
深入理解Java:注解(Annotation)自定义注解入门
要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们就必须要了解Java为我们提供的元注解和相关定义注解的语法。
元注解:
元注解的作用就是负责注解其他注解。Java5.0定义了4个标准的meta-annotation类型,它们被用来提供对其它 annotation类型作说明。Java5....
分类:
编程语言 时间:
2015-05-11 13:00:27
阅读次数:
136
引言 这一章讲的是Java虚拟机的内存区域可以分为几个部分,书中讲到可以分为五个部分:分别是堆、栈、程序计数器、方法区、本地方法栈 其中堆里存放了对象的实例 而常说的基本数据类型,以及对象的引用就是存放在栈中的,其实更确切的说是存放在虚拟机栈的局部变量表中,虚拟机栈除了局部变量表之外,还担任了描述的...
分类:
编程语言 时间:
2015-05-10 16:57:22
阅读次数:
207
引言 对于Java中的垃圾回收机制,我们需要了解几个方面,本文也是从这几个方面通过回答这些问题而弄明白Java中的垃圾是如何回收的 首先我们要知道哪些内存需要回收,这一部分涉及到的算法有引用计数算法,根搜算法,但引用计数算法无法解决对象之间相互循环引用的问题。 知道了哪些内存需要回收之后,我们还需要...
分类:
编程语言 时间:
2015-05-10 16:54:38
阅读次数:
295