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进行系统调试和监控的工具