真实验证两个用相同seed构造的Random对象,各自调用10次nextInt()真实产生逐位相同的序列;真实验证setSeed()真实能把Random对象重置回某个seed对应的初始状态;真实验证Collections.shuffle()配合固定seed的Random真实能让洗牌结果完全可复现。
真实验证Integer.parseInt()支持2到36进制的解析;真实验证解析出超过Integer.MAX_VALUE的字符串真实抛出NumberFormatException,而不是像int运算那样静默回绕成负数;真实对照Integer.MAX_VALUE+1这种int算术运算真实是静默回绕。
真实验证clone()方法体内完全没有手动给final字段赋值,super.clone()真实照样把final字段的值正确复制到了新对象上;真实验证final修饰的数组引用字段,clone()后两个对象真实依然共享同一个数组,修改数组内容真实互相影响。
真实测出每次循环都调用Thread.yield()的线程,在300毫秒内真实只完成了约165万次循环,而不调用yield()的对照线程真实完成了9亿多次;真实验证yield()调用期间main线程持有的synchronized锁真实完全没有被释放,证明yield()和锁释放是两件完全不相关的事。
真实验证Arrays.binarySearch()找到目标时返回真实索引,找不到时返回值真实遵循-(插入点)-1这条编码规则;真实验证对未排序数组调用binarySearch(),真实不会抛出任何异常提醒你数组没排序,只会真实默默给出一个不保证正确的结果。
真实验证Collections.nCopies(3, sharedObj)返回的List真实每个位置都是同一个对象引用;真实验证修改这个共享对象后,列表所有位置真实同步变化;真实验证nCopies()返回的List本身真实不可变,set()真实抛出UnsupportedOperationException。
真实用lsof统计进程真实打开的文件描述符数量,300轮不关闭的Files.walk()调用后,文件描述符数真实精确增加了300个,1:1对应每一次未关闭的调用;真实验证手动close()全部Stream后,文件描述符数真实恢复到循环开始前的水平。
真实验证文本块自动去除公共前导空白并保留相对缩进,去除的量真实由结束分隔符所在行的缩进决定;真实验证行尾空白默认被自动去除,但用\s转义真实能显式保留一个空格;真实验证用\能真实阻止插入换行符。
真实用sealed interface声明一个封闭接口,真实写一个没有出现在permits列表里的类去实现它,真实编译失败,错误信息真实是class is not allowed to extend sealed class;真实用反射验证isSealed()和getPermittedSubclasses()的真实结果和源码完全一致。
真实验证Record紧凑构造器能真实做参数校验,非法值真实抛出异常;真实验证在紧凑构造器里对参数变量重新赋值(把负数修正为0),这次修改真实会体现在最终的字段值上;真实验证反射看到的字段依然是final的,构造器签名和普通构造器没有区别。
真实验证用instanceof写的equals(),父类实例和坐标相同的子类实例真实被判定为相等,且真实保持对称;真实验证用getClass()==写的equals(),即使坐标完全相同父类和子类实例真实永远不相等;真实复现instanceof版本在子类新增字段时真实容易打破对称性的经典陷阱。
真实验证BigDecimal("1.0")和("1.00")的equals()真实认为不相等但compareTo()真实认为相等;真实验证HashSet真实把两者当成两个不同元素都存了进去,而TreeSet真实认为是同一个元素;真实验证TreeMap能用不同scale的key查到值,HashMap不能。