1. java语言简介
Java
是有SUN
公司开发的一种编程语言.最初被命名为Oak
,但因为Oak
已被注册, 因此在1995时以Java
的名称正式发布,随着互联网的高速发展,Java
逐渐成为最重要的网络编程语言。
Java
语言 介于编译型语言
和解释型语言
之间。
编译型语言如C
、C++
,代码是直接编译成机器码执行,但是不同的平台(x86
、ARM
等)CPU
的指令集不同,因此,需要编译出每一种平台的对应机器码。
解释型语言如Python
、Ruby
没有这个问题,可以由解释器直接加载源码然后运行,代价是运行效率太低。
而Java
是将代码编译成一种“字节码”
,针对不同平台编写虚拟机,不同平台的虚拟机负责加载字节码并执行.
这样就实现了“一次编写,到处运行”
的效果。
当然,这是针对Java
开发者而言。需要为每个平台分别开发对应的虚拟机。
为了保证不同平台、不同公司开发的虚拟机都能正确执行Java
字节码,SUN
公司制定了一系列的Java
虚拟机规范。
也就是说, Java
其实就是一个平台, 由Java虚拟机(Java Virtual Machine, JVM)
和Java应用编程接口(Application Programming Interface,API)
构成
2. Java的不同标准
随着Java的发展,SUN给Java又分出了三个不同标准的版本:
- Java SE:Standard Edition Java 平台标准版
- Java EE:Enterprise Edition Java 平台标准版
- Java ME:Micro Edition Java 平台微型版
三者之间的关系
┌───────────────────────────┐
│Java EE │
│ ┌────────────────────┐ │
│ │Java SE │ │
│ │ ┌─────────────┐ │ │
│ │ │ Java ME │ │ │
│ │ └─────────────┘ │ │
│ └────────────────────┘ │
└───────────────────────────┘
简单来说:
Java SE
就是标准版,包含标准的JVM
和标准库
,其中Java 语言基础, JDBC操作, I/O操作, 网络通信以及多线程等技术
而Java EE
是企业版,它只是在Java SE
的基础上加上了大量的API
和库
,以便方便开发Web应用、数据库、消息服务等,Java EE
的应用使用的虚拟机和Java SE完全相同。
Java ME
就和Java SE
不同,它是一个针对嵌入式设备的“瘦身版”,Java SE
的标准库无法在Java ME
上使用,Java ME
的虚拟机也是“瘦身版”。
毫无疑问,Java SE
是整个Java平台的核心,而Java EE
是进一步学习Web应用所必须的。
不幸的是,Java ME
从来没有真正流行起来,反而是Android
开发成为了移动平台的标准之一,因此,没有特殊需求,不建议学习Java ME
。
3. Java 语言的特点
java 语言的特点
- Java 语言是面向对象编程语言(oop)
- Java 语言是健壮的, 强类型机制, 异常处理, 垃圾自动收集等是Java 程序健壮性的重要保证
- Java 语言是跨平台的
- Java 语言是解释型语言
### 4. Java 编译器与Java虚拟器(JVM)
在Java语言特点中, 提到了两点,跨平台性
和解释性
语言, 此两点都和java 虚拟机( JVM )
有关
首先java 编译器
会将原程序编译成java 字节码文件
, 字节码就是使用二进制指令描述源文件, 是为 java虚拟机
量身定制的语言.
然后通过java虚拟机
解析会执行字节码文件
此时大家可能会存在疑问, 为什么直接编译成操作系统能识别的二进制指令呢?
C语言
就是将程序编译为操作系统看的懂的可执行文件, 因为不同的操作系统机器指令不一样, 所以C语言需要为不同的操作系统编写不同的代码
如图所示:
而java
却有所不同, 只需要编译一次就可以在不同的操作系统中使用, 前提是需要在不同的操作系统中安装能识别字节码的java 虚拟机
这就是java的跨平台型.
需要注意的是Java虚拟机
本身也是一个可执行的程序, 并不实现跨操作系统平台. 针对不同平台需要开发不同的java 虚拟机
程序
但是不管那个平台的 Java 虚拟机, 他们在解释并执行 Java 程序
的行为都是一致的.
5. 名词解释
初学Java, 会经常听到JDK, JRE等一系列名词, 他们到底是什么?
- JVM: Java Virtual Machine( java 虚拟机)
- JRE: Java Runtime Environment (Java 运行环境)
- JDK: Java Development Kit ( Java 开发工具包)
简单来说:
JVM
就是 Java 虚拟机
, 定义了一套通用的虚拟指令集, 也叫做 JVM指令集, 可以理解为是有一种规范.
JRE
则是运行Java 字节码的运行环境
. 包含 JVM(java 虚拟机), java 基础类库等
但是,如果只有Java源码,要将源码编译成Java字节码
,就需要JDK,因为JDK
除了包含JRE,还提供了编译器、调试器等开发工具。
三者关系如下:
要学习Java开发,当然需要安装JDK了。