Java 语言概述
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了。