变量定义与流程控制
在Java中,变量是程序的基本存储单位,定义时需明确数据类型和名称,定义整型变量int age = 25;,字符串变量String name = "张三";,Java是强类型语言,变量类型一旦确定不可更改,需注意作用域(局部变量、成员变量、静态变量)的区别,流程控制方面,if-else用于条件判断,switch适用于多分支选择(需注意Java 7后支持String类型),for、while、do-while循环结构需根据场景选择:for循环适合明确循环次数,while适合条件循环,do-while保证至少执行一次,break和continue可控制循环流程,break用于终止循环,continue用于跳过本次循环。

面向对象篇:封装、继承与多态
面向对象是Java的核心思想,封装通过private修饰属性、public修饰方法实现,配合getter/setter控制访问权限,
public class Person {
private String name; // 私有属性
public String getName() { return name; } // 公有方法
public void setName(String name) { this.name = name; }
}
继承通过extends关键字实现,子类可继承父类非私有属性和方法,但Java仅支持单继承,可通过接口实现多重继承,多态则需满足“继承/实现、方法重写、父类引用指向子类对象”三个条件,
Animal animal = new Dog(); // 父类引用指向子类对象 animal.eat(); // 调用子类重写的方法
抽象类(abstract class)和接口(interface)都是多态的体现,抽象类可包含具体方法,接口仅包含抽象方法(Java 8后支持默认方法和静态方法)。
集合框架篇:List、Set与Map的使用
Java集合框架用于存储动态对象,主要分为三大接口:List(有序可重复)、Set(无序不可重复)、Map(键值对存储)。
- List:常用实现类有
ArrayList(基于数组,查询快增删慢)和LinkedList(基于链表,增删快查询慢),例如List<String> list = new ArrayList<>(); list.add("A");。 - Set:
HashSet基于哈希表,元素唯一性通过hashCode()和equals()保证;TreeSet基于红黑树,可自然排序或自定义比较器。 - Map:
HashMap是核心实现,键值对存储,键需唯一,基于哈希表,查询效率O(1);TreeMap可对键排序;Hashtable是线程安全的旧类,已少用,遍历Map可通过keySet()、values()或entrySet(),for (Map.Entry<String, Integer> entry : map.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue()); }
异常处理篇:try-catch-finally与自定义异常
Java异常通过try-catch-finally捕获和处理,try中存放可能抛出异常的代码,catch捕获特定异常(可多个,按子类到父类顺序),finally确保资源释放(如关闭流),即使发生异常也会执行。

try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("除数不能为0: " + e.getMessage());
} finally {
System.out.println("资源释放");
}
异常体系分为Error(JVM错误,无需处理)和Exception(程序异常,需处理),其中RuntimeException(如NullPointerException)为非受检异常,IOException等为受检异常(需声明或捕获),自定义异常需继承Exception或RuntimeException,
public class MyException extends Exception {
public MyException(String message) { super(message); }
}
IO流篇:字节流、字符流与NIO
Java IO流用于数据传输,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),字节流处理二进制数据(如图片),字符流处理文本(需编码转换),常用类有FileInputStream、FileOutputStream、BufferedReader(缓冲字符流,提高效率)、PrintWriter(格式化输出)。
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
br.close();
Java NIO(New IO)提供了通道(Channel)、缓冲区(Buffer)和选择器(Selector),支持非阻塞IO,适合高并发场景,例如FileChannel可高效读写文件,ByteBuffer是缓冲区的核心实现。
多线程篇:线程创建与同步
Java实现多线程有三种方式:继承Thread类(重写run()方法)、实现Runnable接口(推荐,避免单继承限制)、实现Callable接口(支持返回结果)。
// 实现Runnable接口
public class MyRunnable implements Runnable {
public void run() {
System.out.println("线程运行");
}
}
public static void main(String[] args) {
Thread thread = new Thread(new MyRunnable());
thread.start();
}
线程同步解决多线程安全问题,常用synchronized关键字(修饰方法或代码块)或Lock接口(ReentrantLock,更灵活)。

synchronized (this) {
// 同步代码块
}
线程池(ExecutorService)通过复用线程提高效率,避免频繁创建销毁,常用Executors工具类创建,例如ExecutorService pool = Executors.newFixedThreadPool(5);。
JVM优化篇:内存模型与垃圾回收
JVM内存结构分为堆(存储对象实例)、栈(存储方法调用)、方法区(存储类信息)、程序计数器等,堆是GC的主要区域,垃圾回收算法有标记-清除、复制、标记-整理,JVM通过分代回收(新生代、老年代)优化效率。
优化JVM可关注:调整堆大小(-Xms初始堆、-Xmx最大堆)、设置新生代与老年代比例(-XX:NewRatio)、选择垃圾收集器(如G1垃圾收集器适合大内存),常用工具:jps查看进程,jstat监控内存,jmap生成堆转储文件。
新特性篇:Lambda、Stream与Optional
Java 8引入了诸多新特性简化开发:Lambda表达式用于匿名函数,例如(a, b) -> a + b;Stream API支持函数式数据处理,例如list.stream().filter(x -> x > 0).forEach(System.out::println);Optional类避免空指针异常,例如Optional.ofNullable(obj).orElse(defaultValue),这些特性提升了代码简洁性和可读性,成为现代Java开发的必备技能。
















