一、Java基本特性和原理
1、Java程序跨平台原理:
因为Windows操作系统和Linux操作系统的内核肯定不同,他们这两个操作系统的系统执行指令的方式也不一样。为了让Java程序一次编写,到处运行。所以让Java程序运行在一台虚拟的计算机当中,这个虚拟的计算机叫做Java虚拟机,简称JVM。Java虚拟机在和底层的操作系统打交道。在Oracle官网上有不同版本和不同系统的jdk(Java开发工具包),JVM就包含在里面。
2、Java的加载与执行
(Java程序运行的两个阶段:编译阶段和执行阶段)
*编译阶段:
(1)编译阶段主要的任务是检查Java源程序是否符合Java语法:
符合java语法则能够生成正常的字节码文件(xxx.class)
不符合Java语法规则则无法生成字节码文件
(2)字节码文件中不是纯粹的二进制,这种文件无法在操作系统当中直接执行
*编译阶段的过程:
(1)程序员需要在硬盘的某个位置(位置随意)新建一个.java扩展名的文件。该文件被称为Java源文件,源文件当中编写的是Java源代码/源程序。而这个源程序是不能随意编写,必须符合Java语法规则(Java语法规则是需要记忆的)
(2)Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译
(3)Javac.exe在DOS命令窗口中使用。
(4)Javac.exe的使用规则:
javac Java源文件的路径
(5)Javac.exe是一个java编译器工具/命令。
(6)一个java源文件可以编译生成多个.class文件。
(字节码文件/.class文件是最终要执行的文件,所以说class文件生成之后,java源文件删除并不会影响java程序的执行。但是一般java源程序不要删除,因为class文件最终执行效果可能不是我们想要的,那么这个时候需要回头再重新修改java源程序,然后将java源程序重新编译生成新的class文件,然后再运行这个class程序,生成新的效果。编译结束后,可以将class文件拷贝到其他操作系统当中运行)
*运行阶段:
(1)JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe
(2)java.exe命令主要负责运行阶段
(3)java.exe在DOS命令窗口中使用
(4)Javac.exe的使用规则:
java 类名例如:硬盘上有一个A.class,那么就这样用:java A
*运行阶段的过程:
(1)java.exe命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader
(2)ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中
(3)JVM将A.class字节码文件解释成二进制1010101001这样的数据,然后操作系统执行二进制和底层硬件平台进行交互。