-
Java基本类型字段默认值为:byte/short/int/long→0,float/double→0.0,char→'\u0000',boolean→false;局部变量无默认值,必须显式初始化;包装类型字段默认为null。
-
ArrayDeque就是Stack的现代替代品,别再用Stack了Java官方从JDK1.6起就明确不推荐Stack,JDK9+的文档里直接写“AmorecompleteandconsistentsetofLIFOstackoperationsisprovidedbytheDequeinterface”——意思是:要栈操作,就用Deque,别碰Stack。这不是建议,是淘汰声明。为什么ArrayDeque压倒性胜出:三个硬伤Stack根本改
-
Java集合框架通过Collection和Map等接口构建,List如ArrayList适合读多写少,LinkedList适合频繁增删;Set中HashSet用于快速查找,TreeSet实现排序;HashMap高效存取键值对,需注意线程安全,推荐ConcurrentHashMap;结合泛型与迭代器提升类型安全与遍历效率。
-
finally中的return会覆盖try中的return并终结函数,即使try抛出异常也会被吞掉;Java禁止finally中return而Python允许,移植时易出错。
-
File.listFiles()返回null是因权限不足、路径不存在或I/O异常,非空目录;须先判空避免NPE;Files.walk()更安全但需限深防OOM,且须及时关闭流。
-
正则表达式由字符字面量与元字符、字符类与预定义字符集、量词与重复控制、锚点与边界匹配、分组与捕获机制五大核心部分构成,共同实现文本的精准匹配与灵活操作。
-
CloneNotSupportedException根源是类未显式声明implementsCloneable接口,即使重写了clone()方法;必须public重写clone()、手动处理引用类型深拷贝、数组和final字段需特殊处理,但原生clone机制脆弱,推荐用构造函数、静态工厂或序列化替代。
-
this是Java中指向当前对象的引用,用于区分成员变量与局部变量(如this.name=name)、调用当前对象方法(如this.sayHello())、调用同类其他构造器(如this("Unknown",0)且须在首行)、以及将当前对象作为参数传递(如EventManager.register(this)),不可在静态上下文中使用。
-
final修饰变量仅保证引用不可变,对象内容仍可修改;修饰方法禁止重写;修饰类禁止继承;但final本身不等于不可变,需配合字段final、无修改方法、防御性拷贝等才构成真正不可变类。
-
本文介绍一种基于Java8StreamAPI的简洁、函数式方法,实现对树形结构对象(如嵌套的Message)进行深度优先递归遍历,并将其所有节点(含自身)收集为扁平化列表。
-
对象锁锁this保护实例数据,类锁锁Class对象保护静态资源;二者互不阻塞,选择依据是数据归属:实例字段用对象锁,静态字段用类锁。
-
本文介绍如何在JSONSchema中精确表达“对象内多个可选字段不得全部为null”的业务约束,通过anyOf组合校验与类型修正,实现对Employee等复合对象的健壮性验证。
-
Predicate.not是Java11新增的Predicate接口静态方法,用于安全取反非null谓词并返回新Predicate实例,空输入抛NPE,语义清晰且不可替代为即时布尔表达式。
-
Checkstyle在Maven项目中需确保插件版本与规则版本对齐,显式声明checkstyle.version,正确配置suppression路径、TreeWalker嵌套、注解支持,并在pom中绑定check目标到verify生命周期,同时同步IDEA的版本与路径配置。
-
private是安全起点,字段默认应声明为private;只读字段仅提供返回不可变视图或拷贝的getter;可写字段的setter必须校验输入;避免裸暴露字段和机械配齐getter/setter。