Java基础入门:Hello World与环境搭建
Java基础入门:Hello World与环境搭建
什么是Java?
Java是一种广泛使用的面向对象编程语言,由Sun Microsystems于1995年开发。Java的设计理念是"一次编写,到处运行"(Write Once, Run Anywhere),这意味着Java程序可以在任何支持Java虚拟机(JVM)的平台上运行。
Java的优势
- 跨平台性:通过JVM实现"一次编写,到处运行"
- 面向对象:支持封装、继承、多态等面向对象特性
- 安全性:提供内存管理和异常处理机制
- 丰富的API:提供大量的类库和框架
- 强大的社区支持:拥有庞大的开发者社区和丰富的学习资源
开发环境搭建
1. 安装JDK
首先需要下载并安装Java Development Kit(JDK)。推荐使用Oracle JDK或OpenJDK。
# 检查Java版本
java -version
# 检查JDK版本
javac -version
2. 配置环境变量
在Windows系统中:
- 右键点击"此电脑" -> "属性" -> "高级系统设置"
- 点击"环境变量"
- 在系统变量中添加JAVA_HOME指向JDK安装目录
- 在Path变量中添加%JAVA_HOME%\bin
3. 选择IDE
推荐使用以下集成开发环境:
- IntelliJ IDEA(推荐)
- Eclipse
- VS Code(安装Java扩展包)
第一个Java程序:Hello World
创建Java文件
创建一个名为HelloWorld.java的文件:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
代码解析
public class HelloWorld:定义一个公共类,类名必须与文件名相同public static void main(String[] args):主方法,程序执行的入口点System.out.println("Hello, World!"):输出"Hello, World!"到控制台
编译和运行
# 编译Java文件
javac HelloWorld.java
# 运行Java程序
java HelloWorld
输出结果:
Hello, World!
Java程序结构
// 导入语句
import java.util.Scanner;
// 类定义
public class ProgramStructure {
// 成员变量
private String name;
// 构造方法
public ProgramStructure(String name) {
this.name = name;
}
// 成员方法
public void sayHello() {
System.out.println("Hello, " + name);
}
// 主方法
public static void main(String[] args) {
ProgramStructure ps = new ProgramStructure("Java");
ps.sayHello();
}
}
常见错误
1. 文件名与类名不匹配
// 错误:文件名为Hello.java,但类名为HelloWorld
public class HelloWorld {
// ...
}
2. 缺少分号
// 错误:缺少分号
System.out.println("Hello World") // 应该是 System.out.println("Hello World");
3. 大小写错误
// 错误:Java区分大小写
System.out.println("Hello World"); // 正确
system.out.println("Hello World"); // 错误
Java 21+ 新特性速览
Java 21 是最新的长期支持(LTS)版本,引入了众多现代化特性。了解这些新特性能让你写出更简洁、高效的代码。
虚拟线程(Virtual Threads)- Project Loom
虚拟线程是Java 21最重要的特性之一,它让并发编程变得极其简单高效:
// Java 21+ 虚拟线程示例
try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
executor.submit(() -> {
// 模拟网络请求
Thread.sleep(1000);
return "Hello from virtual thread";
});
executor.submit(() -> {
Thread.sleep(1000);
return "Hello from another virtual thread";
});
}
// 所有任务完成后自动关闭
虚拟线程 vs 传统线程:
| 特性 | 传统线程 | 虚拟线程 |
|---|---|---|
| 创建成本 | 高(操作系统级别) | 极低(JVM级别) |
| 数量限制 | 数千个 | 数百万个 |
| 阻塞影响 | 阻塞整个OS线程 | 不影响其他虚拟线程 |
| 适用场景 | CPU密集型 | I/O密集型 |
模式匹配(Pattern Matching)
// instanceof 模式匹配(Java 16+,Java 21完善)
Object obj = "Hello";
if (obj instanceof String s) {
System.out.println(s.toUpperCase()); // 直接使用s,无需强制转换
}
// switch 模式匹配(Java 21正式GA)
String formatted = switch (obj) {
case Integer i -> "int: " + i;
case String s -> "string: " + s.length();
case null -> "null";
default -> "other: " + obj;
};
Records(记录类)
// 简洁的不可变数据载体
public record Person(String name, int age, String email) {}
// 使用
Person p = new Person("张三", 30, "zhangsan@example.com");
System.out.println(p.name()); // 访问字段
System.out.println(p); // 自动toString: Person[name=张三, age=30, ...]
Sealed Classes(密封类)
// 限制子类范围
public sealed class Shape permits Circle, Rectangle, Triangle {
abstract double area();
}
public final class Circle extends Shape {
double radius;
public double area() { return Math.PI * radius * radius; }
}
public non-sealed class Rectangle extends Shape {
// 允许Rectangle的子类继续扩展
double width, height;
public double area() { return width * height; }
}
String Templates(字符串模板)- Java 21预览
// 使用STR.模板简化字符串拼接
String name = "Java";
String greeting = STR."Hello, \{name}! Welcome to Java 21.";
现代Java开发工具链
构建工具
| 工具 | 特点 | 适用场景 |
|---|---|---|
| Maven | 约定优于配置,生态成熟 | 传统企业项目 |
| Gradle | 灵活高效,基于Groovy/Kotlin DSL | Android、大型项目 |
| Apache Ant | 老牌构建工具 | 遗留系统 |
JDK发行版选择
| 发行版 | 特点 | 推荐场景 |
|---|---|---|
| Oracle JDK | 商业支持,免费许可变更 | 企业商用 |
| Eclipse Temurin | 完全开源,社区支持 | 大多数场景 |
| Amazon Corretto | AWS维护,长期支持 | AWS环境 |
| Azul Zulu | 免费社区版 | 开发测试 |
| GraalVM | 高性能,多语言支持 | 极致性能、Native Image |
快速开始:使用SDKMAN!管理Java版本
# 安装SDKMAN!(macOS/Linux)
curl -s "https://get.sdkman.io" | bash
# 列出可用的Java版本
sdk list java
# 安装特定版本
sdk install java 21.0.3-tem
# 切换版本
sdk use java 21.0.3-tem
Java生态全景
主流框架
- Spring Boot 3:企业级Java开发的事实标准,支持GraalVM Native Image
- Quarkus:云原生Java框架,启动快、内存占用低
- Micronaut:编译时依赖注入,适合Serverless场景
- Helidon:Oracle推出的微服务框架
核心应用场景
| 领域 | 代表技术 | 市场份额 |
|---|---|---|
| 企业后端 | Spring Boot, Jakarta EE | 全球企业级开发第一 |
| 大数据 | Hadoop, Spark, Kafka | JVM生态核心 |
| 移动开发 | Android SDK | 全球第一大移动平台 |
| 云计算 | AWS Lambda(Java), Serverless | 持续增长 |
为什么学习Java?
- 就业机会多:全球前1000强企业约70%使用Java
- 语言设计优雅:面向对象思想的完美体现,学习Java有助于理解其他OOP语言
- 生态成熟:经过30年发展,几乎所有场景都有成熟的解决方案
- 性能持续优化:JIT编译器、GC算法不断迭代,Java 21+性能显著提升
- 向后兼容:Java以兼容性著称,老代码在新JVM上通常无需修改即可运行
总结
本教程介绍了Java的基础概念、开发环境搭建和第一个Java程序。Java作为一门成熟且广泛使用的编程语言,掌握其基础知识对于后续学习其他技术栈非常重要。记住多动手实践,编写代码是学习编程的最佳方式。