jvm笔记一(java虚拟机和java内存区域)

(来源:极客学院JVM教程)

内存区域基础概念:


 1.java虚拟机和java内存区域


 2.java虚拟机栈和本地方法栈 


 3.java堆


 4.方法区和运行时常量池


 5.直接内存





1.java虚拟机和java内存区域

Menu

1>什么是虚拟机,什么是java虚拟机

2>概念模型与具体实现

3>java虚拟机运行时数据区

4>程序计数区域

    1> 什么是虚拟机,什么是java虚拟机


  定义:模拟某种计算机体系结构,执行特定指令集的软件

  分类:系统虚拟机进程虚拟机

(并不会完整的模拟一个操作系统的运行环境)

(仅提供特定指令集的运行环境)


Virtual BoxJVM

VMwareAdobe Flash Player

FC模拟器

(JVM可划分出高级语言虚拟机)

JVM  .NET CLR  P-Code

(高级语言虚拟机把特定指令集的范围进一步限定为高级语言) 



java语言虚拟机:可以执行java语言的高级语言虚拟机,但是java语言虚拟机并不一定就被称为JVM(java虚拟机)


java虚拟机并不一定执行java语言

 

Oracle HotSpot 虚拟机:目前,应用最广范的虚拟机,命名来自于“热点代码探测”技术


2 >概念模型与具体实现

公有设计,私有实现

同样的java代码,在不同的java虚拟机中都可以实现,唯一区别就是实现速度的问题



3>java虚拟机的运行时内存区域

是所有java虚拟机共同的内存区域概念模型

运行时数据区的划分:

.程序计数器

`.java堆

.java虚拟机栈

.本地方法栈

.方法区


         4> 程序计数器(Program Counter Register)

. 一块较小的内存空间,它的作用可以看做是当前线程所执行的字节码的行  号指示器

. 可以理解为Eclipse内的行号指示器,不过其指示的是字节码文件的行号

. 如果线程正在执行的是一个java方法,这个计数器记录的是正在执行的虚  拟机字节码指令的地址

. 如果正在执行的是一个本地Native方法,则这个计数器值为空


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章