一、Java 简介
1991 年,美国的 Sun 公司为了开发智能家电等嵌入式设备的控制系统,由詹姆斯・高斯林(James Gosling)领导的 Green 计划团队开始了一种新语言的研发。最初该语言被命名为 Oak(橡树),它是基于 C++ 开发的,吸收了 C++ 的优点并做出来扩展,同时摒弃了 C++ 中的一些复杂概念,使得 Java 功能强大的同时又易于理解和使用。
然而,Green 项目并没有取得预期的成功,而作为该项目的产品 Oak 语言也几乎被遗弃,但随着互联网发展的兴起,Sun 公司发现其技术在互联网领域有更大的应用潜力,于是对语言进行了进一步的改进和重构,以适应新环境的需求。
最终,于 1995 年,Oak 正式更名为 Java,并在互联网上发布。凭借其 一次编写,到处运行的跨平台特性,迅速吸引了开发者的关注,开启了在互联网领域的广泛应用之路。
在 2009 年 04 月,美国 Oracle(甲骨文)公司以 74 亿美元的价格收购了 Sun 公司,Java 也随之成为 Oracle 公司的产品。
二、Java 特点
Java 是一种广泛使用的高级编程语言,具有众多显著特点,以下为你详细介绍:
2.1 面向对象
封装:将数据(属性)和操作数据的方法绑定在一起,形成类。通过访问控制修饰符来隐藏对象的内部实现细节,只对外提供必要的接口。这样可以提高代码的安全性和可维护性。
继承:允许一个类继承另一个类的属性和方法,从而实现代码的复用和扩展。被继承的类称为父类(基类),继承的类称为子类(派生类)。子类可以重写父类的方法,实现自己的特定行为。
多态:同一个方法可以根据对象的不同类型表现出不同的行为。多态通过继承和方法重写实现,使得代码更加灵活和可扩展。
2.2 跨平台
Java 程序编译后生成的是字节码文件,而不是针对特定操作系统的机器码。字节码是一种中间形式的代码,它可以在任何安装了 Java 虚拟机(JVM)的平台上运行。
JVM 是 Java 实现跨平台的关键,负责将字节码解释或编译成特定平台的机器码并执行,不同的操作系统有不同的 JVM 实现,因此同一个 Java 程序可以在不同的操作系统上运行,这也是 Java 著名的 一次编译,到处运行由来。
2.3 安全性
字节码校验:在 Java 程序运行之前,JVM 会对字节码进行校验,确保字节码的格式正确、不违反访问权限等规则。这可以防止恶意代码通过篡改字节码来破坏系统。
访问控制:Java 提供了严格的访问控制机制,通过访问修饰符来控制类、方法和属性的访问权限。只有具有相应权限的代码才能访问受保护的资源,从而提高了代码的安全性。
安全管理器:Java 的安全管理器可以对程序的各种操作进行细粒度的控制,如文件访问、网络访问等。开发者可以通过配置安全策略来限制程序的权限,防止程序进行不安全的操作。
2.4 多线程
Java 内置了对多线程的支持,如:Thread 类和 Runnable 接口可以方便地创建和管理线程。多线程允许程序同时执行多个任务,提高了程序的并发性能和响应速度。
为了保证多线程程序的正确性,Java 提供了同步机制,如:synchronized 关键字和 Lock 接口。同步机制可以确保在同一时间只有一个线程可以访问共享资源,避免了数据竞争和不一致的问题。
2.5 自动内存管理
Java 的垃圾回收(GC)机制负责自动回收不再使用的对象所占用的内存。当一个对象不再被任何引用指向时,垃圾回收器会在合适的时候将其占用的内存回收,开发者无需手动编写代码来释放内存,减少了内存泄漏的风险。
2.6 高性能
Java 虚拟机中的即时编译器(JIT)可以在运行时将频繁执行的字节码编译成机器码,从而提高程序的执行速度。JIT 编译器会根据程序的运行情况动态地进行编译优化,使得 Java 程序在长期运行过程中的性能接近甚至超过一些静态编译语言。
三、Java 平台
为了满足不同场景的需要,Java 技术体系衍生出了三个不同的平台:Java SE、Java EE 和 Java ME。
3.1 Java SE
Java 标准版是 Java 技术体系的核心和基础,它主要用于桌面应用程序的开发,由于历史和定位原因,Java 在桌面应用开发领域的表现不佳,现在已经很少有人使用 Java 进行桌面应用程序的开发了,但是学习 Java SE 仍然是开发 Java 技术的必备基础。


