1 JAVA的体系架构
分为三部分,面向三种应用场景。
JAVASE(J2SE) 标准版:C/S系统中Client端开发,主机应用。
JAVAEE 企业版:web开发,jdbc,servlet,jsp,hibernate。
JAVAME 微型版:JAVASE的内伸,应用于消费性电子产品,精简核心类库。
本质上是包含的库不同。
2 JAVA核心机制
(1)垃圾回收机制
垃圾:不再使用的内存空间应该回收。
JAVA底层垃圾收集器(GC)自动进行垃圾回收。JAVA提供系统级线程跟踪存储空间分配情况,在JVM空闲时检查并释放空间。
优点:开发人员不需要进行内存回收,提高编程效率;提高内存利用率;减少因为没有释放空间导致的内存泄漏。
缺点:程序员无法精确控制和干预;垃圾收集器要一直监听,造成性能消耗。
垃圾收集器有几种?
垃圾收集器底层原理?
垃圾收集器算法和优化?
(2)跨平台原理
javac.exe, java.exe, JVM(JAVA Virtual Machine, JAVA虚拟机)以及命令都在JDK中,即必须安装JDK(JAVA Development Kit,JAVA开发工具包)才具备开发环境。
在执行时表面上调用的是Java.exe,实际上调用Java.exe的时候会动态调用JVM,JVM将字节码文件逐行解释为当前操作系统认识的可执行文件的格式,因此说Java是解释型语言。
JVM(虚拟机)充当“翻译官”,将字节码翻译成当前平台或系统认识的可执行的文件格式。编译一次,到处运行,即跨平台。
C语言的跨平台原理与JAVA跨平台的区别:
① JAVA的字节码文件是与平台无关的,一次编译,到处运行,JAVA是拿着字节码文件在不同平台上运行,C语言是在不同平台上进行编译后产生字节码再运行。
② C语言不同的平台有不同的编译器,即编译器与平台相关,编译后的可执行文件也跟平台相关。
③ 实际上跨平台是指编译后的文件是否跨平台,从这个角度而言,C语言不是跨平台的。因为C语言不同平台有不同的解释器,它指的是源文件跨平台。
因为C语言产生的可执行文件可以直接在平台上运行,不用解释翻译,因此效率比JAVA高。