初步了解jdk,jre,jvm

 

JDK

JDK(Java Development Kit) 是 Java 语言的 软件开发工具包 (SDK)。其结构图为

JDK是整个JAVA的核心,包括了Java运行环境JRE(Java Runtime Envirnment)、Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

  ①SE(J2SE),standard edition,标准版,是我们通常用的一个版本,从JDK 5.0开始,改名为Java SE。

  ②EE(J2EE),enterprise edition,企业版,使用这种JDK开发J2EE应用程序,从JDK 5.0开始,改名为Java EE。

  ③ME(J2ME),micro edition,主要用于移动设备、嵌入式设备上的java应用程序,从JDK 5.0开始,改名为Java ME。

JDK安装目录下

bin(binary ):各种可运行字节码,在windows为可执行的.exe文件,启用jdk功能的文件.主要的一个编译器(javac.exe) 
include:java和JVM交互用的头文件 
lib(libarary):类库 
jre:java运行环境 


JRE

JRE(Java Runtime Environment),是运行基于Java语言编写的程序所不可缺少的 运行环境 

包括两部分:

Java Runtime Environment和Java Plug-in。JRE是可以在其上运行、测试和传输应用程序的Java平台。

它包括Java虚拟机(jvm)、Java核心类库和支持文件,它不包含开发工具(JDK)--编译器、调试器和其它工具。

JRE需要辅助软件--Java Plug-in--以便在浏览器中运行applet

JRE自带的基础类库主要是JRE\lib\rt.jar这个文件,包括了Java2平台标准版的所有类库。和JRE的版本一致。


JVM

JVM(Java Virtual Machine),Java虚拟机的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。

Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。


-------------

每运行一个java程序会产生一个java进程,每个java进程可能包含一个或者多个线程,每一个Java进程对应唯一一个JVM实例,每一个JVM实例唯一对应一个堆,每一个线程有一个自己私有的栈。进程所创建的所有类的实例(也就是对象)或数组(指的是数组的本身,不是引用)都放在堆中,并由该进程所有的线程共享;栈中只保存基础数据类型本身和自定义对象的引用。

大多数 JVM 将内存区域划分为 

Method Area(Non-Heap)(方法区,也叫静态区),

Heap(堆),

Program Counter Register(程序计数器),

VM Stack(虚拟机栈,也有翻译成JAVA 方法栈的),

Native Method Stack (本地方法栈).

其中 Method Area 和 Heap 是线程共享的,VMStack,Native Method Stack 和 Program Counter Register是非线程共享的。

JVM初始运行的时候都会分配好Method Area(方法区)Heap(堆),而JVM 每遇到一个线程,就为其分配一个Program Counter Register(程序计数器)VM Stack(虚拟机栈)和Native Method Stack (本地方法栈),当线程终止时,三者(虚拟机栈,本地方法栈和程序计数器)所占用的内存空间也会被释放掉。非线程共享的那三个区域的生命周期与所属线程相同,而线程共享的区域与JAVA程序运行的生命周期相同,所以这也是系统垃圾回收的场所只发生在线程共享的区域(实际上对大部分虚拟机来说知发生在Heap上)的原因。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值