-
collectingAndThen()的核心作用是后处理,即对下游收集器结果执行一次函数转换;是否不可变取决于所传后处理函数,如List.of()(Java10+推荐)、Collections.unmodifiableList()等。
-
Interface静态方法不能替代单例模式,因其不提供实例构造与管理能力;NIMInterfaceStatic是带静态方法的类而非interface;Java/TS的interface均不支持静态方法实现,所谓“interfacestatic方法”实为误称。
-
不能。HashedWheelTimer无法兼顾百万级规模与毫秒级精准调度,其精度受tickDuration硬性限制,规模扩大导致内存激增、GC压力加剧、槽位链表退化及单线程worker阻塞,需分片或多实例架构替代。
-
本文介绍如何读取CSV文件,将每行以逗号分隔的多个数字字符串逐个提取,并合并为一个包含全部数字的一维字符串数组(或整型数组),适用于数据预处理、批量解析等场景。
-
本文介绍如何使用Java的split()方法将冒号分隔的字符串(如"George:45:185")高效拆分为独立字段,并安全转换为对应类型(String、int等),同时涵盖异常处理与现代写法建议。
-
printStackTrace()可快速输出完整堆栈到System.err,适用于开发调试;需判空避免NPE;获取字符串应使用StringWriter+PrintWriter;日志中须传Throwable实例而非字符串拼接。
-
变量遮蔽指子类或方法内同名变量覆盖父类/成员变量,需用this访问当前对象成员、super访问父类成员;构造器中this()和super()须首行且互斥;遮蔽是静态绑定,不同于方法重写的动态绑定。
-
Java7+支持单个catch捕获多种互不继承的异常,用|分隔,共享最小公共父类变量;被抑制异常需通过getSuppressed()获取;Java6需用instanceof或多个catch块替代。
-
接口定义行为契约,抽象类提供共用实现。通过接口实现多继承行为,定义“能做什么”;抽象类封装共有属性与方法,解决“是什么”和“如何部分实现”。典型模式如List与AbstractList,接口规范标准操作,抽象类实现通用逻辑,开发者可选择完全自定义或继承抽象类重写必要方法,兼顾扩展性与复用性。
-
Function本质是类型安全的映射函数,具泛型约束、可实例化传递组合,核心为无副作用的apply(T)→R纯转换。
-
G1的RSet只记录老年代→年轻代引用,因年轻代对象生命周期短,其引用老年代对象不影响后者的存活判定;而年轻代回收需避免扫描全老年代,故必须记录反向引用以保障安全回收。
-
必须用volatile修饰静态实例变量,否则多线程下可能拿到未初始化完成的对象;因为JVM创建对象的三步(分配内存、调用构造函数、赋值引用)可能重排序,导致其他线程看到半初始化状态。
-
Java提供三种注释:单行注释//用于简要说明,多行注释/.../用于多行或禁用代码,文档注释/*.../生成API文档,合理使用可提升代码可读性与维护性。
-
Java的System类不能直接加载非JNI兼容的DLL;必须使用按JNI规范编写的、导出Java_类名_方法名函数的DLL,再通过System.load()(绝对路径)或System.loadLibrary()(需配置java.library.path)加载。
-
TreeSet的Comparator必须是函数式接口实现,排序逻辑由其决定且初始化后不可变;多字段排序须用Integer.compare()等安全方法防溢出;推荐用Comparator.comparing().thenComparing()链式调用提升可读性与健壮性;自定义Comparator还直接影响contains()和remove()行为,判定相等仅依据compare(a,b)==0。