一、JDK的配置
差不一段历史:因为微软J++项目违反了java许可证中的条例,所以微软和SUN之间商场转战法庭,也因此微软不再在操作系统中支持java运行时环境,进而还推出.NET来狙击java。因为这一段历史所致,现在要进行java开发,在安装JDK之后还需要配置path变量。
安装好JDK之后,只需要配置path变量即可,选配的还有classpath,配置这两个环境变量分别代表什么?
path:因为操作系统不支持java运行时环境,因此当我们调出cmd之后执行”javac xx.java“,或者”java xx“的时候,操作系统要去哪里找到可执行文件java和javac呢?难道每一次都需要遍历一下硬盘来查找?所以,windows中的path环境变量其实是告诉操作系统你可以从以下的路径中查找到java.exe和javac.exe。
classpath:其实这个变量可以不用配置的,这个变量是告诉JVM你要去哪里加载用户编写的字节码文件,也就是我们自己写的代码,如果一直使用cmd,只要你不嫌麻烦,每次变以前先cd到文件目录,那么就可以不用配置,再者如果你使用eclipse等集成开发环境,那就不用配了,麻烦。
二、java运行机制
java是一门高级语言,而高级语言的运行机制有两种:编译型和解释型。
编译型:直接翻译成平台相关的(操作系统),举个例子,c/c++就是编译型语言,你在32bit机器上编译好的可执行文件放到64bit机器上就跑不了,因为当你在32bit机器上编译的时候,就已经被”翻译“成了该平台相关的机器码,绑定该平台的机器数操作指令等等;
解释型:编译型会有源文件,编译后又可执行文件,而解释性只有源文件,可以这么理解,解释性语言在特定平台执行的时候是一句一句解释执行的,解释一句执行一句,执行到哪里解释到哪里,相当于执行一次编译一次,边编译边执行,因此在执行效率上,解释型会低于编译型。
而对于java,也会有源文件和字节码文件,但是java是平台部相关的,java的运行机制是哪一种呢?可以说java即是编译型语言也是解释型语言,准确说是先编译后解释执行,这句话怎么理解,编译是虚拟机相关,不同类型的虚拟机编译生成的字节码文件不一样,而等到执行的字节码文件的时候,JVM解释一句执行一句,因此java是虚拟机平台相关,先经过编译生成虚拟机相关的字节码文件,等到真正执行的时候,虚拟机加载字节码文件近内存,解释一句执行一句。
java运行机制:先编译后解释执行。
附注:
本文错漏之处,烦请不吝指正,谢谢!