【初识Java||简介JAVA的技术架构、JDK、及其编译运行】

 

 

目录 

Java的三种技术架构

 JDK、JRE、JVM

javac命令和java命令


Java的三种技术架构

Java SE(Java Platform,Standard Edition):完成桌面应用程序的开发,是其他两者的基础。

Java EE(Java Platform,Enterprise Edition):开发企业环境下的应用程序,主要针对web程序开发。

Java ME(Java Platform,Micro Edition):在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。

一张表解释Java生态框架:(从左到右的包含关系,上下之间平行无关)


 JDK、JRE、JVM

JDK(Java Development Kit) :Java开发工具包,是整个JAVA的核心,用于java程序的开发,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具(javac/java/jdb等)和Java基础的类库(即Java API 包括rt.jar)。

JRE(Java Runtime Environment):Java运行环境,包含JVM标准实现及Java核心类库。JRE是Java运行环境,并不是一个开发环境,所以没有包含任何开发工具(如编译器和调试器)。

光有JVM还不能成class的 执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。 (jre里有运行.class的java.exe。

JVM(Java Virtual Machine):即java虚拟机, java运行时的环境。JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。针对java用户,也就是拥有可运行的.class文件包(jar或者war)的用户。里面主要包含了jvm和java运行时基本类库(rt.jar)。

Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。

也就是说,如果我写好一个.class文件,我发给你,只要你安装了JVM,就可以在你的电脑上运行。

 

三者的关系:

JDK=JRE+开发工具

JRE=JVM+类库。

JVM不能单独搞定class的执行,解释class的时候JVM需要调用解释所需要的类库lib。在JDK下面的的jre目录里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和 lib和起来就称为jre。JVM+Lib=JRE。总体来说就是,我们利用JDK(调用JAVA API)开发了属于我们自己的JAVA程序后,通过JDK中的编译程序(javac)将我们的文本java文件编译成JAVA字节码,在JRE上运行这些JAVA字节码,JVM解析这些字节码,映射到CPU指令集或OS的系统调用。

原文链接:https://blog.csdn.net/ancientear/article/details/79483592

 


javac命令和java命令

javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序,对指定扩展名的.java文件进行编译,生成了jvm可以识别的字节码文件,即class文件,也就是java的运行程序。

java:负责运行部分,会启动jvm,加载所需的类库,并对class文件进行执行。

图解整个过程~

 

还应该注意的是,在编译的过程中,不是一个.java文件对应一个.class文件,而是一个类对应一个.class文件。这样我们就能保证了用到哪个类就加载哪个类,而不是全部都加载出来。

The end 

下期见~~~~~~~~

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值