-
- 什么是 spring boot?
- SpringBoot通过自动配置、内嵌服务器、起步依赖和生产就绪特性实现开箱即用,1.根据依赖智能配置组件,2.内置Tomcat等服务器直接运行jar,3.提供starter简化依赖管理,4.通过Actuator支持监控与运维,提升开发效率。
- Java面试题 . Java 348 2025-10-29 08:24:02
-
- Java中如何实现跨域?
- 解决跨域问题的核心是服务器支持CORS,常见Java实现方式包括:1.使用Filter添加CORS响应头,适用于所有JavaWeb项目;2.SpringBoot中用@CrossOrigin注解在Controller或方法上启用跨域;3.配置WebMvcConfigurer的addCorsMappings全局管理跨域规则,推荐生产环境使用;4.通过Nginx反向代理使前后端同源,规避跨域。选择方案需结合技术栈与部署结构,注意处理OPTIONS预检请求和凭证传递。
- Java面试题 . Java 450 2025-10-28 08:49:01
-
- java 中并行和并发有什么区别?
- 并发是任务交替执行,关注资源共享与协调,通过线程实现;并行是任务同时执行,利用多核提升效率,适用于计算密集型场景。
- Java面试题 . Java 744 2025-10-28 08:17:02
-
- redis 是什么?都有哪些使用场景
- Redis典型应用场景包括缓存、会话管理、消息队列、计数器、排行榜和地理位置服务;其中缓存通过存储热点数据减轻数据库压力,会话管理利用Redis集中存储实现集群环境下的会话共享,消息队列可通过列表或发布/订阅模式实现简单异步通信,计数器依赖原子操作确保准确性,排行榜使用有序集合按分数排序,地理位置服务则借助Geospatial功能支持LBS应用。
- Java面试题 . Java 808 2025-10-27 08:32:02
-
- get()和 load()的区别?
- get()立即查询数据库,查不到返回null,适合需即时判断对象是否存在的场景;load()采用延迟加载,返回代理对象,真正使用时才查询,若数据不存在则抛异常,适用于确信对象存在或仅需引用的关联操作,性能更高但需注意会话生命周期与异常处理。
- Java面试题 . Java 441 2025-10-27 08:22:02
-
- 什么是双亲委派模型?
- 双亲委派模型确保类加载的统一与安全:类加载器先委派父类加载,直至启动类加载器,仅当上级无法加载时才自行加载,防止核心类被篡改并避免重复加载;其通过loadClass流程实现,但SPI和Tomcat等场景会通过线程上下文类加载器或优先自身加载等方式打破该模型以满足特殊需求。
- Java面试题 . Java 771 2025-10-26 10:12:02
-
- redis 持久化有几种方式?
- RDB和AOF持久化方式各有优劣,选择需根据场景权衡。RDB以快照形式实现,恢复速度快、适合冷备,但可能丢失数据;AOF记录每次写操作,数据安全性高,但恢复慢、文件大。RDB通过BGSAVE非阻塞生成快照,配置save规则触发自动持久化;AOF通过appendfsync控制刷盘策略,推荐everysec以平衡性能与安全。AOF可重写压缩文件体积。两者可同时开启,优先用AOF恢复以保障数据完整。最佳实践:高安全性要求用AOF或双开,定期重写与备份;高恢复速度需求用RDB。最终选择应基于数据安全与性
- Java面试题 . Java 630 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 345 2025-10-25 10:20:01
-
- java 中sleep() 和 wait() 有什么区别?
- sleep()属于Thread类,不释放锁;wait()属于Object类,需在同步块中调用并释放锁,二者调用方式与锁处理机制不同。
- Java面试题 . Java 625 2025-10-25 08:59:02
-
- 说一下jvm 有哪些垃圾回收器?
- 根据应用场景选择合适的JVM垃圾回收器可优化性能,Serial适用于单核小应用,Parallel提升吞吐量,CMS降低延迟但有碎片问题,G1平衡延迟与吞吐量并减少碎片,ZGC和Shenandoah实现亚毫秒级停顿,适合大堆低延迟场景;需结合应用类型、堆大小、CPU核心数等选择,并通过监控工具调优,避免FullGC频繁触发和内存泄漏。
- Java面试题 . Java 953 2025-10-24 09:34:02
-
-
- 简单工厂和抽象工厂有什么区别?
- 简单工厂用于集中创建单一类型产品,通过参数决定实例类型,适合产品种类固定的场景;抽象工厂则定义创建一系列相关产品族的接口,由不同具体工厂实现不同风格的产品组合,适合需要整体替换产品系列的复杂系统。前者解耦了客户端与具体产品,但违背开闭原则;后者支持多产品族切换,扩展性强但结构复杂。选择应基于产品种类变化频率和系统规模:简单工厂适用于轻量级、稳定场景,抽象工厂适用于高扩展性、多平台或多主题的大型系统。引入工厂模式可能带来过度设计、修改成本高和调试复杂等问题,需权衡利弊。
- Java面试题 . Java 731 2025-10-23 08:09:01
-
- mybatis 是否支持延迟加载?延迟加载的原理是什么?
- MyBatis支持延迟加载,通过配置lazyLoadingEnabled=true和fetchType="lazy"实现按需加载,利用动态代理在访问关联属性时触发SQL查询,提升性能但需注意N+1查询、SqlSession生命周期和序列化问题。
- Java面试题 . Java 758 2025-10-22 08:12:01
-
- 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
- 新生代回收器采用复制算法,因对象存活率低,如Serial、ParNew、ParallelScavenge;老生代用标记-清除或标记-整理,因对象存活率高,如SerialOld、ParallelOld、CMS;G1打破分代界限,实现可预测停顿。
- Java面试题 . Java 293 2025-10-22 08:10:01
-
- redis 支持的数据类型有哪些?
- Redis字符串常用于缓存、计数器、分布式锁和存储JSON数据,因其简单高效,适合存储文本、数字或二进制数据,提升系统性能。
- Java面试题 . Java 636 2025-10-21 09:47:01
PHP讨论组
组员:3305人话题:1500
PHP一种被广泛应用的开放源代码的多用途脚本语言,和其他技术相比,php本身开源免费; 可以将程序嵌入于HTML中去执行, 执行效率比完全生成htmL标记的CGI要高许多,它运行在服务器端,消耗的系统资源相当少,具有跨平台强、效率高的特性,而且php支持几乎所有流行的数据库以及操作系统,最重要的是

