-
Collections.sort()可直接对实现Comparable的Student对象排序,需在compareTo()中处理分数相等时的二级比较(如学号升序),并用Integer.compare避免溢出;多条件动态排序推荐用Comparator.comparing链式调用,支持reversed()和thenComparing(),null值需用nullsLast处理;排名序号需按实际并列逻辑计算,不可仅依赖索引。
-
面向对象与面向过程的本质区别在于数据与行为的绑定方式:前者通过实例封装状态并隐式传递,后者依赖显式参数传递且函数无状态。
-
匿名内部类隐式持有外部类实例,易致内存泄漏;Swing中应优先用方法引用或确保局部变量effectivelyfinal;Android需用静态内部类+WeakReference防Activity泄漏。
-
Semaphore是Java中用于控制并发访问资源数量的同步工具,通过维护许可数量限制同时执行的线程数。创建时指定许可数,在关键代码前调用acquire()获取许可,执行完成后在finally块中调用release()释放许可,从而实现流量控制。常用于限制数据库连接、控制API调用频率等场景,需注意避免许可泄露,可选公平模式防止线程饥饿,适用于大多数限流需求。
-
Java中不能直接newLogger,因其构造方法为protected,须通过Logger.getLogger()获取实例;JUL配置繁琐性能一般,推荐SLF4J+Logback组合,解耦API与实现,支持灵活配置和高性能日志输出。
-
ClassCastException本质是运行时向下转型失败,即父类/接口引用强制转为不兼容的子类类型;需用instanceof或模式匹配校验类型,避免盲目强转、泛型擦除及隐式转型。
-
JavaFX项目应分model/view/controller三层:model用POJO含绑定属性,view仅FXML加载与事件绑定,controller通过ObservableList更新UI;耗时操作须用Task并发;SQLite操作必用PreparedStatement;jpackage打包需配注册表、图标及用户目录配置。
-
优先选org.springframework.boot:spring-boot-starter-data-redis;SpringBoot项目自动装配连接池、序列化器和模板类,省80%配置;纯Java项目才用redis.clients:jedis并配commons-pool2。
-
多态通过接口统一调用、运行时绑定实现类,解耦调用方与具体实现,提升扩展性、可维护性与可测试性;支持策略模式、异构集合统一处理及Mock测试。
-
本文详解二进制字符串转十进制的常见陷阱,重点解决因误用Integer.parseInt(str)导致的NumberFormatException和整数溢出问题,并提供健壮、可验证的实现方案。
-
finally块用于确保关键代码始终执行,常用于资源释放、状态重置等场景;其典型应用包括关闭文件流、数据库连接,且需注意避免在其中抛出异常或使用return语句,否则可能掩盖异常或改变返回值;现代Java推荐优先使用try-with-resources替代手动资源管理,以提升代码安全性和可读性。
-
Java中包声明必须是源文件第一行非注释语句,且一个文件只能有一个package;import语句紧随其后,不能在类内部或方法里出现。
-
面向对象建模通过封装、继承、多态和抽象实现高内聚低耦合,提升可维护性的关键是合理划分对象边界与职责:遵循单一职责原则、依赖抽象而非实现、用策略模式+组合应对变化、以业务语义命名类与方法,并用值对象、枚举、聚合根等强化模型表达力。
-
throw用于方法内抛出异常对象,throws用于声明方法可能抛出的异常类型;前者执行后终止方法,后者仅作提示。
-
配置阿里云Maven镜像可提升依赖下载速度,需在settings.xml的<mirrors>中添加阿里云镜像源,推荐使用用户级配置,通过执行mvn命令验证是否生效,也可在pom.xml中配置仅对当前项目生效。