-
接口是公开、抽象、可组合的行为契约,表达“能力”而非“身份”,支持多实现与向后兼容演进;abstractclass表达纵向类型继承,仅单继承。304 收藏 -
正确写法是System.currentTimeMillis(),返回自1970-01-01UTC起的毫秒数;常见错误包括拼写错误、大小写错误;适用于粗粒度时间记录,高精度场景应选nanoTime()或Instant.now()。304 收藏 -
本文详解如何在Java8+中使用Collectors.toMap配合TreeMap::new工厂方法,高效、简洁地实现Map按String键自然排序(如省份名称字母序),并兼顾类型安全、去重策略与性能优化。304 收藏 -
主流编程语言支持逗号批量声明同类型变量,但规则各异:Java要求全部初始化;C/C++允许部分未初始化;Go需显式同类型赋值;Python则通过元组解包实现无类型同时赋值。304 收藏 -
JavaSwing开发备忘录应用需手动搭建:用JFrame作窗口、JTextArea编辑、JFileChooser选文件,配合FileReader/FileWriter读写UTF-8文本;须用JScrollPane支持滚动,pack()布局,EDT外异步I/O,窗口关闭监听防丢数据,并采用临时文件原子保存。304 收藏 -
位掩码用&、|、^是因状态少、读写频、内存敏时更省空间且更快;int存32开关,long存64,CPU位操作原子、无对象头与GC压力。303 收藏 -
Path比File更灵活,能跨平台处理路径逻辑;Files类封装90%以上基础IO操作,提供walk()高效遍历和清晰异常体系。303 收藏 -
该用静态还是非静态取决于访问需求:需访问外部类实例成员则用非静态,仅用静态成员或工具功能则优先static,以避免内存泄漏、支持序列化并提升性能。303 收藏 -
本文介绍如何在Java中正确判断两个任意菱形是否发生几何重叠,指出仅比较顶点坐标的常见误区,并提供基于轴对齐包围盒(AABB)预检与精确凸多边形相交判定的完整解决方案。303 收藏 -
Objects.equals能防NPE,因其内部先判空:二者同为null返回true,仅一者为null返回false,均非null才调用a.equals(b),彻底避免空指针异常。303 收藏 -
Java注释分三种:单行(//)、多行(/.../)和文档注释(/.../);//用于简短说明或禁用代码,/.../用于跨行说明或屏蔽代码段,/.../生成Javadoc并支持@param等标签。303 收藏 -
先从业务抽象出发设计继承关系,而非技术细节。通过定义抽象类表达统一语义下的多样性,如订单系统的创建流程;利用模板方法固化不变流程,子类实现差异化逻辑;避免过度细化继承层级,用组合处理多维变化;命名体现领域语言,使代码成为业务叙事。这样继承结构与业务认知一致,提升可维护性和可理解性。302 收藏 -
应继承Exception还是RuntimeException取决于调用方是否必须主动处理:系统级/外部依赖失败选Exception,内部逻辑错误/校验失败选RuntimeException;务必提供带cause的构造器;异常类应保持精简,避免业务字段;Spring中按类型而非名称捕获异常。302 收藏 -
强制类型转换中整型溢出与精度丢失的关键在于判断“在哪丢、怎么丢、能否提前发现”,需结合取值范围、二进制截断规则及目标类型表示能力综合分析。302 收藏 -
InputStreamReader是字节流到字符流的解码桥,仅在需将InputStream按字符处理时使用;必须显式指定编码(如StandardCharsets.UTF_8)并套BufferedReader以避免乱码和性能问题。301 收藏