-
false是Java中boolean类型的独立布尔字面量,非零非空;它是类字段默认值,但局部变量必须显式初始化,且不可与Boolean包装类混淆,否则易引发NullPointerException。
-
抽象类提供共享状态和部分实现,适用于“is-a”关系;接口定义行为契约,支持多重继承,适用于“can-do”关系。
-
Java线程中断标志是协作式通知信号而非强制终止开关,调用interrupt()仅设标志为true,响应方式由线程自身决定;isInterrupted()读取不重置,interrupted()读取后重置,阻塞中抛出InterruptedException并自动清标,非阻塞需轮询检测并手动处理。
-
进了,但仅限于编译期能确定的字符串字面量;Java在编译阶段将"abc"等字面量存入class常量池,类加载时载入运行时常量池(JDK7+位于堆中),Strings="abc"直接复用该引用,而newString("abc")总在堆新建对象。
-
推荐使用try-with-resources或try-catch-finally处理异常并执行清理。try-with-resources适用于AutoCloseable资源,如流操作,能自动关闭资源;示例中FileInputStream和BufferedReader在try括号内声明,自动调用close()。对于未实现AutoCloseable的资源或需手动清理(如解锁),应使用finally块,确保代码始终执行;示例中fis在finally中安全关闭,避免资源泄漏。实际开发优先选用try-with-re
-
上下文切换发生在操作系统调度线程时,包括时间片用完、sleep()、wait()、synchronized争抢失败、park()等导致线程让出CPU的环节,每次耗时1~5μs并破坏CPU缓存局部性。
-
静态分派发生在编译期,依据引用类型选择重载方法;动态分派发生在运行时,依据实际对象类型选择重写方法;二者协同工作,先静态后动态。
-
不应捕获Error类异常(如OutOfMemoryError、StackOverflowError)和代表编程缺陷的RuntimeException(如NullPointerException、ArrayIndexOutOfBoundsException),而应捕获可预期、可恢复的受检异常(如IOException、SQLException)及少数明确需干预的运行时异常。
-
return语句必须严格匹配方法声明的返回类型,且非void方法的每条执行路径都需有return、throw或异常;return后代码不可达(finally除外);返回null易引发空指针,应优先用Optional或空集合替代。
-
Java邮件推送核心是订阅管理与发送,可用内存、JSON文件或Redis存邮箱;用JavaMailAPI配置SMTP、构建MimeMessage发送;支持手动、定时或事件触发;需含退订链接、企业发件人、确认订阅及分批限流。
-
Java开发中最易忽略的是运行时隐性异常:空指针(链式调用、自动拆箱等)、资源泄漏(未正确关闭IO/连接)、并发幽灵异常(ConcurrentModificationException等)及日期时区错误(SimpleDateFormat非线程安全、LocalDateTime误用)。
-
Java远程调试需JVM启动时添加-agentlib:jdwp参数,IDEA仅连接不启动JVM;常见错误是未加参数或配置不匹配;本地调试可用AttachtoProcess,但受JDK版本限制;务必确保源码与远端字节码一致。
-
线程池拒绝任务是正常流控行为,发生在workQueue已满且线程数达maximumPoolSize时,由所选拒绝策略决定处理方式;默认AbortPolicy抛异常,CallerRunsPolicy交由调用线程执行,DiscardPolicy静默丢弃,DiscardOldestPolicy丢弃队列头任务后重试,自定义策略需解决记录与补偿问题,避免递归提交、阻塞操作及线程安全漏洞。
-
ServiceLoader加载不到实现类主因是META-INF/services位置错误或接口全限定名拼写错误;必须置于classpath根目录(如Maven的src/main/resources/META-INF/services/),文件名须为接口全限定名,内容为实现类全名,且实现类需有public无参构造器;Java9+模块化需在module-info.java中声明provides;其核心价值在于编译期解耦,运行时动态加载,支持插件扩展与多实现共存,但无优先级、条件加载等高级能力。
-
Java通过接口多继承实现行为组合,类可实现多个接口以获得多种能力,如Duck类实现Flyable和Swimmable接口具备飞行与游泳功能;接口可多继承且支持default方法,若两接口含同名default方法,实现类必须重写以解决冲突;接口仅定义行为契约不包含状态,避免了类多继承的复杂性,体现了职责分离原则。