85 lines
6.4 KiB
Markdown
85 lines
6.4 KiB
Markdown
---
|
||
id: 概述
|
||
title: 概述
|
||
sidebar_position: 1
|
||
data: 2022年4月25日
|
||
---
|
||
|
||
## Java 是什么
|
||
|
||
Java 是世界上使用最广泛的编程语言之一。
|
||
|
||
Java 最初由 Sun Microsystems 在 1990 年代开发,用于开发从 Web 应用程序到移动应用程序,再到批处理应用程序的所有内容。Java 最初是一种纯粹的面向对象的语言,但现在已经发展成为一种多范例语言,可以高度适应任何情况。拥有庞大的开发人员社区和支持库,Java 是开发几乎所有类型的应用程序的理想选择。
|
||
|
||
Java 是最初由开发 James Gosling (詹姆斯·高斯林,他被称为 Java 编程语言之父)在 Sun Microsystems 公司(现已被 Oracle 收购),并于1995年发布了作为 Sun 公司的一个核心组成部分 Java 平台。
|
||
|
||
James Gosling (詹姆斯·高斯林),Mike Sheridan (迈克·谢里丹)和 Patrick Naughton (帕特里克·诺顿)于 1991 年 6月启动了 Java 语言项目。Java 最初是为交互式电视设计的,但在当时的数字有线电视行业来说太先进了。该语言最初是在 James Gosling (詹姆斯·高斯林)办公室外的一棵橡树之后被称为 Oak 的。
|
||
|
||
后来,该项目以 *Green* 命名,并最终从 Java coffee (印度尼西亚的一种咖啡)重命名为 *Java*。
|
||
|
||
### Java SE
|
||
|
||
**Java SE(Java Platform Standard Edition,Java 平台标准版)**以前称为 J2SE,它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的 Java 应用程序。Java SE 包含了支持 Java Web 服务开发的类,并为 Java EE 提供基础,如 Java 语言基础、JDBC 操作、I/O 操作、网络通信以及多线程等技术。
|
||
|
||
### Java EE
|
||
|
||
**Java EE(Java Platform Enterprise Edition,Java 平台企业版)**以前称为 J2EE。企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端 Java 应用程序。Java EE 是在 Java SE 基础上构建的,它提供 Web 服务、组件模型、管理和通信 API,可以用来实现企业级的面向服务体系结构(Service Oriented Architecture,SOA)和 Web 2.0 应用程序。
|
||
|
||
### Java ME
|
||
|
||
**Java ME(Java Platform Micro Edition,Java 平台微型版)**以前称为 J2ME,也叫 K-JAVA。 Java ME 为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。
|
||
|
||
Java ME 包括灵活的用户界面、健壮的安全模型、丰富的内置网络协议以及对可以动态下载的联网和离线应用程序。基于 Java ME 规范的应用程序 只需编写一次就可以用于许多设备,而且可以利用每个设备的本机功能。
|
||
|
||
## Java 的特点
|
||
|
||
### 简单
|
||
|
||
Java 语言的风格很像 C 语言和 C++ 语言,是一种纯粹的面向对象语言,它继承了 C++ 语言面向对象的技术核心,但是拋弃了 C++ 的一些缺点,比如说容易引起错误的指针以及多继承等,同时也增加了垃圾回收机制,释放掉不被使用的内存空间,解决了管理内存空间的烦恼。
|
||
|
||
### 面对对象
|
||
|
||
Java 是一种面向对象的语言,它对对象中的类、对象、继承、封装、多态、接口、包等均有很好的支持。为了简单起见,Java 只支持类之间的单继承,但是可以使用接口来实现多继承。使用 Java 语言开发程序,需要采用面向对象的思想设计程序和编写代码。
|
||
|
||
### 平台独立性
|
||
|
||
平台独立性的具体表现在于,Java 是“**一次编写,到处运行(Write Once,Run any Where)**”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。
|
||
|
||
### 可移植性
|
||
|
||
Java 基本数据类型的数据大小都做了统一的规定,没有“与具体实现相关”的概念。所以 .jar 文件能够同时在 Windows、Mac OS、Linux 系统下运行,不需要再次编译。
|
||
|
||
### 多线程
|
||
|
||
Java 语言是容易实现多线程的,这也是 Java 语言的一大特性,它必须由 Thread 类和它的子类来创建。Java 支持多个线程同时执行,并提供多线程之间的同步机制。任何一个线程都有自己的 run() 方法,要执行的方法就写在 run() 方法体内。实现多线程的方式主要有下面这几种:
|
||
|
||
- 用户空间中实现多线程
|
||
- 内核空间中实现多线程
|
||
- 用户和内核空间中混合实现线程
|
||
|
||
### 高性能
|
||
|
||
编写的代码,经过 javac 编译器编译为字节码(bytecode),经过 JVM 内嵌的解释器将字节码转为机器码,这是解释执行,这种效率相对较低。但部分 JVM 的实现比如 Hotspot JVM 都提供了 **JIT(Just in Time)动态编译器**,JIT 能够在运行时将热点代码编译机器码。随着 JIT(Just in Time)的发展,Java 的运行速度也越来越高。
|
||
|
||
### 健壮性
|
||
|
||
Java 的强类型机制、异常处理、垃圾回收机制等都是 Java 健壮性的重要保证。对指针的丢弃是 Java 的一大进步。另外,Java 的异常机制也是健壮性的一大体现。
|
||
|
||
### 分布式
|
||
|
||
Java 语言支持 Internet 应用的开发,在 Java 的基本应用编程接口中就有一个网络应用编程接口,它提供了网络应用编程的类库,包括 URL、URLConnection、Socket 等。Java 的 RIM 机制也是开发分布式应用的重要手段。
|
||
|
||
### 安全性
|
||
|
||
Java 通常被用在网络环境中,为此,Java 提供了一个安全机制以防恶意代码的攻击。除了 Java 语言具有的许多安全特性以外,Java 对通过网络下载的类具有一个安全防范机制(类 ClassLoader),如分配不同的名字空间以防替代本地的同名类、字节代码检查,并提供安全管理机制(类 SecurityManager)让 Java 应用设置安全哨兵。
|
||
|
||
## Java 的开发环境
|
||
|
||
### JDK
|
||
|
||
JDK(Java Development Kit)称为 Java 开发包或 Java 开发工具,是一个编写 Java 的 Applet 小程序和应用程序的程序开发环境。JDK 是整个 java 的核心,包括了 Java 运行环境(Java Runtime Environment),一些 Java 工具和 Java 的核心类库(Java API)。
|
||
|
||
### JRE
|
||
|
||
JRE(Java Runtime Environment)是个运行环境,运行 Java 程序的时候就需要 JRE。JDK 里面包含 JRE,因此只要安装了 JDK 就可以编辑、运行 Java 程序。如果只是运行普通的 java 程序无须安装 JDK,只需要安装 JRE 即可。
|