标签:
一。虚拟机的工作机制
(1) :通过 ClassLoader 寻找和装载 class 文件
(2) :解释字节码成为指令并执行,提供 class 文件的运行环境
(3) :进行运行期间垃圾回收
(4) :提供与硬件交互的平台
二。Java 从代码到运行的全过程
1.创建类:创建Java类文件,文件名(文件后缀名为java)必须跟其中一个类名完全一致,只有该类可以带public修饰符,一个类文件中最多只有一个类被public修饰(内部类不算)
类包含如下部分:①包(package)定义,②引用(import)的别的类,③类定义
2.编译:将类文件编译成JVM可以识别的字节码文件,文件以class为后缀名
3.类装载ClassLoader:类装载就是JVM把二进制文件加载到内存中
4.字节码(byte-code)校验:JVM对class文件进行字节码校验,保证代码的安全性
5.解释:解释器解释加载后的字节码文件
6.运行:由运行环境中的 Runtime 对代码进行运行
三。 Java 的垃圾回收机制
1.目的:取消分配已分配的内存,即释放内存
2.方式:有系统级线程自动追踪内存分配情况,并自动回收
3.提示:
(1) :在 Java 里面,垃圾回收是一个自动的系统行为,程序员不能控制垃圾回收的功能和行为。比如垃圾回收什么时候开始,什么时候结束,还有到底哪些资源需要回收等,都是程序员不能控制的。
(2) :有一些跟垃圾回收相关的方法,比如:System.gc() , 记住一点,调用这些方法,仅仅是在通知垃圾回收程序, 至于垃圾回收程序运不运行, 什么时候运行, 都是无法控制的。
(3) :程序员可以通过设置对象为 null(后面会讲到)来标示某个对象不再被需要了,这只是表示这个对象可以被回收了,并不是马上被回收。
四。Java 的安全机制
(1) :第一关:编写的代码首先要被编译成为 class 文件,如果代码写得有问题,编译期间就会发现,然后提示有编译错误,无法编译通过。
(2) :第二关:通过编译关后,在类装载的时候,还会进行类装载检查,把本机上的类和网络资源类相分离,在调入类的时候进行检查,因而可以限制任何“特洛伊木马”的应用。
(3) :第三关:类装载后,在运行前,还会进行字节码校验,以判断你的程序是安全的。
(4) : 第四关: 如果你的程序在网络上运行, 还有沙箱 (Sand Box) 的保护, 什么是沙箱呢?就是如果你的程序没有获得授权, 只能在沙箱限定的范围内运行, 是不能够访问本地资源的,从而保证安全性。
五。 path、classpath、JAVA_HOME 各自的含义和配置方式
PATH :提供给操作系统寻找到 Java 命令工具的路径。通常是配置到 JDK 安装路径\bin
JAVA_HOME :提供给其它基于 Java 的程序使用, 让它们能够找到 JDK 的位置。 通常配置到 JDK 安装路径。注意:这个必须书写正确,全部大写,中间用下划线。
CLASSPATH :提供程序在运行期寻找所需资源的路径,比如:类、文件、图片等等。
标签:
原文地址:http://www.cnblogs.com/draenei/p/4764970.html