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而没有编译的功能。