一、Java自身的发展史
1.计算机语言的发展史
第一代语言
a. 打孔机——纯机器语言
第二代语言
a. 汇编
第三代语言
a. C、Pascal、Fortran面向过程的语言
b. C++面向过程/面向对象
c. Java跨平台的纯面向对象的语言
d. NET跨语言的平台

Java发展史
95年,Sun发布JDK1.0
98年,JDK1.2,更名为Java2
后续JDK1.3、1.4
后来JDK1.5,更名为Java5.0
目前我们使用JDK1.8

二、Java语言的特点
1.一种面向对象的语言。
2.一种平台无关的语言,提供程序运行的解释环境。
3.一种健壮的语言,吸收了C/C++语言的有点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等);

三、Java程序运行机制及与运行过程
1、Java两种核心机制:
Java虚拟机(Java Virtual Machine)
垃圾收集机制(Garbage collection)
因为Java中的运行机制比较多,此处探讨的为最重要的核心机制。

Java是什么?

2、核心机制中的Java虚拟机
a. Java虚拟机可以理解为一个以字节码为机器指令的CPU。
b. 对于不同的运行平台,有不同的虚拟机。
c. Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,随处运行”。
Java是什么?
此处需要注意的是:Java是实现了“一次编译,随处运行”。而对于其他语言是没有这个特点的。对于C/C++而言,在其编写的非常好的情况下,也只能一次编程,然后在各个平台上再去编译,然后再去运行。C/C++只能直接编译成操作平台的底层语言才可以执行。

面试题:Java是编译型语言还是解释型语言?
Java是解释型语言。
C/C++直接编译成操作系统可以认识的可执行文件,不经过第二次。Java第一次编译是编译成Java自身可执行的“.class”文件,“.class”在执行过程中需要Java虚拟机拿出class中的代码一行一行的解释,然后解释成平台可执行的文件。

  1. 核心机制中的垃圾收集
    a. 不再使用的内存空间应回收———垃圾收集
    b. 在C/C++ 等语言中,由程序员负责回收无用的内存。
    c. Java语言消除了程序员回收无用内存空间的责任:他提供一种系统级线程跟踪存储空间的分配情况。并在JVM的空闲时,检查并释放那些可被释放的存储器空间。
    d. 垃圾收集在Java程序运行过程正自动进行,程序员无法精确控制和干预。

相关文章: