-
Objects.requireNonNull是JDK7引入的空值校验工具,用于在源头快速失败并明确报错,适用于构造器参数、public方法入参及外部关键对象等场景,提升调试效率与代码健壮性。
-
Java对象头MarkWord存储哈希码、GC年龄、锁状态等,用JOL配合HotSpot源码可解析其二进制结构:无锁为001、偏向锁101、轻量级锁000、重量级锁010、GC标记111。
-
数组是引用类型,变量存储指向堆中连续内存块的地址,元素物理相邻,支持O(1)随机访问,越界会因地址超限而异常。
-
Java访问修饰符决定可见性与封装强度:public开放接口需谨慎;protected支持安全继承;默认(包级私有)实现模块隔离;private保护实现细节。
-
Map是Java中存储键值对的核心接口,提供put、get、remove等方法,键唯一值可重复,常见实现有HashMap(高性能无序)、LinkedHashMap(有序)、TreeMap(按键排序)、Hashtable(线程安全但过时)和ConcurrentHashMap(高并发推荐),遍历推荐entrySet方式。
-
try_catch是处理运行期异常的核心机制,需try与catch成对使用,优先捕获具体异常类型,配合finally或try-with-resources确保资源释放,并严禁忽略异常。
-
Java转义字符的核心作用是让编译器将特殊字符视为普通字符或插入控制字符,均以单个反斜杠\开头;基础有\n、\t、\r、\b、\f、\"、\'、\\八种;需在字符串、字符字面量、正则、路径等场景规避语法冲突;还可通过\uXXXX和\ddd编码表示任意字符;使用时须注意转义层级与上下文。
-
ELK7.x接入Java应用需确保日志格式、协议、版本兼容:Java端用logback-spring.xml配Socket/HttpAppender发结构化JSON,Logstash对应配tcp/http插件+jsoncodec,ES提前建索引模板设traceId等为keyword,禁用Logstash默认HTTPS输出,调小pipeline.batch.size和delay降低延迟。
-
<p>先装Maven并配置PATH:Mac/Linux用brewinstallmaven,Windows用SDKMAN!;再改本地仓库路径至非C盘/桌面(如D:\maven\repo),并正确配置settings.xml中mirrorOf为*或central。</p>
-
ThreadFactoryBuilder是Guava库(com.google.guava:guava)的工具类,非JDK自带;需引入Guava≥18.0,nameFormat必含唯一%d实现线程名递增,且应显式设置uncaughtExceptionHandler防止异常静默退出。
-
首先下载并解压ApacheAnt,然后设置ANT_HOME、JAVA_HOME环境变量并将Ant的bin目录添加到PATH中,接着通过ant-version验证安装成功,再在项目根目录创建包含compile目标的build.xml文件,最后运行ant命令执行自动化编译,确保路径与项目结构一致。
-
Arrays.copyOf()和clone()都只做浅拷贝,即复制数组引用而非对象实例;二者性能相近,但clone()略快且可读性差;深拷贝需手动遍历构造或谨慎使用序列化。
-
InterruptedIOException是IOException的子类,用于表示IO操作因线程中断而失败,常见于旧版NIO、阻塞IO或某些框架中;尽管现代Java多用InterruptedException,但在遗留代码或特定场景(如Android开发)中仍可能遇到。处理时应通过try-catch捕获该异常,并调用Thread.currentThread().interrupt()恢复中断状态,确保中断信号不被“吞掉”。示例代码展示了在IO读取中捕获InterruptedIOException并恢复中
-
extends是Java中声明单继承关系的关键字,只能跟一个类名,子类默认隐式继承Object;构造器不被继承,子类必须显式或隐式调用父类构造器;重写需满足访问权限、返回类型等条件,且不能继承final类或private方法。
-
Arrays.sort()对自定义对象排序报ClassCastException是因为未实现Comparable接口或未传Comparator;基本类型用双轴快排,引用类型用TimSort;binarySearch未找到时返回-(insertionPoint+1);fill填引用会导致共享同一实例;toString只展一层,deepToString才处理嵌套数组。