-
本文介绍如何基于Bootstrap构建支持多选的下拉菜单,通过在dropdown-menu中嵌入checkbox元素,并配合jQuery阻止事件冒泡,确保点击复选框时下拉菜单不意外关闭。
-
Volley请求返回空白或报错,往往是因为请求类型与服务器实际返回的数据格式不匹配;本文重点解决因误用JsonObjectRequest加载JSON数组而导致请求“静默失败”的典型问题。
-
Java多态是语言特性而非设计模式,却是策略、模板方法、工厂方法、观察者等模式落地的底层支撑;它通过接口/抽象类实现运行时行为绑定,避免if-else硬编码,提升扩展性与可测试性,但需警惕假抽象、构造器调用抽象方法、类型判断绕过多态等常见问题。
-
LocalDate.plusDays()不修改原对象而返回新实例,需赋值接收;月视图推荐plusMonths()避免错位,节气农历需外接库或查表实现。
-
BindException是操作系统报出的端口占用异常,表明JVM尝试绑定的端口(如8080)已被其他进程占用;常见于SpringBoot启动卡在Web服务器初始化阶段,需用lsof、netstat或netstat-ano定位并终止冲突进程,或通过配置server.port、VM参数、Docker端口映射等避免重复绑定。
-
多线程高频生成随机数且无需可重现序列时应优先用ThreadLocalRandom;它为每线程提供独立实例避免同步开销,而Random适用于需固定种子复现序列的场景。
-
protected成员可在同类、同包及其他包的子类中访问,主要用于继承;子类不能通过父类实例访问其protected成员,只能继承访问。
-
SQLException捕获后应记录SQL语句、参数、getSQLState()和getErrorCode(),仅e.printStackTrace()会丢失关键上下文;只对“08S01”“40001”等可重试码重试,且需关闭资源、指数退避、避免事务内重试;回滚前须检查事务状态;PreparedStatement参数为null时应统一用setObject或setNull,禁用字符串拼接防注入。
-
职责单一的类应只做一件可清晰定义、独立测试和修改的事;判断标准是类名替换为“负责……的类”后,所有public方法都自然属于该省略内容,且避免混用不同领域动词、私有方法中隐藏协作逻辑、构造函数中创建业务对象等破绽。
-
Process是Java中表示外部进程的抽象类,通过Runtime.exec()或ProcessBuilder.start()启动子进程,可获取其输入、输出、错误流,控制进程执行并读取退出码。
-
transient字段反序列化时为null是因JVM跳过其序列化,属设计行为;未声明serialVersionUID会导致类结构变更后反序列化失败;推荐手动设为1L并谨慎升级;JSON、protobuf等是更安全可靠的替代方案。
-
不能直接newCollections(),因为它是私有构造函数的静态工具类;其核心用途包括创建不可变/同步集合、频率统计、交集判断等集合接口不提供的全局操作。
-
STS更新Maven项目时因MapStruct依赖卡在75%无响应,通常是本地Maven仓库中MapStruct相关构件损坏所致;删除对应版本缓存后重试即可恢复。
-
HashSet底层基于HashMap实现,元素作key、PRESENT作value,继承其线程不安全、扩容机制等特性;TreeSet基于TreeMap,依赖Comparable或Comparator排序,null处理需谨慎;二者迭代顺序根本不同。
-
Java多态通过虚方法表(vtable)实现动态分派,非static、非private、非final的实例方法在运行期根据对象实际类型查vtable调用对应版本,final/static/private方法因编译期绑定而无法多态。