Java 基础概念解析
集合与内存引用机制
初学集合时,尝试建立装数字的列表,ArrayList<int> 会报错,必须写成 ArrayList<Integer>。这牵扯到 Java 核心的内存与引用机制:
int就像口袋里的一枚'硬币':轻量高效,存在栈内存里,是纯粹的数据。Integer就像停在车库里的'汽车':存在堆内存里,放入列表的是它的'遥控钥匙(内存引用地址)'。ArrayList底层只认'遥控钥匙'。Java 5 之后有了自动装箱机制,往列表里扔数字时,系统会自动造车配钥。
异常分类:编译时与运行时
异常分为两类,代入生活场景理解:
- 编译时异常(Checked Exception):出门强制过安检。例如读取文件
hello.txt,编译器要求写应急预案(try-catch),这是强制的风险管控。 - 运行时异常(Runtime Exception):走路撞树。如
NullPointerException或10 / 0。这是操作失误(逻辑 Bug)。程序会崩溃闪退。别用try-catch掩盖,应回去改代码加判断。
try-catch 与异常对象
catch (Exception e) 本质是一套理赔流程:
try块:高空走钢丝,程序小心执行。- JVM:兼职交警。出意外时生成《交通事故调查报告》(记录错误原因和追踪路线),即异常对象
e。 catch块:安全网与保险理赔员。接住报告e,调用e.printStackTrace()打印详情,避免死机。
throws 与 throw 的处理策略
面对多层方法调用,异常处理方式不同:
throws(声明抛出):底层方法遇到报错,在方法签名上写throws IOException。相当于告知调用者:'我这人干活可能会闯祸',异常报告一层层往上甩,直到main方法统一决定。原则:谁调用,谁负责。throw(手动抛出):业务不合规时(如学号-1001),程序员手动new自定义异常(如MyException),用throw亲手把炸弹扔出去,阻断运行并提示错误。
总结
异常是系统里的一套高度结构化的信使网络。它让代码有了反馈机制,让底层逻辑和前端展示能够优雅地解耦。

