-
推荐使用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方法,实现类必须重写以解决冲突;接口仅定义行为契约不包含状态,避免了类多继承的复杂性,体现了职责分离原则。
-
String.repeat()是Java11+新增的字符串重复方法,调用str.repeat(n)返回重复n次的新字符串,要求n≥0且str非null,底层基于数组复制优化,性能优于手动循环,但需注意不可见字符重复后的显示问题及JDK版本兼容性。
-
静态变量能被类直接访问,因其在类加载时分配内存并存储于方法区,所有实例共享且无需对象即可通过类名访问。
-
答案:通过Java面向对象设计,将题目封装为抽象基类Question,子类实现具体题型,使用ArrayList管理试卷,遍历题目并调用多态方法checkAnswer实现自动评分,最终统计总分与答题表现。
-
应优先采用用户级安装而非系统目录,即解压JDK到$HOME/jdk并配置JAVA_HOME与PATH;若需系统级安装,须排查SIP、挂载选项、update-alternatives及shell缓存等四层机制。