
Java核心技术深度解析:从基础到高级特性
一、Java语言概述
Java作为一门面向对象的编程语言,自1995年诞生以来,凭借其"一次编写,到处运行"的特性,已成为企业级应用开发的主流选择。Java的三个核心优势:
1. 平台无关性:通过JVM实现跨平台运行
2. 丰富的生态系统:Spring、Hibernate等成熟框架
3. 稳健的内存管理:自动垃圾回收机制
二、Java基础语法精要
1. 数据类型与变量
Java是强类型语言,数据类型分为两大类:
// 基本数据类型
int num = 10; // 32位整数
double price = 19.99; // 双精度浮点
char grade = 'A'; // 单个字符
boolean isJavaFun = true; // 布尔值
// 引用类型
String message = "Hello Java"; // 字符串
int[] numbers = {1, 2, 3}; // 数组
Object obj = new Object(); // 对象
2. 控制结构
// if-else条件判断
int score = 85;
if (score >= 90) {
System.out.println("优秀");
} else if (score >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}
// for循环
for (int i = 0; i < 5; i++) {
System.out.println("迭代次数: " + i);
}
// 增强for循环
int[] nums = {1, 2, 3};
for (int n : nums) {
System.out.println(n);
}
三、面向对象编程核心
1. 类与对象
public class Person {
// 字段
private String name;
private int age;
// 构造方法
public Person(String name, int age) {
this.name = name;
this.age = age;
}
// 方法
public void introduce() {
System.out.println("我叫" + name + ",今年" + age + "岁");
}
// Getter/Setter
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
// 使用示例
Person p = new Person("张三", 25);
p.introduce();
2. 继承与多态
class Animal {
void makeSound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("汪汪汪");
}
}
// 多态示例
Animal myAnimal = new Dog();
myAnimal.makeSound(); // 输出"汪汪汪"
四、Java集合框架
Java集合框架主要接口:

常用集合类示例
// List - 有序可重复
List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
System.out.println(list.get(0)); // 输出"Java"
// Set - 无序不重复
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(1); // 重复元素不会被添加
System.out.println(set.size()); // 输出1
// Map - 键值对
Map<String, Integer> map = new HashMap<>();
map.put("Apple", 10);
map.put("Banana", 5);
System.out.println(map.get("Apple")); // 输出10
五、异常处理机制
Java异常分类:
Throwable
├── Error (系统错误,如OutOfMemoryError)
└── Exception
├── RuntimeException (未检查异常)
└── 其他检查异常(IOException等)
### 异常处理示例
try {
FileInputStream fis = new FileInputStream("test.txt");
// 文件操作...
} catch (FileNotFoundException e) {
System.err.println("文件未找到: " + e.getMessage());
} catch (IOException e) {
System.err.println("IO异常: " + e);
} finally {
System.out.println("无论是否异常都会执行");
}
六、Java 8+新特性
1. Lambda表达式
List<String> languages = Arrays.asList("Java", "Python", "C++");
// 传统方式
Collections.sort(languages, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return a.compareTo(b);
}
});
// Lambda方式
Collections.sort(languages, (a, b) -> a.compareTo(b));
2. Stream API
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
// 计算平方和
int sum = numbers.stream()
.map(n -> n * n)
.reduce(0, Integer::sum);
System.out.println("平方和: " + sum); // 输出55
七、并发编程基础
1. 线程创建方式
// 方式1:继承Thread类
class MyThread extends Thread {
public void run() {
System.out.println("线程运行中");
}
}
// 方式2:实现Runnable接口
class MyRunnable implements Runnable {
public void run() {
System.out.println("Runnable运行中");
}
}
// 使用示例
new MyThread().start();
new Thread(new MyRunnable()).start();
2. 线程池使用
ExecutorService executor = Executors.newFixedThreadPool(5);
for (int i = 0; i < 10; i++) {
executor.execute(() -> {
System.out.println(Thread.currentThread().getName() + " 执行任务");
});
}
executor.shutdown();
八、Java内存模型与GC
JVM内存结构
方法区(Method Area)
堆(Heap)
虚拟机栈(VM Stack)
本地方法栈(Native Method Stack)
程序计数器(PC Register)
垃圾回收算法
1. 标记-清除:简单但会产生内存碎片
2. 复制算法:高效但浪费空间
3. 标记-整理:解决碎片问题但耗时
4. 分代收集:现代JVM主流算法
九、实战:构建简单REST API
使用Spring Boot创建RESTful服务:
@RestController
@RequestMapping("/api")
public class BookController {
private List<Book> books = new ArrayList<>();
@PostMapping("/books")
public Book addBook(@RequestBody Book book) {
books.add(book);
return book;
}
@GetMapping("/books")
public List<Book> getBooks() {
return books;
}
}
// Book类
class Book {
private String title;
private String author;
// 省略getter/setter
}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 forminio
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果
Steam卡片
音乐天地