根据《Java 虚拟机规范(Java SE 7版)》规定,Java虚拟机所管理的内存将会包括一下几个运行时数据区域:1.程序计数器 程序计数器(Program Counter Register) 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器... ...
分类:
编程语言 时间:
2017-06-16 20:24:42
阅读次数:
241
为什么要了解GC 我们都知道Java开发者在开发过程中是不需要关心对象的回收的,因为Java虚拟机的原因,它会自动回收那些失效的垃圾对象。那我们为什么还要去了解GC和内存分配呢? 答案很简单:当我们需要排查各种内存溢出、内存泄漏时,当垃圾收集器成为系统达到更高并发量的瓶颈时,我们就需要对这些"自动化 ...
分类:
编程语言 时间:
2017-06-15 20:39:44
阅读次数:
263
运行时数据区: 程序计数器(Program Counter Register): 是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。由于java虚拟机多线程是通过线程切换并分配处理器执行时间的方式来实现的(即在任何时刻,一个处理器或一个内核都只会执行一条线程的指令),为了让线程能 ...
分类:
编程语言 时间:
2017-06-15 20:35:13
阅读次数:
164
1.异常处理 1)异常处理机制 当程序中抛出一个异常后,程序从程序中导致异常的代码处跳出,Java虚拟机检测寻找和try关键字匹配的处理该异常的catch块,如果找到,将控制权交给catch块中的代码,然后继续往下执行程序,try块中发生异常的代码不会被重新执行。如果没有找到处理该异常的catch块 ...
分类:
编程语言 时间:
2017-06-15 10:40:36
阅读次数:
227
以下内容转自http://ifeve.com/java-memory-model-6/: Java内存模型规范了Java虚拟机与计算机内存是如何协同工作的。Java虚拟机是一个完整的计算机的一个模型,因此这个模型自然也包含一个内存模型——又称为Java内存模型。 如果你想设计表现良好的并发程序,理解 ...
分类:
编程语言 时间:
2017-06-15 10:24:20
阅读次数:
128
JAVA 虚拟机深入研究(一)——关于Java的一些历史 JAVA 虚拟机深入研究(二)——JVM虚拟机发展以及一些Java的新东西 JAVA 虚拟机深入研究(三)——Java内存区域 Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的围城,城外的人想进去,城里的人想出来。 Java运行 ...
分类:
编程语言 时间:
2017-06-14 22:56:27
阅读次数:
300
Java内存模型即Java Memory Model,简称JMM。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个计算机虚拟模型,所以JMM是隶属于JVM的。 如果我们要想深入了解Java并发编程,就要先理解好Java内存模型。Java内存模型定义了多线程之间共 ...
分类:
编程语言 时间:
2017-06-14 22:17:09
阅读次数:
147
一、概述 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 二、类加载的生命周期 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verifi ...
分类:
编程语言 时间:
2017-06-14 19:21:14
阅读次数:
253
这一章节我们来讨论一下守护线程与非守护线程。1.什么是守护线程?什么是非守护线程?非守护线程:Java虚拟机在它全部非守护线程已经离开后自己主动离开。守护线程:守护线程则是用来服务用户线程的,假设没有其它用户线程在运行,那么就没有可服务对象,也就没有理由继续下去。2.同样点大家都是线程。事实上能够互 ...
分类:
编程语言 时间:
2017-06-13 19:51:21
阅读次数:
189