-
transient只在Java默认序列化中生效,对JSON/XML/ORM等无效;它使字段不参与字节流读写,反序列化后为默认值,但无法防止日志、网络传输或自定义序列化中的泄露。125 收藏 -
StampedLock不支持直接writeLock→unlockWrite→readLock的锁降级,必须用tryConvertToReadLock()在持有写锁时尝试转换;失败则需先unlockWrite再readLock,否则出现竞态窗口。144 收藏 -
CloneNotSupportedException的根本原因是类未实现Cloneable接口,JVM在Object.clone()中检查失败后主动抛出;正确做法是不实现该接口、不重写clone(),让异常自然发生以阻止不安全的浅拷贝,或改用复制构造器等更可靠的替代方案。277 收藏 -
Java方法返回数组需显式声明类型如int[]、用new或字面量创建,注意引用传递、泛型擦除限制及序列化兼容性。442 收藏 -
订单基础录入模块需分层建模(OrderHeader、OrderItem、OrderAddress、OrderLog)、状态驱动字段控制、前后端分离校验、事务与异步解耦。283 收藏 -
JavaBean必须有public无参构造函数、所有字段private且仅通过publicgetter/setter访问、建议实现Serializable接口;否则Spring等框架反射创建对象或序列化时会失败。363 收藏 -
最简单可靠且无障碍支持最好的方式是用<label>直接包裹复选框或单选框,点击label内任意位置(文字、空白、图标)均可触发状态切换,无需JavaScript或CSS模拟;结构简洁,无需id和for属性,移动端热区自动扩大,屏幕阅读器天然支持。131 收藏 -
OperatingSystemMXBean.getFreePhysicalMemorySize()返回操作系统当前完全未被使用的物理内存字节数,Linux对应MemFree,Windows/macOS则包含可快速回收内存,与JVM堆内存无关。423 收藏 -
死锁产生的四个必要条件是互斥条件、占有并等待、不可剥夺、循环等待。互斥指资源一次仅能被一个线程持有;占有并等待指线程持有一锁又申请另一锁且不释放前者;不可剥夺指Java中锁无法被强制剥夺;循环等待指多个线程形成闭环等待链。210 收藏 -
StringBuilder.reverse()是最直接的字符串反转方法,需用newStringBuilder(s).reverse().toString()获取结果;手动操作char[]更灵活但需注意副本与原字符串无关。274 收藏 -
getCommittedVirtualMemorySize()返回JVM进程已向操作系统承诺且保证可用的虚拟内存总量(字节),包含堆、元空间、线程栈、直接内存等所有已commit的地址空间,非堆内存也计入,不支持时返回-1。294 收藏 -
公平模式(fair=true)启用FIFO调度,避免线程饥饿但吞吐量降低15%–30%;非公平模式允许插队、提升吞吐,但可能引发延迟波动与个别线程长期等待。489 收藏 -
Boolean.logicalOr()不适合函数式布尔复合,因其是立即求值的静态方法,不支持惰性计算、不可组合、不返回一等函数;应改用BooleanSupplier封装或自定义高阶组合工具。280 收藏 -
Java中BST非递归插入与查找均用while循环实现:插入需跟踪parent以挂载新节点,查找只需沿BST性质移动;二者均须前置判空,比较用compareTo避免包装类错误。278 收藏 -
最低有效位(LSB)是非零整数二进制中最右侧值为1的位所代表的十进制数值,如24(11000)的LSB为8;其高效计算方法是x&-x,利用补码特性一步得出结果。379 收藏