JAVA跨平台的原理,JVM、JDK、JRE的区别与联系、

一、Java跨平台原理

由源文件(.java)--->字节码文件(.class)(二进制文件)-----> 解释(运行)---->Unix,Win,Linux等机器。
						⬆
				javac编译为

java代码的加载与执行;
在这里插入图片描述

1.一次编译,到处运行

2.编译器的作用:将源文件编译成class文件

3.虚拟机的作用:将字节码文件解释成对应平台机器码并执行。

4.java可以实现跨所有的平台?只有提供并且安装了相对应的虚拟机就可以跨该平台。

5.虚拟机和解释器的关系:解释器是虚拟机的一个重要的组成部分。

6.Java语言的执行要经过编译和解释两个阶段。

7.Java语言的跨平台性与JVM无关

在这里插入图片描述

如图所示,java跨平台 仅仅是因为每个操作系统都安装了相应的JVM,所以说,java语言一次编译到处运行,java语言是跨平台的,但jvm不是跨平台的

二、C语言跨平台原理

由源文件(.c)--->编译成相对应的机器码---->Unix,Win,Linux
1.多次编译,到处运行

2.C和Java哪个速度快?C语言是直接执行编码,Java是先将class文件解释成机器码再执行

三、Java的安全性

1.取消了指针

2.垃圾回收机制-------不需要程序员直接控制内存回收,避免了程序员忘记及时回收,导致内存泄漏,避免程序错误回收程序核心类库对1内存,导致系统崩溃。

3.异常处理机制-----try,catch,finally,throw,throws五个关键字。

4.强制类型转换:只有满足强制类型转换规则的情况下才能强制转成功。

5.保证了底层安全性:Java在字节码的传输过程中使用了公开密匙加密机制(PKC)

6.在运行环境提供了四级安全保障机制:字节码校验器---类装载器---运行时内存布局--文件访问限制。

四、Java三大版本

J2SE:数据库连接,接口定义,输入/输出,网络编程

J2EE:包含了J2SE中的类,还包括了servlet,JSP,XML,事务控制。

J2ME:包含了J2SE中部分类,用于消费电子产品的软件开发。---------呼机,智能卡,手机,PDA,机顶盒。

J2SE包含于J2EE中,J2ME包含了J2SE的核心类,但新添加了一些专有类

应用场合,API的覆盖范围各不相同

五、什么是JVM?什么是JDK?什么是JRE?

在这里插入图片描述

JVM------Java Virtual Machine。:java 虚拟机 执行class文件的
JVM是Java平台的基础,和实际的机器一样,它也有自己的指令集,并且在运行时操作不同的内存区域,它相当于是一个独立工作的机器,JVM的主要工作是解释自己的指令集(即字节码)到CPU的指令集或对应的系统调用,保护用户免被恶意程序骚扰。
JVM对上层的Java源文件是不关心的,它关注的只是由源文件生成的类文件(.class文件)。

JRE----java runtime environment.java的运行环境 , 包括Java类库和JVM
光有JVM还不能让class文件执行,因为在解释class的时候JVM需要调用解释所需要的类库lib。在JDK的安装目录里你可以找到jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvm,lib中则是jvm工作所需要的类库,而jvm和lib和起来就称为jre.

JDK---java development kit.   java开发包,开发者
		包括JRE和java工具

JDK的安装目录:
               bin: 最主要的是编译器(javac.exe)

                include: java和JVM交互用的头文件

                lib:类库      

                jre: java运行环境 

 JDK是用于java程序的开发,而jre则是只能运行class而没有编译的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值