-
finally中的return会覆盖try/catch的返回值和异常,导致异常丢失、调试困难;基本类型返回值不受finally修改影响,引用类型内容会被修改;应避免finally中return,改用局部变量统一返回。
-
Java采用解释执行与JIT编译结合的方式,既保障“一次编写,到处运行”的跨平台性,又通过运行时识别热点代码并编译为本地机器码来提升性能;JIT不修改class文件,编译时机和级别由运行时统计决定。
-
TransferQueue是强制“手递手”交付的队列,适用于RPC绑定、任务委派等需零缓冲低延迟场景;非必需时勿替代BlockingQueue,否则易致阻塞和吞吐暴跌。
-
Java程序需先经javac编译为平台无关的.class字节码,再由JVM严格经历加载、链接(验证/准备/解析)、初始化三阶段后,才反射调用符合签名的publicstaticvoidmain(String[]args)启动执行。
-
Java对象在堆中由对象头、实例数据、对齐填充三部分组成;对象头含MarkWord和ClassPointer,实例数据为字段(含父类),对齐填充确保8字节对齐。
-
多态实现开闭原则的核心是接口/父类类型调用无需修改,JVM运行时自动绑定新子类方法;应避免if-else判断和instanceof强转,通过统一工厂、策略接口和依赖注入保障扩展性。