Java语言进阶(面向中级开发者)
文章目录
- Java语言进阶(面向中级开发者)
- 1. 多线程与并发
- 1.1 线程创建
- 1.2 线程同步
- 2. 集合框架
- 2.1 常用集合类
- 2.2 集合遍历
- 3. 异常处理
- 3.1 异常分类
- 3.2 异常捕获
- 4. IO流与NIO
- 4.1 基本IO操作
- 4.2 NIO新特性
- 5. 泛型与反射
- 5.1 泛型
- 5.2 反射
- 6. 总结
1. 多线程与并发
1.1 线程创建
// 方式1:继承Thread类
class MyThread extends Thread {@Overridepublic void run() {System.out.println("线程运行中");}
}// 方式2:实现Runnable接口
class MyRunnable implements Runnable {@Overridepublic void run() {System.out.println("线程运行中");}
}// 启动线程
Thread t1 = new MyThread();
t1.start();Thread t2 = new Thread(new MyRunnable());
t2.start();
1.2 线程同步
class Counter {private int count = 0;// 同步方法public synchronized void increment() {count++;}
}
2. 集合框架
2.1 常用集合类
类型 | 说明 | 特点 |
---|---|---|
ArrayList | 动态数组 | 允许快速随机访问 |
LinkedList | 链表 | 适合频繁插入/删除 |
HashMap | 哈希表 | 基于键值对存储,无序 |
TreeSet | 树结构 | 元素自动排序,唯一 |
2.2 集合遍历
List<String> list = new ArrayList<>();
list.add("A");
list.add("B");// 使用迭代器
Iterator<String> it = list.iterator();
while (it.hasNext()) {System.out.println(it.next());
}// 使用增强for循环
for (String s : list) {System.out.println(s);
}
3. 异常处理
3.1 异常分类
- Checked Exception:编译时检查(如IOException)
- Unchecked Exception:运行时异常(如NullPointerException)
3.2 异常捕获
try {FileReader fr = new FileReader("file.txt");
} catch (FileNotFoundException e) {e.printStackTrace();
} finally {System.out.println("无论是否异常都会执行");
}
4. IO流与NIO
4.1 基本IO操作
// 写入文件
FileWriter fw = new FileWriter("output.txt");
fw.write("Hello Java!");
fw.close();// 读取文件
FileReader fr = new FileReader("output.txt");
int ch;
while ((ch = fr.read()) != -1) {System.out.print((char) ch);
}
fr.close();
4.2 NIO新特性
// 使用Buffer和Channel
FileChannel channel = FileChannel.open(Paths.get("file.txt"), StandardOpenOption.READ);
ByteBuffer buffer = ByteBuffer.allocate(1024);
channel.read(buffer);
buffer.flip();
while (buffer.hasRemaining()) {System.out.print((char) buffer.get());
}
5. 泛型与反射
5.1 泛型
// 定义泛型类
class Box<T> {T content;public void set(T t) { content = t; }public T get() { return content; }
}// 使用泛型
Box<String> box = new Box<>();
box.set("Hello");
System.out.println(box.get()); // 输出:Hello
5.2 反射
// 获取类信息
Class<?> clazz = Class.forName("com.example.Person");
Constructor<?> constructor = clazz.getConstructor(String.class);
Object obj = constructor.newInstance("张三");
6. 总结
本篇深入讲解了Java的进阶特性,包括多线程、集合框架和反射。掌握这些内容后,可以编写更复杂的并发程序或框架级代码。