基础
一、Java 简介
Java 是由 Sun Microsystems 公司于 1995 年推出的高级编程语言,具有“一次编写,到处运行”(Write Once, Run Anywhere)的跨平台特性。2009 年 Sun 被 Oracle 收购,Java 成为 Oracle 的核心产品之一。
二、Java 环境搭建
-
JDK 安装
- 从 Oracle 官网下载对应系统的 JDK 安装包
- 配置环境变量:
JAVA_HOME、PATH、CLASSPATH
# Linux/macOS 示例
export JAVA_HOME=/path/to/jdk
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib -
开发工具
- 文本编辑器:VS Code、Sublime Text
- IDE:Eclipse、IntelliJ IDEA、NetBeans
三、基础语法
-
Hello World 示例
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
} -
数据类型
- 基本数据类型:
byte、short、int、long、float、double、char、boolean - 引用数据类型:类、接口、数组
- 基本数据类型:
-
变量与常量
int number = 10; // 变量
final double PI = 3.14; // 常量 -
控制流程
- 条件语句:
if-else、switch - 循环语句:
for、while、do-while - 跳转语句:
break、continue、return
- 条件语句:
四、面向对象编程
-
类与对象
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public void sayHello() {
System.out.println("Hello, I'm " + name);
}
} -
继承与多态
public class Student extends Person {
private String studentId;
public Student(String name, int age, String studentId) {
super(name, age);
this.studentId = studentId;
}
@Override
public void sayHello() {
System.out.println("Hello, I'm " + getName() + ", student ID: " + studentId);
}
} -
封装与抽象
- 封装:通过访问修饰符(
private、protected、public)实现 - 抽象:使用
abstract关键字定义抽象类和方法
- 封装:通过访问修饰符(
五、异常处理
-
异常类型
- 检查异常(Checked Exception):必须显式处理
- 运行时异常(RuntimeException):可选择性处理
- 错误(Error):系统级问题,通常无法恢复
-
异常处理机制
try {
// 可能抛出异常的代码
} catch (FileNotFoundException e) {
// 处理文件未找到异常
} catch (IOException e) {
// 处理输入输出异常
} finally {
// 无论是否发生异常都会执行的代码
}
六、常用类库
-
字符串处理
String类:不可变字符串StringBuilder类:可变字符串,非线程安全StringBuffer类:可变字符串,线程安全
-
集合框架
- 列表(List):
ArrayList、LinkedList - 集合(Set):
HashSet、TreeSet - 映射(Map):
HashMap、TreeMap
- 列表(List):
-
输入输出流
- 文件操作:
File、FileInputStream、FileOutputStream - 缓冲流:
BufferedReader、BufferedWriter - 对象序列化:
ObjectInputStream、ObjectOutputStream
- 文件操作:
七、多线程编程
-
创建线程的方式
- 继承
Thread类 - 实现
Runnable接口 - 使用
Callable和Future
- 继承
-
线程同步
synchronized关键字ReentrantLock类- 线程安全集合:
ConcurrentHashMap、CopyOnWriteArrayList
八、Java 8+ 新特性
-
Lambda 表达式
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
names.forEach(name -> System.out.println(name)); -
Stream API
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
int sum = numbers.stream()
.filter(n -> n % 2 == 0)
.mapToInt(Integer::intValue)
.sum(); -
Optional 类
Optional<String> optional = Optional.ofNullable(getName());
String name = optional.orElse("Unknown");
九、Java 应用领域
- 企业级应用开发:Spring、Spring Boot、MyBatis
- Android 应用开发:Android SDK 基于 Java
- 大数据处理:Hadoop、Spark
- 分布式系统:Dubbo、Zookeeper
- 游戏开发:Minecraft 等
十、学习资源推荐
- 官方文档:Oracle Java Documentation
- 经典书籍:《Effective Java》、《Java 核心技术》
- 在线教程:W3Schools、JavaTpoint、菜鸟教程
- 社区论坛:Stack Overflow、Reddit 的 r/java 版块