JavaSE (Java标准版) JavaEE(Java企业版) JavaME(Java微型版)
简单性:例如C++支持多继承,多继承比较复杂,而Java不在支持多继承
C++中有指针,Java中屏蔽了指针的概念
Java语言底层是C++实现的,不是C语言
面向对象:Java是纯面向对象的,更符合人的思维模式。更容易理解。
可移植性:Java程序可以做到一次编译,到处运行。
Java的可移植性也叫作跨平台
Java不能直接运行在Windows系统上或者Linux系统上,Java是通过JDK工具中的Java虚拟机(JVM)运行,Java程序运行在JVM上,JVM作为一个中转站和底层操作系统打交道。
多线程
健壮性:和自动垃圾回收机制有关,自动回收垃圾机制简称GC机制。
安全性
编译阶段 .java 源文件 .class 字节码文件 .java --> .class
编译阶段主要任务是检查java源程序是否符合java语法,
符合java语法则能够生成正常的字节码文件(XXX.class),
不符合java语法规则则无法生成字节码文件 (字节码文件不是纯粹的二进制文件,不能直接在操作系统上执行)
.class文件可以拷贝到其他系统运行(跨平台)
运行阶段
JDK安装之后,除了自带的一个javac.exe之外,还有一个工具/命令,叫做java.exe。java.exe命令主要负责运行阶段
java.exe在哪里用?怎么用?
在DOS窗口中使用。 java 类名 例如: 硬盘上有一个A.class 那么久这样用 : java A A就是类名
硬盘上有一个B.class 那么久这样用 : java B B就是类名
不能写成:java A.class(这是错误写法)
运行阶段过程:
打开DOS窗口
输入java.A
java.exe命令会启动java虚拟机(JVM),JVM会启动类加载器ClassLoader
ClassLoader会去硬盘上搜索A.class文件,找到该文件则将字节码文件装载到JVM
JVM将A.class字节码文件解释成二级制
然后操作系统执行二进制和底层硬件平台进行交互