1.1 JVM和java的跨平台
java的跨平台:
java源程序经过编译->java字节码文件->由JVM执行
其实对于java的跨平台的这个特性,刚开始不是很能理解,直到有一次,我把在ubuntu
的java源文件弄到windows平台下,发觉好像不是那么一回事。后来发现,让java
具有跨平台的是编译后的java字节码文件,这个才是到处通行的,因为.class文件
是由对应系统的JVM来解释的,因而相当于有同样的一套秘钥,但是不同系统下的解密
是不同的,所以需要对应的JVM(特定平台的解释程序)来解释。
注意:.java -> .class 的过程是编译
.class -> 运行 这个过程是解释
1.2 java开发环境搭建
javac.exe 是java的源文件编译工具将.java -> .class
java.exe 是java字节码解释程序,负责解释执行字节码文件,其实就是LVM(原来这个居然就是java的JVM)
1.3 体验java编程过程
public class Test{//java程序需要以类的形式存在
public static void main(String[] agrs){//有main函数才能被解释器启动运行
System.out.println("this is a test..");
}
}
注意:在用记事本敲写代码的时候,需要记得文件名的后缀改成了.java 了没;类名需要与文件名相同
1.4 classpath的设置
当执行完javac 的命令后,而执行java的时候却出了问题这里就要想到classpath,
可以为classpath设置一个路径,这是用于查找.class文件的。或者加入一个在当前目录下寻找".;"
或则直接清空set classpath=
1.5 有效利用java的文档
模糊查找
1.6 JVM的运行
C/C++编译时产生的对象代码时,在这个过程中就通过查表将所有的对变量和方法的引用
转换为特定的内存偏移量保证程序运行;而JAVA在这个过中则不将这些引用转换成特定的
数值引用,也不确定程序执行过程中的内存布局,仍将这些信息保留在字节码中,在解释器工
工作的时候再进行这个过,因而保证了java的可移植性。
1.7 垃圾回收器
JAVA有一个垃圾回收器用来回收那些没有指向引用的对象的空间(使用完成的),java只能是
有NEW能够申请内存。
1.8 反编译工具的介绍
略...试试就知道