第一章
总结:
Java的加载与执行
能够自己搭建Java的开发环境
能够独立编写HelloWorld程序,编译并运行
掌握环境变量path的原理以及如何配置
Java中的注释
public class 和class的区别
Java语言特性
简单性
相对而言的,例如Java中不再支持多继承,C++是支持多继承的,多继承比较复杂。C++中有指针,Java中屏蔽了指针的概念。所以相对来说Java是简单的。
面向对象
可移植性(见下图)
什么是可移植性?
Java程序可以做到一次编译,到处运行,也就是说Java程序可以在windows操作系统上运行,不做任何修改,同样Java程序可以直接放到Linux操作系统上运行,这个被称为Java的可移植性,或者叫做跨平台。
windows和Linux系统的内核肯定不同,所有程序的执行指令方式也是不一样的。
结论:显然java程序不能直接和操作系统打交道。因为不同的操作系统执行程序的指令是不同的。所有要用到Java虚拟机,简称JVM。Java虚拟机再和操作系统打交道。
多线程
健壮性
和自动垃圾回收机制有关,简称GC机制。
安全性
可移植性
Java的加载与执行
左边是编译阶段,右边运行阶段
编译阶段
主要是检查源程序是否符合Java语法,
符合就将.java源文件生成正常的字节码文件(xxx.class)
不符合就无法生成字节码文件
字节码文件不是纯粹的二进制,这种文件无法在操作系统上直接运行
需要使用到jdk自带的java.exe命令对.java源程序进行编译,命令: javac java源文件的路径
javac是一个编译器工具/命令
一个java源文件可以生成多个.class字节码文件。
编译结束后,可以将class文件拷贝到其他操作系统当中运行。(跨平台)
运行阶段
JDK安装之后,除了javac.exe编译命令,还有java.exe运行命令: java 类名
例如有A.class,那么就用: java A
java.exe会启动Java虚拟机(JVM).,JVM会启动类加载器ClassLoader,然后类加载器会去硬盘上找A.class,并将该字节码文件装载到虚拟机中,并在虚拟机中将字节码文件解析成二进制文件,然后和底层进行交互。
public class 和class的区别
一个java源文件可以定义多个class,但是只能有一个public class,因为public class的类名必须与源文件名一致。