Java语言特性、加载与执行
【开源、免费、纯面向对象、跨平台】
简单性: 相对而言,例如,Java是不支持多继承的,C++是支持多继承的,多继承比较复杂;C++ 有指针,Java屏蔽了指针的概念。所以相对来说Java是简单的。
Java底层是C++实现的。
面向对象:Java是纯面向对象的,更符合人的思维方式,更容易理解。
可移植行: Java 语言可以做到一次编译,到处运行。也就是说Java程序可以再windows操作系统上运行,不做任何修改,同样的java程序可以放到Linux系统上运行。或者叫做(跨平台)
健壮性:自动垃圾回收机制(GC)有关,Java语言执行过程中产生的垃圾是自动回收的,不需要哦程序员关心。
多线程
安全性
。。。。。。
Java 的加载与执行
Java程序的运行包括两个非常重要的阶段
-- 编译阶段 :主要任务是检查Java源程序是否符合Java语法,符合Java语法则能够生成正常的字节码文件,否则无法生成字节码文件。
字节码中不是纯粹的二进制,这种文件无法直接在操作系统中运行。
编译阶段的过程:
1. 程序员需要再硬盘某个位置<随意位置>新建一个.java扩展名的文件,改文件被称为Java源文件,源文件当中编写的Java源代码/源程序。而这个源程序是不能随意编写的,必须符合Java语法规则<Java语法规则是固定的>。
2. Java程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译。javac在Dos命令窗口中使用 (javac xxx.java)。一个java源文件可以编译生成多个.class文件。字节码文件/class文件是最终要执行的文件,所以说,当class文件生成之后,java源文件删除,并不会影响java程序执行。但一般不要删除java源文件,因为class文件最终执行效果可能不是我们想要的,那么这时候,需要再重新修改源文件,然后将java源程序重新编译生成新的calss文件,然后运行新的class程序,生成新的效果。
编译后的class文件,可以拷贝到其他操作系统当中运行(跨平台)。
(Javac是一个java编译工具/命令)
-- 运行阶段 :【可以再其他操作系统中,跨平台】
jdk安装之后,除了自带的一个javac.exe之外,还有铃外一个工具/命令叫做java.exe,该工具主要负责运行阶段。
Java.exe在dos窗口中用,使用方式是 java <类名>(如硬盘有a.class文件 java a)
.java(源文件) --> .class(字节码文件)
1. 打开dos 命令窗口 -->2. 输入java A --> 3. java.exe会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader --> 4. ClassLoader会去硬盘上搜索A.class文件,找到该文件则将该字节码文件装载到JVM当中 --> 5. JVM将A.class字节码文件解释成二进制数据 --> 6. 操作系统执行二进制和底层硬件平台进行交互。
类装载器 --> Java虚拟机(JVM) --> 操作系统 --> 硬件平台