Java
语言包含三种核心机制:
Java
虚拟机、垃圾收集机制和代码安全检测。
Java
虚拟机
JVM
- Java虚拟机可以理解成一个以字节码为机器指令的CPU
- 对于不同的运行平台,有不同的虚拟机
- Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
![](https://img-blog.csdnimg.cn/e17af6fcc0774c86afdaa2b2768c6766.png)
垃圾收集机制
gc
- 不再使用内存空间回收——垃圾回收
- 在C/C++等语言中,由程序员负责回收无用内存
- Java语言消除了程序员回收无用内存空间的责任,它提供了一种系统级线程跟踪存储空间的分 配情况,并在JVM的空闲时检查并释放哪些可被释放的存储空间
- 垃圾收集在Java程序原型过程中自动运行,程序员无法精确控制和干预
代码安全性检查
Java
代码的目标运行环境在于网络,
Java
以牺牲执行性能为代价换取了高安全性
- 首先由类加载器classLoader负责将类文件.class加载到Java虚拟机中。通过区分本地文件系统的类和网络系统导入的类增加安全性,可以限制任何木马程序,因为本机类总是有限被加载,一旦所有的类都被加载完毕,直线文件的内存就固定了。
- 其次字节码校验器进行校验。字节码校验器不检查那些可信任的编译器生成的类文件,而是对违背命名空间规定和java语言规则的类进行检查,并且关闭具有安全性漏洞的类文件
- 最后字节码校验通过后,才由Java解释器负责将类文件解释成为机器码进行执行