-
Java分页查询核心是合理协同分页参数传递、SQL构造与结果封装:1.前端传page/size需校验并规范封装;2.数据库优先用limit+offset,大数据量改游标分页;3.Java层应返回含总数、总页数等元信息的封装对象。
-
Java有8种基本数据类型,分为四类:整数类型(byte、short、int、long)、浮点类型(float、double)、字符类型(char)和布尔类型(boolean),它们直接存储在栈内存中,是数据处理的基础。
-
ArithmeticException仅在整数除零(/或%)及Integer.MIN_VALUE/-1时抛出,浮点数除零返回Infinity/NaN,空值运算抛NullPointerException,编译期常量除零直接报错。
-
void方法用于执行操作、修改状态、实现接口或提升可读性,不返回值但具重要作用。
-
DCL在Java5前因volatile重排序约束弱易致“半初始化”;JDK5+需用volatile保证安全;推荐静态内部类方案,线程安全、延迟加载、无同步开销。
-
判断字符串为空或空白应先判null再trim().isEmpty(),或用StringUtils.isBlank()、JDK11+的isBlank();substringendIndex不包含且需满足索引范围;replace处理字面量,replaceAll处理正则;循环拼接必须用StringBuilder。
-
掌握Java并发编程需理解线程创建、同步机制与并发工具;通过继承Thread或实现Runnable创建线程,使用synchronized、volatile和Lock保证线程安全,结合ThreadPoolExecutor、CountDownLatch、ConcurrentHashMap等工具提升效率,利用Atomic类实现无锁CAS操作,合理运用可显著提高程序性能与稳定性。
-
Java分布式事务实现最终一致性的核心思路是异步与补偿。①基于消息队列的异步确保:通过本地事务保障业务操作与消息发送的一致性,结合定时任务重试机制和消费者幂等性处理,适用于大多数业务场景;②TCC模式:通过Try预留资源、Confirm确认、Cancel回滚三个阶段实现强一致性,但对业务侵入性强,适合金融支付等高一致性要求场景;③Saga模式:将长事务拆分为多个本地短事务并配补偿操作,适用于复杂服务链,可选编排式(集中控制流程)或协调式(事件驱动),前者适合复杂流程便于维护,后者去中心化适合简单固定流程。
-
add()返回boolean表示元素是否实际加入,addAll()是取差集操作且时间复杂度O(n×m),containsAll()在ArrayList中为O(n×m)需优化。
-
默认仅RuntimeException和Error触发Spring事务回滚;检查异常需通过rollbackFor显式配置;事务失效还常因方法非public、自调用、未启用事务管理等导致。
-
本文介绍在HibernateJPQL中正确实现子字符串模糊匹配的方法,解决因误用concat导致的语法错误问题,通过LIKE配合concat构造动态通配符查询。
-
Java后台静默播放音频的核心限制是javax.sound.sampled不支持真正静默播放,需依赖系统音频设备及权限,无设备或权限不足将抛LineUnavailableException;推荐用Clip播放WAV/PCM,禁用headless模式,Linux需配置PulseAudio/ALSA,Windows需启用音频服务;若仅需模拟行为,应采用日志、消息队列或数据库记录等降级方案。
-
当Java编译器报错“cannotfindsymbol”且涉及跨文件引用的类(如Converter)时,根本原因通常是包结构与编译命令不匹配——特别是未按package声明生成对应目录层级,或主类错误地声明了不必要的包名。
-
CopyOnWriteArrayList适合读多写少场景,如监听器列表、配置缓存、广播队列;写操作频繁时性能骤降,因每次写需全量复制数组;迭代时修改不抛ConcurrentModificationException,但Iterator.remove()无效。
-
答案:Java中Lock接口提供比synchronized更灵活的锁控制,支持可中断、超时、非阻塞获取锁及Condition条件等待,基于AQS实现自定义同步器,如SimpleMutex锁,通过tryLock避免死锁,结合多个Condition实现精准线程唤醒,提升并发程序性能与可控性。