Java跨平台原理

001-Java跨平台原理

由源文件(.java)--->字节码文件(.class)(二进制文件)-----> 解释---->Unix,Win,Linux等机器。

1.一次编译,到处运行

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

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

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

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

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

C语言跨平台原理

由源文件(.c)--->编译成相对应的机器码---->Unix,Win,Linux

1.多次编译,到处运行

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

002-Java的安全性

1.取消了指针

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

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

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

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

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

003-Java三大版本

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

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

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

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

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

004-什么是JVM?什么是JDK?什么是JRE?

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

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

JDK---java development kit.

JDK的安装目录:

               bin: 最主要的是编译器(javac.exe)

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

                lib:类库      

                jre: java运行环境 

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

原文地址:https://www.cnblogs.com/bukechuji/p/11031899.html