Java基础の第一弹
2015-08-27 23:14
302 查看
一。虚拟机的工作机制
(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 :提供程序在运行期寻找所需资源的路径,比如:类、文件、图片等等。
(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 :提供程序在运行期寻找所需资源的路径,比如:类、文件、图片等等。
相关文章推荐
- springMVC上传文件
- selenium webdriver之eclipse java开发环境搭建
- JAVA编程——常用正则表达式
- Struts2利用token防止表单重复提交
- Struts2笔记——利用token防止表单重复提交
- Introduction to Java Programming编程题9.15<求字符串中大写字母的个数>
- Java 中使用内存映射文件需要考虑的 10 个问题
- java中的一般异常与运行时异常
- 使用Java泛型和反射技术将Mysql记录集转换为Javabean集合
- Eclipse下无源码java代码调试
- 黑马程序员---struts2学习笔记之九(模型驱动)
- JAVA问题总结之18-成员变量与局部变量
- Java中ArrayList源码分析
- Spring中bean的作用域
- Java类加载的时机_4种主动引用会触犯类加载+剩下的被动引用不会触发类的加载
- JavaSwing学习总结
- java抽象类
- Java学习之神奇的i=i++
- springMVC(4) 传递map数据
- Introduction to Java Programming编程题9.14<求字符串中整数的和>