您的位置:首页 > 编程语言 > Java开发

java运行机制:跨平台的原因

2015-08-16 19:30 387 查看

java三种核心机制

java虚拟机

代码安全性检测

垃圾收集机制(garbage collection)

java程序的编译与运行



【说明】

源程序
.java
文件运行编译命令
javac
,相当于c语言中的命令
cc


javac
编译后生成
class
文件,实际上就是一些字节码bytecode。不是我们实际机器的最终执行码,而在C++中,是直接成最终的cpu指令。该字节码是java自定义的一套规则中的一系列指令。最大特点就是平台无关性

命令
java
用来实现运行字节码文件,实际上是调用了虚拟机。最终要转成对应系统的代码。

java虚拟机jvm

虚拟机是在一台计算机上有软件或硬件模拟的计算机;

jvm读取并处理经编译过的字节码
class
文件;

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

java运行环境jre

jre = jvm + api (lib)

jre运行程序时的三种主要功能

加载代码

校验代码

执行代码

java自动垃圾回收技术

在c/c++等语言中,有程序员负责回收无用内存,不需要用
delete
命令;

java自动垃圾回收

系统级线程跟踪存储空间的分配情况;

在jvm空闲时,检查并释放那些可被释放的存储空间

程序员无须也无法精确控制和干预该回收过程;

jdk(java开发工具包)

JDK = JRE + TOOLS;

JRE = JVM + API ;



JDK包含的基本组件包括:

- javac – 编译器,将源程序转成字节码

- jar – 打包工具,将相关的类文件打包成一个文件

- javadoc – 文档生成器,从源码注释中提取文档

- jdb – debugger,查错工具

- java – 运行编译后的java程序(.class后缀的)

- appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

- Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

- Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

- Jconsole: Java进行系统调试和监控的工具
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: