-
CheckedException是编译器强制要求处理的异常,如IOException,必须用try-catch捕获或throws声明;而UncheckedException包括RuntimeException和Error,如NullPointerException,编译器不强制处理,通常由程序逻辑错误引起。
-
final用于限制类不可继承、方法不可重写、变量不可修改,确保代码安全稳定。
-
Set去重逻辑取决于具体实现:HashSet依赖hashCode()和equals()一致性判断重复,TreeSet则依赖compareTo()或Comparator返回0来判定重复,二者语义可能不一致。
-
Java不安装数据库,而是通过JDBC连接已部署的数据库服务;需先安装MySQL等数据库并启动,再在Maven中引入对应驱动(如mysql-connector-j8.x),配置含serverTimezone和allowPublicKeyRetrieval的连接字符串。
-
IllegalArgumentException用于参数校验,当传入非法参数时抛出,如null值、越界数值等;可通过try-catch局部捕获或@ControllerAdvice全局处理;结合Objects.requireNonNull等工具简化校验,提升代码健壮性与可维护性。
-
控制台项目初期不应分模块,建议前两周所有类平铺在一个包中;待核心流程跑通后再按职责切分,优先合并状态强耦合类;main()应避免裸while循环,改用命令解析+业务调用分离;状态统一由HallContext单例管理并序列化持久化;Windows下需统一编译、运行及IDE终端编码为UTF-8。
-
答案:在CentOS中安装JDK需先检查Java版本,使用yum或dnf安装OpenJDK-devel,验证安装后配置JAVA_HOME、PATH和CLASSPATH环境变量,确保开发与运行环境正常。
-
JavaStreamAPI要求明确区分中间操作(如filter、map)与终止操作(如collect、forEach),因Stream惰性求值,仅当中间操作后接终止操作才会执行;collect需配合Collectors使用,forEach与peek用途不同,findFirst返回Optional须判空,且同一Stream不可重复使用。
-
Map.computeIfAbsent可简化条件赋值,避免null检查,支持惰性求值以提升性能,适用于初始化、嵌套结构构建与缓存场景,需注意无副作用和线程安全问题。
-
@Cacheable不生效需检查三件事:未启用@EnableCaching、方法非public、同类内直接调用绕过代理;@CacheEvictkey不一致会导致删错缓存;Redis缓存需配置RedisCacheManager并确保对象可序列化。
-
多线程性能下降主因是上下文切换开销过大,线程数应依CPU核心数合理设置:CPU密集型≤核心数,IO密集型可×2~×4;需防线程泄漏、阻塞线程池及ThreadLocal内存泄漏。
-
Java17密封类是编译期强制的继承契约,要求显式声明permits、子类必须存在且用final/sealed/non-sealed修饰,配合switch实现穷尽性检查,提升领域建模安全性与一致性。
-
<p>Java中生成[min,max]闭区间随机整数最推荐用Random.nextInt(max-min+1)+min或ThreadLocalRandom.current().nextInt(min,max+1),避免重复创建Random实例。</p>
-
NIO和NIO.2是Java面向缓冲区、通道与事件驱动的高性能I/O新范式;核心包括Buffer/Channel协作模型、Selector多路复用及NIO.2异步通道与现代文件操作,需注意非阻塞配置、flip/clear使用、零拷贝优化及线程模型设计。
-
Java中堆是线程共享、存放对象实例的内存区,由GC管理;栈是线程私有、存放局部变量和方法调用信息的内存区,随方法进出自动释放。