Java 的基本概念
JVM、JRE 和 JDK
JVM (Java Virtual Machine) - Java 虚拟机
JVM 是什么?
JVM 是运行 Java 程序的虚拟环境。它是 Java 程序能够在不同操作系统上运行的原因。JVM 负责将编译过的 Java 字节码(.class 文件)转换成机器代码,并执行这些代码。
特性:
跨平台:JVM 是 Java 实现“一次编写,到处运行”的关键。无论在 Windows、Linux 还是 macOS 上,只要有相应的 JVM,Java 程序都可以运行。
内存管理:JVM 自动管理内存分配和垃圾回收,使得开发者无需手动释放内存。
安全性:JVM 提供一个安全的运行环境,通过字节码验证、权限控制等机制,保护系统免受恶意代码的侵害。
通俗的比喻:
把 JVM 想象成一台虚拟的咖啡机,它知道如何读取和理解咖啡豆(Java 字节码),并将其转换为咖啡粉(机器代码),然后冲泡出一杯杯可口的咖啡(运行程序)。不论是在公寓、咖啡厅还是在公司里(不同的操作系统),JVM 都能制作出原味的咖啡。
JRE (Java Runtime Environment) - Java 运行环境
JRE 是什么?
JRE 是一个用于运行 Java 程序的环境。它包含 JVM 以及 Java 标准库和其他支持文件。
特性:
包含 JVM:JRE 内部包含了 JVM,因此它可以执行 Java 字节码。
标准类库:JRE 包含了运行 Java 程序所需的标准类库,如集合框架、IO 库等。
运行时环境:它提供了 Java 程序运行所需的所有文件和资源,但不包括开发工具(如编译器)。
通俗的比喻:
想象 JRE 是一个咖啡工作台,不仅包含了虚拟的咖啡机(JVM),还包含了制作咖啡所需的各种工具和材料,例如牛奶,焦糖,咖啡杯(Java 类库)。用户在这个工作台上就可以运行咖啡机,做出各种口味的咖啡。
JDK (Java Development Kit) - Java 开发工具包
JDK 是什么?
JDK 是用于开发 Java 应用程序的完整开发工具包。它不仅包含 JRE,还提供了一系列开发工具,如编译器、调试器等。
特性:
包含 JRE:JDK 包含了运行 Java 程序所需的 JRE,因此可以运行和测试 Java 程序。
开发工具:JDK 提供了编译 Java 源代码的工具(
javac
)、打包工具(jar
)、调试工具(jdb
)等。附加工具和库:JDK 还附带了一些高级的开发工具和库,用于开发和调试更复杂的 Java 应用程序。
通俗的比喻:
JDK 就像是一个完整的咖啡工作室,里面不仅有虚拟的咖啡机(JVM)和咖啡工作台(JRE),还有烘焙咖啡豆的所有工具(开发工具)。它提供了你需要的所有工具,让你可以从头开始制作自己的咖啡豆(开发 Java 程序),再用它们来制作咖啡。
总结
JVM 是用于运行 Java 字节码的虚拟机。
JRE 包含 JVM 和运行 Java 程序所需的类库,是用于执行 Java 程序的环境。
JDK 是开发 Java 程序的工具包,包含 JRE 以及编译、调试等开发工具。
换句话说,JVM 是运行 Java 程序的“引擎”,JRE 是包含 JVM 和标准类库的“运行环境”,而 JDK 则是开发 Java 程序的“工具箱”。
Java File(.java)、Kotlin File(.kt)、Groovy File(.groovy)
Java、Kotlin 和 Groovy 都是可以运行在 JVM(Java 虚拟机)上的编程语言。它们有各自的文件类型和特性。我们可以用不同风格编写“咖啡食谱”来比喻它们,帮助理解。
Java File (.java)
Java 是什么?
Java 是一种强类型、面向对象的编程语言。它是最早也是最广泛使用的 JVM 语言之一,具有稳定、安全、跨平台的特点。
特性:
静态类型:Java 是静态类型语言,这意味着你在编译时必须声明变量的类型。例如,
int num = 5;
这里的num
是整数类型。面向对象:Java 强调面向对象编程的原则,如继承、封装、多态等。
广泛使用:Java 拥有丰富的生态系统,被大量企业应用于开发大型系统和服务器端应用。
显式声明:Java 代码通常比较详细和冗长,因为它要求显式地定义类型和控制流程。
通俗的比喻:
把 Java 文件 (.java) 想象成一本详细的“咖啡食谱”书。每一步都写得非常清楚,从选豆、磨豆到冲泡的每个细节都有详细的说明,确保任何人都能按照步骤做出一杯标准的咖啡。
示例代码:
public class CoffeeMaker {
public static void main(String[] args) {
System.out.println("Making a cup of coffee!");
}
}
Kotlin File (.kt)
Kotlin 是什么?
Kotlin 是一种现代化的、静态类型的编程语言,它简化了 Java 的一些复杂性,同时保持与 Java 的高度兼容性。Kotlin 由 JetBrains 开发,并由 Google 官方推荐用于 Android 开发。
特性:
简洁:Kotlin 代码更简洁,比 Java 更少的样板代码(boilerplate)。它提供了许多语法糖,使得代码更具可读性。
空安全:Kotlin 在设计时特别关注空指针异常问题,提供了原生的空安全(null safety)机制。
函数式编程:Kotlin 支持函数式编程特性,如高阶函数、Lambda 表达式等,使得开发更灵活。
互操作性:Kotlin 可以无缝调用 Java 代码,且 Java 也能调用 Kotlin 代码,使得它很适合与现有的 Java 项目一起使用。
通俗的比喻:
把 Kotlin 文件 (.kt) 想象成一个简洁的“咖啡食谱”笔记。它省略了很多冗长的步骤,只保留了最关键的部分,让你更快、更轻松地做出美味的咖啡。
示例代码:
fun main() {
println("Making a cup of coffee!")
}
Groovy File (.groovy)
Groovy 是什么?
Groovy 是一种动态的、面向对象的编程语言,它与 Java 高度兼容,并增强了 Java 语言的功能。Groovy 常用于脚本编写、快速原型开发和构建自动化工具中。
特性:
动态类型:Groovy 支持动态类型,这使得它在运行时可以决定变量的类型,代码编写时更加灵活。
脚本友好:Groovy 允许以脚本方式编写代码,不需要像 Java 那样编写完整的类和方法定义。
内置集合和正则表达式支持:Groovy 对集合处理和正则表达式提供了更简单的语法。
DSL 支持:Groovy 很适合创建领域特定语言(DSLs),这在构建工具(如 Gradle)和配置文件中很有用。
通俗的比喻:
把 Groovy 文件 (.groovy) 想象成一个“咖啡食谱”草稿本。你可以随意涂鸦,快速尝试不同的配方,不需要太多的结构化的步骤,让你可以更自由地创新。
示例代码:
println "Making a cup of coffee!"
总结与对比
类型系统
静态类型,强类型
静态类型(支持类型推断)
动态类型
语法简洁性
详细、冗长
简洁、现代
灵活、简洁
空安全
手动检查
内置空安全机制
需要手动处理
脚本支持
需要完整的类和方法定义
支持脚本方式编写
天然支持脚本编写
函数式编程
基本支持
强支持
支持
互操作性
与其他 JVM 语言兼容
高度兼容 Java
高度兼容 Java
常见应用场景
企业级应用、大型系统
Android 开发、现代应用
构建工具、脚本、自动化任务
Java 提供了稳定的基础,Kotlin 带来了现代化的简洁性和高效性,而 Groovy 则提供了灵活的脚本和快速开发能力。
Java 的版本解释
前置知识
Java 第一代平台: 1995 年,Sun 公司首推 Oak,因 Oak 商标已被占用后改名为 Java。1996 年 1 月,Sun 公司发布了 Java 的第一个开发工具包(JDK 1.0),也就是最初版本 Java1.0
Java 第二代平台:1999 年 6 月,Sun 公司发布了第二代 Java 平台(简称为 Java2),它有 3 个版本:
J2ME(Java2 Micro Edition,Java2 平台的微型版),应用于移动、无线及有限资源的环境;
J2SE(Java2 Standard Edition,Java 2 平台的标准版),应用于桌面环境;
J2EE(Java2 Enterprise Edition,Java 2 平台的企业版),应用于基于 Java 的应用服务器。
J2SE 改名:2004 年 9 月 30 日,J2SE 1.5 发布,为了表示该版本的重要性,J2SE 1.5 更名为 Java SE 5.0(内部版本号 1.5.0),代号为“Tiger”,Tiger 包含了从 1996 年发布 1.0 版本以来的最重大的更新。
第二代平台改名:2005 年 6 月,在 Java One 大会上,Sun 公司发布了 Java SE 6。此时,Java 的各种版本已经更名,已取消其中的数字 2,如 J2EE 更名为 JavaEE,J2SE 更名为 JavaSE,J2ME 更名为 JavaME。
自 1996 年发布 Java1.0;直到 2004 年 9 月版本号提升为 5.0,这一新版本为 Java SE5.0(或 J2SE1.5),在 2005 年 6 月 Sun 公司终结了已经有 8 年历史的 J2SE、J2EE、J2ME 的命名方式启用了今天的 Java SE、Java EE、Java ME 命名方式,而此后的版本为 Java SE6、Java SE7、Java SE8、Java SE9、Java SE10、Java SE11、Java SE12… Java SE17 等。
Java 和 JDK 的关系
Java SE,现在提到的 Java 指代的就是 Java SE
Java 平台标准版 (Java SE) API 定义了用于通用计算的核心 Java 平台。这些 API 称为 java
JDK
Java 开发工具包 (JDK) API 特定于 JDK,不一定在 Java SE 平台的所有实现中都可用。这些 API 称为 jdk。
自 1996 年发布 JDK1.0;此后命名为 JDK1.1、JDK1.2、JDK1.3、JDK1.4、采用 1.X 的命名方式,即 JDK 在 Java1.0 到 Java9 对应每一个版本号 :JDK1.0、JDK1.2 … JDK1.8、JDK1.9。Java10 以后我们可以理解为 JDK 对应名称为:JDK10、JDK11、JDK12 … JDK17
在程序员眼中,Java(或者说 Java SE)和 JDK 是一样的,都是指代 Java 的开发工具包。
IDEA
IDEA 激活教程 激活大法: https://www.yuque.com/ziyou-urpsp/iqd2l9/zto1s0iv7ot18qhz 特别提示:复制上面的链接一定要用电脑浏览器打开! 重要:1、一定要解压到桌面再运行工具(请勿与其它工具一起使用)请打开链接仔细查看教程。 2、虚拟产品具有可复制性,如果不是激活工具本身的原因请不要以以下借口退宽,如:看错了,买错了,这个不是我想要的等等原因 【好·评】后赠送: 各类编程语言教程合集 涵盖 Python、Php、Script 等各类编程语言最新教程
请添加客服 v 有任何问题可以及时联系:lkjhgfdsa06730
Last updated
Was this helpful?