Java语言简介
Java是一种高级编程语言,Java语言的创始可以追溯到1990年代初,当时任职于Sun Microsystems(后来被甲骨文公司收购)的詹姆斯·高斯林(James Gosling)等人开始开发一种名为“Oak
”(名字来源于詹姆斯·高斯林办公室前的一棵橡树)的编程语言。这一项目的初衷是设计一个可以在各种消费电子产品上运行的编程语言,以便更好地控制和通信。然而,随着互联网的兴起,他们意识到Oak在互联网上的应用前景,于是对Oak进行了改造,由于“Oak”已被其他公司注册,因此Sun公司不得不为这门新语言寻找一个新的名字。并最终于1995年5月以Java(Java的中文名叫“爪哇”,这个名字来源于盛产咖啡的爪哇岛。因此Java语言的Logo也被设计为一杯热气腾腾的咖啡)的名称正式发布。
Java具有跨平台性、面向对象、健壮性、安全性、可移植性等特点,广泛应用于企业级应用开发、移动应用开发、大数据处理、云计算等领域。Java程序可以在不同的操作系统上运行,只需编译一次,就可以在任何支持Java虚拟机(JVM)的平台上运行,接下来介绍下Java语言的几个关键概念:
- JDK
Java Development Kit(JDK)
是Java语言的软件开发工具包,主要用于开发Java应用程序。JDK主要由Java开发工具(JDT)、Java平台标准类库(Java ClassLibrary)和Java虚拟机(JVM)等部分组成。其中,JDT提供了Java开发所需的各种工具,如编译器、调试器、重构工具等;Java平台标准类库则提供了Java应用程序所需的类库和接口,包括输入输出、网络通信、多线程等功能;JVM则是Java运行环境的核心,负责执行Java字节码。JDK具有跨平台性、面向对象、安全性、多线程和丰富的API等特点,是Java开发的核心工具包。
- JRE
Java Runtime Environment(JRE)
是Java的运行环境,不是开发环境,所以不包括任何开发工具(如编译器和调试器)。JRE包括Java虚拟机(JVM)、运行时类库(runtime class libraries)和Java应用程序启动器(Javapplicationlancher),这些都是运行Java程序的必要组成部分。通过JRE,Java开发人员可以向用户发布他们开发的程序,供用户使用。JRE是Java程序运行的基础环境,只要安装了JRE,Java应用程序就可以正确运行。
- JVM
Java Virtual Machine(JVM)
是Java虚拟机的缩写,是一种用于计算设备的规范,它是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现。JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
- Java SE
Java SE(Java Standard Edition,Java标准版)
是Java技术的核心和基础,由Sun Microsystems公司于1995年推出。Java SE是Java ME和Java EE编程的基础,提供了一个程序开发环境,包括开发与运行Java软件的编译器等开发工具、软件库及Java虚拟机。Java SE广泛应用于开发和部署桌面、服务器以及嵌入设备和实时环境中的Java应用程序,并为Java EE和Java ME提供了基础。
- Java EE
Java EE(Java Platform, Enterprise Edition)
是sun公司(现Oracle公司)推出的企业级应用程序版本,以前称为J2EE。Java EE是在Java SE的基础上构建的,提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(SOA)和Web 3.0应用程序。Java EE提供了丰富的API和框架,如JDBC、EJB、Java RMI、JNDI、JMS等,用于开发、部署和管理企业级分布式系统、Web应用等。随着技术的发展,Java EE在2018年被更名为Jakarta EE,由开源组织Eclipse基金会管理。
-
Java ME
Java ME(Java Platform, Micro Edition)
,是专为嵌入式消费电子设备优化的Java技术子集。它通过对Java技术的裁剪和优化,提供了适应资源受限设备(如移动电话、机顶盒等)的编程环境。Java ME具备资源限制优化、性能要求优化、API优化及工具支持等特点,尽管在移动设备领域的应用逐渐减少,但在特定嵌入式设备开发中仍发挥重要作用。 -
长期支持版本
长期支持的Java版本(LTS,Long-Term Support
)是Java社区为开发者提供的具有长期维护和更新支持的Java版本,其中Java 8、Java 11和Java 17是关键的LTS版本。这些版本不仅引入了诸如Lambda表达式、Stream API、HTTP Client API、密封类、模式匹配等重要特性,还享受了长期的安全更新和关键补丁支持。Java 8的支持周期直到2025年,Java 11则至2026年,而Java 17作为当前最新的LTS版本,也将根据Oracle的官方政策获得至少三年的支持。选择LTS版本进行开发,有助于确保应用程序的稳定性和安全性,同时降低企业的维护成本。
总结来说,JDK是Java开发工具包,JRE是Java运行环境,JVM是Java虚拟机,Java SE是Java标准版,Java EE是Java企业级版本。这些组成部分共同构成了Java技术的生态系统,支持Java应用程序的开发、部署和运行。
Windows系统安装Java
直接进入官网,直接点击.msi文件的下载链接即可,在安装时勾选上自动添加环境变量
JDK17 .msi文件下载链接:JDK17 Download
JDK官方下载地址:JDK Download
安装完成后在cmd中输入命令即可查看是否安装成功:
java --version
Ubuntu系统安装Java
在Ubuntu系统中,安装JDK更为方便,先输入命令使系统连接到配置的软件源(repositories),下载并更新这些源中最新可用的软件包列表。随后更新的软件包列表,检查系统中已安装的软件包是否有新版本可用。如果有,它会下载并安装这些新版本,同时处理任何必要的依赖关系变化。
sudo apt update
随后更新的软件包列表,检查系统中已安装的软件包是否有新版本可用。如果有的话会下载并安装这些新版本,同时处理任何必要的依赖关系变化。
sudo apt upgrade
接下来安装OpenJDK,这里我安装的java17:
sudo apt install openjdk-17-jdk
安装完成后输入命令查看是否安装成功:
java --version
运行一段测试代码
这里先介绍下常见的Java开发工具(IDE),在选择Java IDE时,开发者需要考虑多个因素,包括个人偏好、项目需求、团队协作等。不同的IDE在用户界面设计、插件生态系统、社区支持等方面各有千秋,因此选择适合自己的IDE:
-
IntelliJ IDEA:
- 由JetBrains开发,以其智能的代码辅助、强大的重构功能和与Git等版本控制系统的无缝集成而闻名。
- 支持多种编程语言和框架,特别适合Java开发者使用,能够极大提高开发效率。
- 提供了旗舰版(付费)和社区版(免费)两种版本。
-
Eclipse:
- 一款免费开源的集成开发环境(IDE),最初由IBM开发,现由Eclipse基金会管理。
- 支持多种编程语言,如Java、C/C++、PHP等,通过插件可以支持更多语言和框架。
- 拥有丰富的插件生态系统,几乎任何想要的功能都可以通过安装相应的插件来实现。
- 在学术和研究环境中特别受欢迎。
-
NetBeans:
- 另一个免费开源的IDE,支持多种编程语言,包括Java、PHP、C/C++等。
- 以其对Maven项目的出色支持而闻名,提供了便捷的项目配置、依赖管理和构建自动化功能。
- 特别适合使用Maven的Java开发者,以及需要快速开发GUI应用的开发者。
- 其GUI构建器允许开发者通过拖放组件来设计图形界面,降低了GUI开发的复杂性。
-
Visual Studio Code (VS Code):
- 由微软开发的一款轻量级、跨平台的代码编辑器,虽然不是传统意义上的IDE,但通过插件可以支持Java等多种编程语言和框架。
- 提供了智能的代码补全、调试、版本控制等功能,是前端开发者的常用工具之一。
- 对于Java开发,通过安装相应的扩展插件(如Java Extension Pack)也能获得很好的支持。
个人使用的是VS Code,因为更加的灵活多变一些;在校学生推荐在JetBrains官网注册后使用IDEA,相较其他IDE操作更方便一些。
安装完IDE后新建一个名为Student.java
的文件,将以下代码复制到文件中,需要注意的是,文件中的类名必须和文件名相同:
// 定义Student类
public class Student {
// 成员变量(属性)
private String name;
private int age;
private String studentId;
// 构造方法
public Student(String name, int age, String studentId) {
this.name = name;
this.age = age;
this.studentId = studentId;
}
// 获取名字方法
public String getName() {
return name;
}
// 设置名字方法
public void setName(String name) {
this.name = name;
}
// 获取年龄方法
public int getAge() {
return age;
}
// 设置年龄方法
public void setAge(int age) {
this.age = age;
}
// 获取学生ID方法
public String getStudentId() {
return studentId;
}
// 设置学生ID方法
public void setStudentId(String studentId) {
this.studentId = studentId;
}
// 打印学生信息方法
public void printStudentInfo() {
System.out.println("Student Name: " + name);
System.out.println("Student Age: " + age);
System.out.println("Student ID: " + studentId);
}
// 主方法,用于测试Student类
public static void main(String[] args) {
// 创建一个Student对象
Student student1 = new Student("GGBond", 16, "114514");
// 调用对象方法
student1.printStudentInfo();
// 修改对象的属性
student1.setName("Mio Mo");
student1.setAge(21);
// 再次调用对象方法,查看修改后的属性
student1.printStudentInfo();
}
}
这里我推荐采用终端运行的方式,在终端中输入命令,使用编译工具javac
将 Java 源代码(以 .java 为扩展名的文件)编译成 Java 字节码(bytecode):
javac Student.java
命令运行后会编译出Student.class字节码文件,当运行一个 Java 程序时,JVM 会加载 .class 文件,通过解释或即时编译(JIT,把字节码转换成机器码)来执行程序。
再输入命令来运行字节码:
java Student
Java运行成功!