Java语言发展史
- Java语言诞生于1995年
- 在1995年之前SUN公司(太阳微电子公司:该公司目前被Oracle(甲骨文:做数据库)收购)为了占领智能电子消费产品市场,派James Gosling领导团队开发了一个Oak(橡树)语言
- 1996年:JDK1.0诞生
- JDK:
- Java开发包工具,做Java开发必须安装的一个工具包,该工具包需要从官网下载
- JDK:
- Java包括三大块:
- JavaSE(Java标准版)
- JavaEE(Java企业版)
- JavaME(Java微型版)
其中JavaSE是基础,以后主攻方向是JavaEE方向
Java语言特性(开源,免费,纯面向对象,跨平台)
- 简单性:
- 相对而言,Java中不再支持多继承,C++支持多继承,多继承比较复杂
- C++中有指针,Java中屏蔽了指针的概念
- Java语言底层是C++实现的,不是C语言
- 面向对象:
- Java是纯面向对象,更符合人的思维模式,更容易理解
- 可移植性(跨平台):
- Java程序可以做到一次编译,到处运行
- 不做任何修改,同样的Java程序可以直接放到Linux操作系统上运行
- Windows操作系统内核和Linux操作系统的内核肯定不同,他们这两个操作系统执行指令的方式也是不一样的
- 结论:显然Java程序不能直接和操作系统打交道,因为Java程序只有一份,操作系统执行原理都不同。
- SUN的团队让Java程序运行在一台虚拟的计算机当中,这个虚拟的计算机叫做Java虚拟机,简称JVM。Java虚拟机再和底层的操作系统打交道
- 多线程
- 健壮性
- 和自动垃圾回收机制有关,自动垃圾回收机制简称GC机制
- Java语言运行过程中产生的垃圾是自动回收的,不需要程序员关心
- 安全性
- …
Java的加载与执行
- Java程序的运行包括两个非常重要的阶段:
- 编译阶段
- 运行阶段
- 编译阶段:
- 主要任务是检查Java源程序是否符合Java语法
- 符合Java语法则能够生成正常的字节码文件(.class)
- 字节码不是纯粹的二进制,这种文件无法在操作系统中直接执行
- 字节码文件/class文件是最终要执行的文件
- 过程:
- 程序员需要在硬盘的某个位置新建一个.java扩展名的文件,被称为Java源文件,源文件中编写的是Java源代码/源程序
- 而这个源程序是不能随意编写的,必须符合Java语法规则
- 程序员需要使用JDK当中自带的javac.exe命令进行Java程序的编译
- javac在DOS命令窗口中使用
- javac的使用规则:javac java源文件的路径
- javac是一个java编译器的工具/命令
- 编译结束后,可以将class文件拷贝到其他操作系统当中运行
- 运行阶段
- JDK安装之后,除了自带一个javac.exe之外,还有另一个工具/命令,叫做java.exe,主要负责运行阶段。(在DOS窗口中使用)
- java 类名
例如:硬盘上有一个a.class,即:java a - 过程:
- 打开DOS命令窗口
- 输入:java a
- java.exe命令会启动Java虚拟机(JVM),JVM会启动类加载器ClassLoader
- ClassLoader会去硬盘上搜索a.class文件,找到该文件则将该字节码文件装载到JVM中
- JVM将a.class字节码文件解释成二进制
- 然后操作系统执行二进制和底层硬件平台进行交互