-
- get()和 load()的区别?
- get()立即查询数据库,查不到返回null,适合需即时判断对象是否存在的场景;load()采用延迟加载,返回代理对象,真正使用时才查询,若数据不存在则抛异常,适用于确信对象存在或仅需引用的关联操作,性能更高但需注意会话生命周期与异常处理。
- Java面试题 . Java 424 2025-10-27 08:22:02
-
- 什么是双亲委派模型?
- 双亲委派模型确保类加载的统一与安全:类加载器先委派父类加载,直至启动类加载器,仅当上级无法加载时才自行加载,防止核心类被篡改并避免重复加载;其通过loadClass流程实现,但SPI和Tomcat等场景会通过线程上下文类加载器或优先自身加载等方式打破该模型以满足特殊需求。
- Java面试题 . Java 750 2025-10-26 10:12:02
-
- redis 持久化有几种方式?
- RDB和AOF持久化方式各有优劣,选择需根据场景权衡。RDB以快照形式实现,恢复速度快、适合冷备,但可能丢失数据;AOF记录每次写操作,数据安全性高,但恢复慢、文件大。RDB通过BGSAVE非阻塞生成快照,配置save规则触发自动持久化;AOF通过appendfsync控制刷盘策略,推荐everysec以平衡性能与安全。AOF可重写压缩文件体积。两者可同时开启,优先用AOF恢复以保障数据完整。最佳实践:高安全性要求用AOF或双开,定期重写与备份;高恢复速度需求用RDB。最终选择应基于数据安全与性
- Java面试题 . Java 606 2025-10-26 10:07:02
-
- 说一下jvm 调优的工具?
- 答案:JVM调优需结合监控、分析与诊断工具组合使用。首先利用jstat、jps等JDK命令行工具进行实时GC和内存监控;当出现性能问题时,通过jstack抓取线程堆栈分析阻塞或高CPU原因,用jmap生成堆快照并结合MAT或VisualVM分析内存泄漏;GC日志配合GCViewer解析可判断FullGC频繁或老年代增长异常等问题;对于复杂场景,选用JProfiler、YourKit等专业工具深入剖析CPU与内存;生产环境可集成APM系统实现长期监控。整个过程应从宏观指标入手,逐步深入到线程与内存
- Java面试题 . Java 325 2025-10-25 10:20:01
-
- java 中sleep() 和 wait() 有什么区别?
- sleep()属于Thread类,不释放锁;wait()属于Object类,需在同步块中调用并释放锁,二者调用方式与锁处理机制不同。
- Java面试题 . Java 601 2025-10-25 08:59:02
-
- 说一下jvm 有哪些垃圾回收器?
- 根据应用场景选择合适的JVM垃圾回收器可优化性能,Serial适用于单核小应用,Parallel提升吞吐量,CMS降低延迟但有碎片问题,G1平衡延迟与吞吐量并减少碎片,ZGC和Shenandoah实现亚毫秒级停顿,适合大堆低延迟场景;需结合应用类型、堆大小、CPU核心数等选择,并通过监控工具调优,避免FullGC频繁触发和内存泄漏。
- Java面试题 . Java 929 2025-10-24 09:34:02
-
-
- 简单工厂和抽象工厂有什么区别?
- 简单工厂用于集中创建单一类型产品,通过参数决定实例类型,适合产品种类固定的场景;抽象工厂则定义创建一系列相关产品族的接口,由不同具体工厂实现不同风格的产品组合,适合需要整体替换产品系列的复杂系统。前者解耦了客户端与具体产品,但违背开闭原则;后者支持多产品族切换,扩展性强但结构复杂。选择应基于产品种类变化频率和系统规模:简单工厂适用于轻量级、稳定场景,抽象工厂适用于高扩展性、多平台或多主题的大型系统。引入工厂模式可能带来过度设计、修改成本高和调试复杂等问题,需权衡利弊。
- Java面试题 . Java 706 2025-10-23 08:09:01
-
- mybatis 是否支持延迟加载?延迟加载的原理是什么?
- MyBatis支持延迟加载,通过配置lazyLoadingEnabled=true和fetchType="lazy"实现按需加载,利用动态代理在访问关联属性时触发SQL查询,提升性能但需注意N+1查询、SqlSession生命周期和序列化问题。
- Java面试题 . Java 738 2025-10-22 08:12:01
-
- 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
- 新生代回收器采用复制算法,因对象存活率低,如Serial、ParNew、ParallelScavenge;老生代用标记-清除或标记-整理,因对象存活率高,如SerialOld、ParallelOld、CMS;G1打破分代界限,实现可预测停顿。
- Java面试题 . Java 270 2025-10-22 08:10:01
-
- redis 支持的数据类型有哪些?
- Redis字符串常用于缓存、计数器、分布式锁和存储JSON数据,因其简单高效,适合存储文本、数字或二进制数据,提升系统性能。
- Java面试题 . Java 602 2025-10-21 09:47:01
-
- 什么是 spring cloud?
- SpringCloud是一套基于SpringBoot的微服务解决方案,包含服务发现、配置管理、API网关、容错与负载均衡等组件,通过Eureka、Config、Gateway、Resilience4j等实现服务注册、集中配置、路由控制与系统容错,各组件协同工作,简化分布式系统开发,需注意组件选型与版本兼容性。
- Java面试题 . Java 648 2025-10-21 08:36:01
-
- ThreadLocal 是什么?有哪些使用场景?
- ThreadLocal通过为每个线程提供独立的变量副本实现线程隔离,其内部通过ThreadLocalMap以线程为键存储数据,确保线程间不共享变量,避免竞争。每个线程通过自身的threadLocals字段操作数据,实现数据隔离。典型应用场景包括数据库连接管理、Session管理、事务上下文维护、请求上下文信息存储及解决SimpleDateFormat等非线程安全类的并发问题。为避免内存泄漏,因ThreadLocalMap的键为弱引用,值在无强引用后仍可能残留,需在使用后显式调用remove()方
- Java面试题 . Java 149 2025-10-20 09:18:02
-
- 什么是 ORM 框架?
- ORM框架通过对象关系映射将数据库表转为编程语言中的类,行转为对象,字段转为属性,使开发者能用面向对象的方式操作数据库,如user.save()替代SQL语句,提升开发效率、降低SQL注入风险,并缓解对象与关系模型间的阻抗失配问题。
- Java面试题 . Java 979 2025-10-20 08:33:01
-
- 说一下 mysql 常用的引擎?
- InnoDB是MySQL最常用引擎,因支持事务、行级锁、崩溃恢复和外键,适用于高并发、数据一致性要求高的场景;MyISAM仅适用于读密集、低并发、无事务需求的简单应用,整体趋势以InnoDB为主。
- Java面试题 . Java 921 2025-10-19 08:56:01
PHP讨论组
组员:3305人话题:1500
PHP一种被广泛应用的开放源代码的多用途脚本语言,和其他技术相比,php本身开源免费; 可以将程序嵌入于HTML中去执行, 执行效率比完全生成htmL标记的CGI要高许多,它运行在服务器端,消耗的系统资源相当少,具有跨平台强、效率高的特性,而且php支持几乎所有流行的数据库以及操作系统,最重要的是


