-
Java类声明需选public或默认修饰符,private/protected禁用于顶级类;字段分static(类共享)与非static(实例独有),final字段须在构造器中初始化;构造器无返回类型、不被继承,须显式调用super();this仅用于非static上下文,static方法不可访问实例成员。
-
Caffeine通过maximumSize、expireAfterWrite、expireAfterAccess等驱逐策略影响性能表现。1.maximumSize设置缓存最大条目数,使用W-TinyLfu算法淘汰“最不值得保留”的数据,直接影响命中率与内存占用;2.expireAfterWrite设定写入后过期时间,适用于时效性强的数据;3.expireAfterAccess设定访问后过期时间,适合淘汰不常访问的数据;4.weakKeys和weakValues利用弱引用机制防止内存泄漏,但可能导致意外驱逐
-
ReadOnlyBufferException是java.nio.Buffer子类主动抛出的,当在只读缓冲区上调用put()、compact()等修改方法时触发;判断只读性唯一可靠方式是isReadOnly();无法解除只读,只能拷贝可写副本。
-
List的“有序”指按插入顺序保存元素并支持索引访问,而非自动排序;允许重复和null;需正确实现equals();ArrayList适合随机访问,LinkedList适合频繁首尾增删;subList返回视图而非副本;遍历时修改会触发ConcurrentModificationException。
-
DockerCompose中depends_on仅控制启动顺序,不确保依赖服务端口就绪;Java应用需配合健康检查、重试机制、显式JVM内存参数及DNS优化才能稳定运行。
-
Atomic类专为单变量“读-改-写”操作设计,基于CAS实现无锁原子性,适用于计数器、标志位等场景,但不适用于多变量一致性保护。
-
BlockingQueue是Java并发中实现线程协作的核心工具,通过ReentrantLock与Condition实现自动挂起与精确唤醒;其类型选择(Array、Linked、Synchronous、Delay)直接影响协作效率与系统稳定性,并深度耦合线程池调度策略,需避免混用阻塞/非阻塞方法、无界队列OOM及不当启用公平模式等陷阱。
-
Java中if和switch各有所长:if适用于复杂逻辑、范围判断和布尔表达式组合,如age>=18&&age<65;switch适合固定值枚举匹配,代码更清晰安全易维护。
-
方法重载允许类中多个同名方法共存,只要参数列表不同即可。例如Calculator类中add方法可接受不同数量、类型或顺序的参数,Java根据传入参数自动匹配对应方法,提升调用灵活性与代码可读性。
-
答案:实现Java论坛分类功能需设计Category和Post类,通过CategoryService管理分类的增删改查及帖子关联,主程序用控制台模拟交互,完成基础业务逻辑。
-
答案:try-catch-finally用于确保资源释放,finally块始终执行以关闭资源,但需手动处理异常且易出错;Java7起推荐使用try-with-resources自动管理资源,代码更简洁安全。
-
EnumMap用枚举ordinal()直接作数组下标,免哈希、免比较、免对象开销;空间利用率100%,遍历按声明顺序;不支持null键和跨枚举类型,新增枚举常量会破坏序列化兼容性。
-
只有有向无环图(DAG)才有拓扑排序,所谓“集合的拓扑排序”实为对顶点集合V按有向边关系进行的排序;需用邻接表或Map构建图并运行Kahn或DFS算法,因邻接表空间高效、支持非连续/字符串顶点名、便于动态更新;Kahn算法中须显式初始化所有顶点入度,用merge或get-default方式安全更新,结果长度小于顶点数即表明存在环。
-
本文详解如何在Angular(CryptoJS)与Java后端间实现AES/CBC加密解密的无缝协同,重点解决PKCS#5与PKCS#7填充不一致、密钥派生参数错配等常见跨语言兼容问题。
-
要自定义SpringCloud负载均衡算法,核心是实现ReactorServiceInstanceLoadBalancer接口。1.创建类实现choose方法,根据业务逻辑从实例列表中选择目标实例;2.通过@LoadBalancerClient配置特定服务使用自定义负载均衡器;3.考虑全局配置时可通过LoadBalancerClientFactory注册;4.实现时需关注实例健康状态、线程安全、性能开销、服务发现集成及可观测性;5.生产环境部署应注重日志记录、版本兼容、配置管理,并结合熔断降级和压测保障稳