-
推荐使用Java9+的List.of()创建不可变列表,语法简洁、线程安全且不允许null;2.兼容旧版本可用Collections.unmodifiableList()包装现有列表,但需避免原始引用修改;3.Arrays.asList()可快速转换数组,但列表内容仍可修改,非完全不可变。新项目优先选List.of()。
-
抽象类用于划清组件边界,强制子类实现抽象方法以保障契约,支持共享状态与逻辑复用,但不可实例化;需避免构造器调用抽象方法、硬编码配置及空实现,默认实现应合理使用super调用。
-
本文详解递归打印整数各位数字的经典问题,指出原代码逻辑错误(仅输出个位),给出修正后的递归结构,并通过完整可运行示例说明“先递归后打印”的关键设计原理。
-
SpringBoot3.x与Springfox2.9.2不兼容,因SpringBoot3基于JakartaEE9+和SpringFramework6,移除了org.springframework.util.comparator.InvertibleComparator等旧类,导致Springfox启动时抛出NoClassDefFoundError;推荐迁移到现代、actively-maintained的替代方案SpringdocOpenAPI。
-
super调用父类构造方法必须是构造方法的第一条语句,否则编译报错;super()可自动插入,但父类无无参构造时须显式调用super(…);super与this()互斥且均须首行;super.method()仅绕过子类重写调用直接父类实例方法,不支持多层跳转或private/静态方法。
-
Java应用在IDE中能正常读取资源文件,但打包成JAR后抛出FileNotFoundException,根本原因是误用FileReader直接访问路径——它只能读取磁盘文件,无法读取JAR包内的类路径资源;必须改用Class.getResource()或getResourceAsStream()。
-
Java标识符首字符限字母、_或$,后续可加数字,禁用空格、-、.等符号;class等为保留字不可用;命名须遵驼峰等规范,否则引发协作与运行期问题。
-
在IDEA中一键切换Eclipse快捷键只需在Keymap设置中选择Eclipse预设方案,但部分快捷键如Ctrl+1(快速修复)仍为Alt+Enter且不可更改,Ctrl+Shift+F默认仅格式化选中块,Alt+Shift+R重命名需光标位于可重构元素上,且存在插件冲突、系统快捷键抢占、作用域限制及未点击Apply等常见失效原因。
-
清空ArrayList最推荐使用clear()方法,它会直接移除所有元素并释放引用,使所有指向该列表的引用均生效,而重新newArrayList()仅让变量指向新对象,原列表若无其他引用才会被回收;clear()不创建新对象,性能更高,适用于共享列表场景,优先推荐使用clear()。
-
synchronized不是乐观锁,也不是纯悲观锁,而是阻塞式悲观同步机制;它无冲突检测重试循环,不返回失败信号,直接阻塞线程,依赖JVMmonitor与锁升级。
-
Java二进制字面量必须用0b或0B前缀,Java7起支持;八进制用0开头但易错应避免;十六进制用0x/0X,最安全常用。
-
Java中常用for、while和do-while循环实现计数功能:1.for循环适用于已知次数的场景,如输出1到5;2.while循环根据条件执行,需手动更新计数器避免死循环;3.do-while确保至少执行一次,适合先执行后判断;4.可实现倒序或变步长计数。选择依据是循环条件和执行需求。
-
遍历时结构性修改集合会抛ConcurrentModificationException,因modCount与expectedModCount不一致触发fail-fast机制;安全删除须用迭代器remove()、倒序循环、removeIf()或批量移除;修改元素值(非结构变更)是允许的。
-
父类构造器必须先于子类执行,以确保对象初始化的一致性与安全性。继承体系中,子类依赖父类的成员变量和方法,若父类未初始化,子类访问将导致未定义行为。例如,子类调用继承的方法时,该方法可能依赖父类字段的正确初始化。此外,父类构造器负责设置基础状态(如资源分配、默认值),子类在此基础上扩展,体现“is-a”关系:子类对象首先是有效的父类对象。JVM在内存布局上从父类到子类依次分配空间,并逐层调用构造器初始化字段,每层仅操作自身声明的成员,避免访问未初始化的子类数据。Java语法强制构造器首条语句为super()
-
答案:IllegalAccessException是Java反射中因权限不足访问私有成员时抛出的检查异常,需通过try-catch捕获,常见原因包括未调用setAccessible(true)、模块系统限制或安全管理器阻止;处理时应结合NoSuchFieldException、InvocationTargetException等异常进行综合判断与响应。