-
- redis 是什么?都有哪些使用场景?
- Redis是高性能内存数据库,支持多数据类型与持久化,常用于缓存、会话存储、排行榜、消息队列、分布式锁及实时数据处理,具备高并发、低延迟特性,广泛应用于现代分布式系统。
- Java面试题 . Java 736 2025-11-19 14:45:06
-
- java 中notify()和 notifyAll()有什么区别?
- notify()唤醒一个等待线程,由JVM随机选择,适用于单一资源场景;notifyAll()唤醒所有等待线程,避免线程饥饿,推荐用于多条件或复杂逻辑,确保线程安全。
- Java面试题 . Java 655 2025-11-19 13:01:02
-
- java 中Array 和 ArrayList 有何区别?
- Array是固定大小的原始数据结构,可存基本类型和对象,性能高;ArrayList来自java.util包,动态扩容,仅存对象,操作灵活但稍慢。
- Java面试题 . Java 790 2025-11-19 08:48:50
-
- 请简述编写Java程序,使用新的日期时间API(Lo
- Java8引入java.time包以替代Date和Calendar。1.使用LocalDateTime.now()获取当前日期时间;2.通过DateTimeFormatter格式化或解析日期字符串;3.用ZonedDateTime处理时区,如纽约时间;4.支持便捷的日期计算,如加减天数、小时等。新API不可变且线程安全,推荐用于Java8+项目。
- Java面试题 . Java 661 2025-11-18 11:15:06
-
- hibernate 中如何在控制台查看打印的 sql 语句?
- 配置Hibernate显示SQL语句可通过三种方式:在hibernate.cfg.xml中设置show_sql、format_sql和use_sql_comments属性;2.SpringBoot项目在application.yml或properties中配置spring.jpa.show-sql和format-sql;3.结合Logback等日志框架,将org.hibernate.SQL设为DEBUG级别,BasicBinder设为TRACE以查看SQL及参数值。
- Java面试题 . Java 918 2025-11-18 09:46:08
-
- 简述分代垃圾回收器是怎么工作的?
- 分代垃圾回收器将堆内存分为新生代和老年代,基于对象存活时间采用不同回收策略,提升效率。新生代使用复制算法处理短命对象,频繁进行MinorGC;老年代使用标记-清除或标记-整理算法,较少触发MajorGC。通过分代设计,避免全堆扫描,提高回收效率。G1回收器进一步优化,将堆划为Region,实现可预测停顿和空间整合,适用于大内存、低延迟场景。JVM通过可达性分析判断垃圾,以GCRoots为起点标记存活对象,解决循环引用问题。优化手段包括选择合适回收器、调整堆大小与代比例、减少对象创建、避免内存泄漏
- Java面试题 . Java 1023 2025-11-18 08:47:37
-
- java 中线程池都有哪些状态?
- 线程池有五种状态:RUNNING、SHUTDOWN、STOP、TIDYING、TERMINATED。RUNNING为初始状态,可接收任务;调用shutdown()后进入SHUTDOWN,不再接收新任务但处理队列任务;调用shutdownNow()进入STOP,尝试中断执行中的任务并清空队列;所有任务终止且工作线程为0时进入TIDYING,触发terminated()方法;该方法执行完后进入TERMINATED,资源释放。状态流转不可逆,路径为RUNNING→SHUTDOWN→TIDYING→TE
- Java面试题 . Java 438 2025-11-17 10:16:02
-
- mybatis 分页插件的实现原理是什么?
- MyBatis分页插件通过拦截StatementHandler的prepare方法,在SQL执行前动态改写SQL实现分页。首先拦截SQL获取原始语句,根据数据库类型判断生成对应分页语法(如MySQL用LIMIT,Oracle用ROWNUM嵌套查询),并构造COUNT(*)查询获取总记录数,最终将分页数据与总数封装返回。该过程需处理SQL解析、参数映射、多数据库兼容等问题,核心在于利用MyBatis拦截器机制实现SQL透明改写。
- Java面试题 . Java 708 2025-11-17 06:17:26
-
- rabbitmq 的消息是怎么发送的?
- RabbitMQ消息发送的核心组件包括生产者、连接、信道、交换机、队列和绑定。生产者通过连接建立信道,将消息发布到交换机,交换机根据类型和路由键将消息路由至队列,消费者从队列中获取消息。交换机是消息路由的“指挥官”,主要有四种类型:DirectExchange(直连交换机)精确匹配路由键与绑定键,适用于点对点通信;FanoutExchange(扇形交换机)广播消息到所有绑定队列,适合通知类场景;TopicExchange(主题交换机)支持通配符模式匹配,适用于复杂路由需求;HeadersExch
- Java面试题 . Java 890 2025-11-17 02:49:15
-
- throw 和 throws 的区别?
- throw用于抛出异常,throws用于声明异常;throw在方法内抛出异常对象,throws在方法签名中声明可能抛出的异常类型,二者结合try-catch可实现完整的异常处理机制。
- Java面试题 . Java 307 2025-11-16 15:53:02
-
- 如何获取当前数据库版本?
- 答案:获取数据库版本需使用特定命令或函数,如MySQL用SELECTVERSION(),PostgreSQL用SELECTVERSION(),SQLServer用SELECT@@VERSION,Oracle查V$VERSION视图,SQLite用SELECTsqlite_version(),MongoDB用db.version(),Redis通过INFOserver查redis_version字段。不同数据库依赖不同语法,但均通过系统内置机制获取版本信息。
- Java面试题 . Java 207 2025-11-16 10:06:06
-
- 说一下 jvm 有哪些垃圾回收器?
- JVM垃圾回收器包括Serial、ParNew、ParallelScavenge等新生代收集器,SerialOld、ParallelOld、CMS等老年代收集器,以及G1、ZGC、Shenandoah等整堆收集器,适用于不同场景;其中G1和ZGC因兼顾低延迟与高吞吐量,成为现代应用主流选择。
- Java面试题 . Java 747 2025-11-15 12:38:03
-
- java 中怎么防止死锁?
- 答案:破坏死锁的循环等待和持有并等待条件可有效防止死锁。1.按序获取锁避免循环等待;2.使用tryLock破坏持有并等待;3.减少锁嵌套;4.使用定时锁超时机制,提升并发安全性。
- Java面试题 . Java 511 2025-11-15 10:25:02
-
- java 中普通类和抽象类有哪些区别?
- 普通类可实例化,包含具体方法,用于直接使用;2.抽象类用abstract定义,不能实例化,含抽象方法需子类重写;3.抽象类作模板强制结构,普通类实现完整功能;4.抽象类必须被继承,且Java单继承限制下只能继承一个抽象类。
- Java面试题 . Java 486 2025-11-15 09:55:59
-
- 集群中有 3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗?
- 3节点Zookeeper宕机1个仍可正常使用,因剩余2节点满足过半原则,可处理读写请求并完成Leader选举,但再故障1个将导致服务不可用,需及时恢复或扩容。
- Java面试题 . Java 1021 2025-11-14 08:32:03
PHP讨论组
组员:3305人话题:1500
PHP一种被广泛应用的开放源代码的多用途脚本语言,和其他技术相比,php本身开源免费; 可以将程序嵌入于HTML中去执行, 执行效率比完全生成htmL标记的CGI要高许多,它运行在服务器端,消耗的系统资源相当少,具有跨平台强、效率高的特性,而且php支持几乎所有流行的数据库以及操作系统,最重要的是

