内存模型 《深入理解java虚拟机》 堆 包括新生代和老年代,不包括元数据区 在Minor GC时会将新生代中还存活着的对象复制进一个Survivor中,然后对Eden和另一个Survivor进行清理。所以,平常可用的新生代大小为Eden的大小+一个Survivor的大小 S0=S1 分配担保机制: ...
分类:
其他好文 时间:
2018-06-30 12:55:04
阅读次数:
175
1.Java运行时数据区 2.程序计数器(PC计数器) 占用较小的一块内存空间,当执行Java方法时记录正在执行的虚拟机字节码指令地址,如果执行Native方法则计时器值为空。 3.Java虚拟机栈 java方法执行时的内存模型 查看Java虚拟机栈详细 3.1 栈帧 每个方法都会在虚拟机栈中创建一 ...
分类:
编程语言 时间:
2018-06-29 20:39:05
阅读次数:
238
jvm原理 Java虚拟机是整个java平台的基石,是java技术实现硬件无关和操作系统无关的关键环节,是java语言生成极小体积的编译代码的运行平台,是保护用户机器免受恶意代码侵袭的保护屏障。JVM是虚拟机,也是一种规范,他遵循着冯·诺依曼体系结构的设计原理。冯·诺依曼体系结构中,指出计算机处理的 ...
分类:
其他好文 时间:
2018-06-29 15:06:39
阅读次数:
177
1.什么是垃圾回收? 垃圾回收(Garbage Collection)是Java虚拟机(JVM)垃圾回收器提供的一种用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制。 注意:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身。换言之,垃圾回收只会负责释放那些对象占有的内 ...
分类:
编程语言 时间:
2018-06-29 15:03:04
阅读次数:
284
一、方法的重载 1.重载的用法 由例子可以知道,方法名相同,但是参数列表不同,这就是重载(overload),那么如果方法的仅仅是返回类型不同,是否能构成重载呢?答案是不能 毫无疑问是不能,我们假设,如果两个方法的仅仅是返回类型不同,编译器允许通过,当我们调用方法的时候,java虚拟机如何区分你想调 ...
分类:
其他好文 时间:
2018-06-29 00:10:26
阅读次数:
141
JVM内存管理机制 Java与C++之间有一堆由内存动态分配与垃圾收集技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 —— 《深入理解Java虚拟机:JVM高级特性与最佳实践》 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途 ...
分类:
其他好文 时间:
2018-06-29 00:09:13
阅读次数:
145
转自博客:http://www.cnblogs.com/muffe/p/3541189.html 还有一些自己补充的知识点 一、类加载器基本概念 顾名思义,类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Jav ...
分类:
其他好文 时间:
2018-06-28 13:54:16
阅读次数:
174
根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域。(图片截取自《深入理解jvm虚拟机》) 程序计数器(PC):一块较小的内存空间,用于记录当前线程执行的自己码的位置。在JVM的概念模型中,程序的分支,循环,跳转,线程恢复等都需要使用P ...
分类:
其他好文 时间:
2018-06-26 14:27:59
阅读次数:
175
Java Virtual Machine ,简称JVM; 它是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之一,JVM读取并处理编译过的与平台无关的字节码(class)文件。 Java编译器针对JVM产生class文件,因此是独立于平台的。 Java解释 ...
分类:
编程语言 时间:
2018-06-25 16:53:25
阅读次数:
155
扩展名为.java的源文件(源代码),通过编译器(compiler)编译成扩展名为.class的字节码文件(类似于机器指令),再通过JVM翻译为目标机器代码然后执行。 虚拟机不是物理机器,而是一个解释Java字节码的程序。 Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实 ...
分类:
编程语言 时间:
2018-06-25 13:04:38
阅读次数:
171