-
非受检异常应以预防为主、精准响应、合理封装,多数情况下不建议业务层随意捕获;需通过主动校验、自定义业务异常、全局日志监控等手段提升健壮性。
-
Java7及以上支持0b二进制字面量,需配置-source1.7+,仅适用于int等整型(long需加L后缀),不可用于字符串解析或拼接,Android开发需同步AGP与sourceCompatibility版本。
-
静态工厂方法是用publicstatic方法创建实例,比new更灵活清晰,可复用对象、返回子类型、推断泛型,命名如of()、valueOf()等表达语义,需私有构造器并合理封装逻辑。
-
统一错误响应的核心是用标准结构(ResponseResult)封装异常信息,含code、errorCode、message等字段,配合@ControllerAdvice全局处理,分层设计错误码并联动日志与监控。
-
最清晰通用的解决变量遮蔽方式是使用this.前缀明确访问成员变量;配合命名约定(如成员变量加前缀)、IDE警告及静态分析工具可有效预防和识别遮蔽问题。
-
应使用StringBuilder或StringBuffer提升字符串操作效率,因String不可变,频繁拼接会创建大量对象;StringBuilder和StringBuffer提供append、insert、delete、replace等可变操作,避免性能损耗;两者功能相似,区别在于StringBuffer线程安全但性能较低,StringBuilder非线程安全但效率更高,推荐单线程使用StringBuilder;合理设置初始容量可减少扩容开销,提升性能;循环拼接优先用StringBuilder,多线程共
-
提升Java面向对象设计可维护性的核心是降低耦合、明确职责、预留扩展并确保意图清晰;具体包括接口隔离、组合优于继承、封装状态变更、依赖注入明确化、策略模式替代if-else等实践。
-
ELK7.x接入Java应用需确保日志格式、协议、版本兼容:Java端用logback-spring.xml配Socket/HttpAppender发结构化JSON,Logstash对应配tcp/http插件+jsoncodec,ES提前建索引模板设traceId等为keyword,禁用Logstash默认HTTPS输出,调小pipeline.batch.size和delay降低延迟。
-
静态变量在类初始化阶段(clinit)才被赋值,而非加载完成时;准备阶段仅分配内存并设默认值,初始化阶段才执行static块和显式赋值,finalstatic编译期常量除外。
-
Arrays.sort()对自定义对象排序报ClassCastException是因为未实现Comparable接口或未传Comparator;基本类型用双轴快排,引用类型用TimSort;binarySearch未找到时返回-(insertionPoint+1);fill填引用会导致共享同一实例;toString只展一层,deepToString才处理嵌套数组。
-
IllegalStateException由程序逻辑错误导致对象状态非法引发,常见于遍历中修改集合、操作已关闭资源或未初始化即使用对象;应通过检查状态、使用安全集合、合理管理资源生命周期及主动抛出异常来预防,避免依赖捕获处理。