Java的体系结构对平台无关的支持 Java平台 Java的体系结构通过几种途径支持Java程序的平台无关性,其中主要是通过Java平台自己.Java平台扮演一个运行时Java程序与其下的硬件和操作系统之间的缓冲角色.Java程序被编译为可运行于Java虚拟机中的二进制程序,并且假定Java API的class文件在运行时都是可用的.接着虚拟机运行程序,那些API则给予程序访问底层计算机资源的能力.无论Java程序被部署到何处,它只需要与Java平台交互,而不需要担心底层的硬件和操作系统.因此,…
第1章 Java体系结构介绍 Java技术核心:Java虚拟机 Java:安全(先天防bug的设计.内存).健壮.平台无关.网络无关(底层结构上,对象序列化和RMI为分布式系统中各个部分共享对象提供了基础) 1.3 体系机构 Java体系结构中的四个技术: Java程序设计语言 Java class文件格式 Java应用编程接口API Java虚拟机 Java虚拟机和Java API一起组成了Java平台 1.3.1 Java虚拟机 Java面向网络的核心是Java虚拟机:平台无关性.安全性和网…
Java程序员把内存的控制权交给了Java虚拟机.在Java虚拟机内存管理机制的帮助下,程序员不再需要为每一个new操作写对应的delete/free代码,而且不容易出现内存泄露和溢出. 虚拟机在执行Java程序过程中,会把它所管理的内存划分为若干个不同的数据区域,各个区域有各自的用途,以及创建和销毁时间. <Java虚拟机规范(第二版)>规定了Java虚拟机所管理的内存将包括以下几个运行时数据区域: 线程共享级别:方法区(Method Area).堆(Heap) 线程私有级别:虚拟机栈(VM…
java1.7和java8的jvm存在差异,本文先按照<深入理解java虚拟机>的讲解内容总结,并将java8的改变作为附录放在文末 一丶运行时数据区域 ​ 图:java虚拟机运行时数据区 1.程序计数器 概念与作用: 一块较小的内存空间,可以看作时当前线程执行字节码的行号指示器,字节码解释器通过控制改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序控制流的指示器,分支,循环,跳转,异常处理,线程恢复等基础功能都需要依赖程序计数器完成. 线程私有的 为什么要设计成线程私有的: jav…
深入理解Java虚拟机 -- 读书笔记:JVM运行时数据区域 本文转载:http://blog.csdn.net/jubincn/article/details/8607790 本系列为<深入理解Java虚拟机 >(周志明著)读书笔记. Java程序员一般都知道JVM中存在栈和堆的,并简单了解对象是在堆上分配的,这点从C/C++转过Java的程序员很容易想到.但Java由于其自身的特性,还有一些其他的内存区域,如下图所示: 程序计数器 程序计数器占用的内存空间不大,里面记录了各线程当前字节码的…
Java虚拟机 Java虚拟机之所以被称之为是虚拟的,就是因为它仅仅是由一个规范来定义的抽象计算机.因此,要运行某个Java程序,首先需要一个符合该规范的具体实现. Java虚拟机的生命周期 一个运行时的Java虚拟机实例的天职就是:负责运行一个Java程序.当启动一个Java程序时,一个虚拟机实例就诞生了.当该程序关闭退出,这个虚拟机实例也就随之消亡.每个Java程序都运行于它自己的Java虚拟机实例中. Java虚拟机实例通过调用某个初始类的main()方法来运行一个Java程序.而这个ma…
第二章:Java内存区域和内存溢出异常 2.2运行时数据区域 运行时数据区分为方法区,堆,虚拟机栈,本地方法栈,程序计数器 方法区和堆是线程共享的区域 虚拟机栈,本地方法栈,程序计数器是数据隔离的数据区 2.2.,程序计数器,即PC,本质是一块较小的内存区域.可以看做当前线程所执行的字节码的行号指令器 有了它可以实现字节码指令,分支,循环.跳转.异常处理,线程恢复 每个线程有一个单独的PC,各个线程之间不互相影响,独立存储 如果执行的方法是java方法,计数器记录的是正在执行的虚拟机字节码指令的…
第一章 走近java 1. java 技术体系: java 程序设计语言 各种硬件平台上的java虚拟机 class 文件格式 java API 类库 来自商业机构或者开源机构的第三方java类库 jdk(java development kit):java程序设计语言.java虚拟机.java API类库,表示用于支持java开发的最小环境 jre(java runtime environment),java 运行时环境.   java me (mobile edition,移动版本) jav…
首先 强烈推荐周志明老师的这本书,真的可以说是(起码中文出版界)新手了解Java虚拟机必须人手一本的教科书!!!   第二部分自动内存管理机制 由于Java虚拟机的多线程是通过线程轮流切换并分配处理器执行时间的方式来实现的,在任何一个确定的时刻,一个处理器(对于多核处理器来说是一个内核)都只会执行一条线程中的指令.因此,为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存.   与程序计数器一样,…
一 Java内存区域与HotSpot虚拟机对象 1 Java技术体系.JDK.JRE?     Java技术体系包括:         · Java程序设计语言:         · 各种硬件平台上的Java虚拟机:         · Class文件格式:         · Java API类库:         · 来自商业机构或开源社区的第三方Java类库.     JDK,即Java开发工具包,包括Java程序设计语言.Java虚拟机.Java API类库,是用于支持Java程序开发的…