-
Java的Locale仅标识语言和地区,不提供翻译功能;多语言需配合ResourceBundle、MessageFormat及规范命名的属性文件实现,且必须显式传入Locale对象才能生效。
-
选择ConcurrentHashMap因它采用分段锁或CAS+synchronized机制,支持高并发读写,避免全局锁性能瓶颈,适用于频繁增删改查的统计场景。
-
ThreadMXBean.findDeadlockedThreads()返回null是正常现象,因仅检测JVM内置锁的循环阻塞态;需周期轮询、结合超时与阈值判断,并区分synchronized与ReentrantLock等显式锁的监控差异。
-
Java类加载器无法卸载类,热更新实为用新ClassLoader加载同名类并让旧类被GC回收;需确保旧类实例彻底不可达、使用独立URLClassLoader、避免静态引用;常见陷阱包括static字段未清理、线程未终止及JNI资源泄漏。
-
Java中MessageDigest线程不安全,须每次调用getInstance获取新实例;字符串转字节需显式指定UTF-8编码;SHA-256支持硬件加速;算法名须全大写如"SHA-256"。
-
子类只能继承父类中public、protected及同包下的默认成员,不能继承private成员、构造方法、静态成员和final方法;能否继承以编译时this.xxx或super.xxx是否通过为准。
-
必须实现Comparable接口时:类需支持Arrays.sort()、Collections.sort()或作为TreeSet/TreeMap的key;一个类仅能有一种自然顺序;第三方final类无法修改源码,故不可通过实现Comparable改变其排序逻辑。
-
使用JWT实现Java后端身份认证需生成、传递、解析和验证Token。首先添加jjwt依赖,登录成功后用Jwts.builder()生成含用户信息和过期时间的Token,并通过密钥签名;前端请求时在Authorization头携带BearerToken;服务端通过JwtFilter拦截请求,解析并验证Token合法性,可结合SpringBoot配置Filter或集成SpringSecurity进行权限控制。密钥应从配置文件读取,避免硬编码,确保安全。
-
Java子类声明与父类同名的实例字段时,并不会覆盖父类字段,而是隐藏(hiding)它;一个子类对象在内存中实际包含两份独立的x字段——分别属于父类和子类类型,通过this.x和super.x可明确区分访问。
-
Gatling不支持真正意义上的WebSocket“永久接收”(forever),其WebSocketDSL要求显式声明预期接收的消息数量;但可通过动态生成大量await().on()检查、结合超时与容错机制,模拟长时间持续监听场景。
-
多态通过继承和方法重写实现,允许父类引用调用子类方法,提升代码扩展性与维护性;示例中Animal父类引用指向Dog和Cat子类对象,调用makeSound()时输出各自重写后的声音;集合遍历和方法参数通用化是多态典型应用场景;属性不支持多态,父类引用无法直接访问子类特有方法,需强制转型并配合instanceof确保安全;核心原则是“编译看左边,运行看右边”。
-
Optional的核心作用是将空值显式化、类型化,强制编译期处理空值场景,切断null传播链,并提升API语义清晰度;它适用于方法返回值,不适用于字段、参数或集合元素。
-
静态方法不能访问实例变量和实例方法,因其属于类而非对象;调用非static成员会报“non-staticvariablexxxcannotbereferencedfromastaticcontext”错误,解决需改static或先创建实例。
-
应遍历NetworkInterface.getNetworkInterfaces()获取真实网卡名,按isUp()、非loopback、有MAC地址筛选;getHardwareAddress()为null时需检查权限或系统限制;获取IPv4地址时应过滤本地、链路本地、回环及APIPA地址;Windows中文名乱码需用GBK重解码。
-
MicroStream在JDK17+中使用JavaRecords时因模块封装限制无法访问jdk.internal.misc.Unsafe,需显式导出模块或改用传统POJO;Gradle测试可通过正确配置jvmArgs或启用--enable-preview(如适用)解决。