1、简介
- Java SE(Java Platform, Standard Edition)是Java技术的核心平台,它提供了Java编程语言、Java虚拟机(JVM)以及Java核心类库和API。Java SE主要用于开发和部署桌面应用程序、服务器应用程序、命令行工具和嵌入式系统。
2、主要特点及概述
- 跨平台性:Java SE最显著的特点之一是它的“一次编写,到处运行”(Write Once, Run Anywhere)的能力。这是通过Java虚拟机(JVM)实现的,JVM可以在任何支持它的操作系统上运行Java程序。因此,Java程序可以在Windows、Linux、Mac OS X等不同的操作系统上无缝运行。
- 面向对象编程:Java SE是基于面向对象编程(OOP)的。它支持类、对象、继承、封装、多态等面向对象编程的核心概念。这使得Java代码更易于组织、管理和重用。
- 核心类库:Java SE提供了丰富的核心类库,包括Java集合框架(Collections Framework)、I/O(输入输出)类库、网络编程类库、并发编程类库等。这些类库为开发者提供了大量实用的工具和方法,使得Java编程更加高效和方便。
- 安全性:Java SE注重安全性,它提供了多种安全机制,如访问控制、内存管理、异常处理等。此外,Java还提供了沙箱(Sandbox)机制,可以限制Java应用程序对系统资源的访问,从而保护系统免受恶意程序的攻击。
- 图形用户界面(GUI):Java SE提供了AWT(Abstract Window Toolkit)和Swing等GUI库,用于开发桌面应用程序的图形用户界面。这些库提供了丰富的控件和布局管理器,使得开发者可以轻松地创建出美观、易用的桌面应用程序。
- 并发编程:Java SE支持多线程并发编程,提供了强大的并发编程API,如java.util.concurrent包中的类。这些API可以帮助开发者编写高效、可伸缩的并发程序。
- 网络编程:Java SE提供了丰富的网络编程API,支持TCP/IP、UDP等协议。开发者可以使用Java的Socket和ServerSocket类进行网络通信,或者使用更高层次的API如RMI(Remote Method Invocation)和JAX-WS(Java API for XML Web Services)进行分布式计算和Web服务开发。
- 国际化与本地化:Java SE支持国际化与本地化,可以通过Locale类、ResourceBundle类等工具实现不同语言和文化背景下的程序运行。这使得Java程序能够适应全球范围内的用户需求。
- Web开发支持:虽然Java SE主要用于桌面和服务器应用程序的开发,但它也提供了一些基本的Web开发支持,如Servlet API和JSP(JavaServer Pages)技术。这些技术可以用于构建简单的Web应用程序,但更复杂的Web应用通常使用Java EE(Java Platform, Enterprise Edition)进行开发。
- 学习与应用:Java SE是Java编程的基础,对于初学者来说,学习和掌握Java SE是入门Java编程的关键。通过深入学习Java SE的核心概念和API,可以为后续学习Java EE、Android开发等高级技术打下坚实的基础。
3、Java程序的运行过程
- 编写源代码:
- 使用文本编辑器(如IntelliJ IDEA、Eclipse、VS Code等)编写Java源代码,并将其保存为
.java
文件。
- 使用文本编辑器(如IntelliJ IDEA、Eclipse、VS Code等)编写Java源代码,并将其保存为
- 编译:
- 使用Java编译器(如
javac
)将.java
源文件编译成字节码文件(.class
文件)。 - 编译过程会对源代码进行语法检查、语义分析、注解处理等,并生成可在Java虚拟机(JVM)上运行的字节码。
- 使用Java编译器(如
- 类加载:
- 当Java程序启动时,JVM会创建一个类加载器(ClassLoader)树来加载所有的类。
- 类加载器负责在运行时将类的字节码文件加载到内存中,并创建对应的
Class
对象。 - 类加载器会按照一定的顺序加载类,通常是先由系统类加载器(AppClassLoader)加载本地路径下的类,如果找不到则由扩展类加载器(ExtClassLoader)加载,最后由启动类加载器(BootstrapClassLoader)加载JRE中的核心类。
- 链接:
- 链接阶段可以分为三个步骤:验证、准备和解析。
- 验证:确保被加载的类的字节码是符合Java规范和JVM规范的。
- 准备:为类的静态变量分配内存,并初始化为系统的初始值(如0、false、null等)。
- 解析:把类中的符号引用转换为直接引用。
- 链接阶段可以分为三个步骤:验证、准备和解析。
- 初始化:
- 为类的静态变量赋予正确的初始值,执行静态代码块。
- 执行:
- JVM会执行程序中的
main
方法,作为程序的入口点。 - JVM的解释器会将字节码翻译成当前计算机能理解的机器码并执行。
- JVM会执行程序中的
- 垃圾回收:
- 在Java程序执行过程中,JVM会管理内存,包括分配、使用和释放内存。
- 当一个对象不再被引用时,JVM会通过垃圾回收机制将其回收并释放内存。
- 程序结束:
- 当
main
方法执行完毕后,或者程序中的其他线程全部执行完毕,程序结束。
- 当