-
- 说一下 hibernate 的缓存机制?
- Hibernate缓存机制通过一级缓存(Session级)和二级缓存(SessionFactory级)减少数据库访问,提升性能。一级缓存默认开启,同一Session内重复查询不触发数据库访问;二级缓存需配置,如使用Ehcache并设置缓存策略(如READ_WRITE),实现跨Session共享;查询缓存则缓存查询结果ID列表,需结合二级缓存生效,三者均需注意数据一致性与失效策略。
- Java面试题 . Java 317 2025-09-12 08:04:01
-
- redis 有哪些功能?
- Redis最常用的数据结构包括字符串、哈希、列表、集合和有序集合。字符串适合缓存和计数器;哈希用于存储对象,如用户信息;列表基于双向链表,适用于消息队列;集合支持去重和交并差运算,适用于关系分析;有序集合通过分数排序,广泛用于排行榜和范围查询。这些结构结合Redis的高性能内存操作,使其在缓存、会话管理、实时统计等场景中表现卓越。
- Java面试题 . Java 801 2025-09-12 08:01:01
-
- 线程池都有哪些状态?
- 线程池状态包括RUNNING、SHUTDOWN、STOP、TIDYING和TERMINATED,决定任务处理方式;通过isShutdown()、isTerminating()、isTerminated()等方法可监控状态;状态转换由ThreadPoolExecutor的ctl变量控制,高3位表示状态,低29位表示线程数,通过原子操作保证线程安全。
- Java面试题 . Java 380 2025-09-11 09:53:01
-
- zookeeper 是什么
- Zookeeper是分布式系统的协调服务,提供配置管理、分布式锁、Leader选举等功能,通过ZNode、Watcher、Session及ZAB协议实现一致性与高可用,适用于Java生态,但性能较低;相比etcd(基于Raft、Go语言、键值模型、高性能),Zookeeper更适合对性能要求不高的Java场景。
- Java面试题 . Java 539 2025-09-11 09:27:01
-
- 常用的jvm 调优的参数都有哪些?
- JVM调优需先明确性能瓶颈,再结合应用场景选择合适参数。-XX:+UseG1GC适用于大堆内存与低停顿需求;-Xms与-Xmx应设为相同值以避免动态调整开销;堆大小建议设为物理内存的50%~80%,并根据GC日志调整;Metaspace替代PermGen,使用本地内存存储类元数据,需通过-XX:MetaspaceSize和-XX:MaxMetaspaceSize合理设置大小以防OOM;GC日志通过-XX:+PrintGCDetails、-Xloggc等参数开启,结合GCEasy等工具分析GC频率
- Java面试题 . Java 601 2025-09-11 08:53:01
-
- @RequestMapping 的作用是什么?
- @RequestMapping的主要作用是将HTTP请求映射到Controller的处理方法,支持URL路径、HTTP方法、参数、请求头等匹配规则,可应用于类或方法级别,并支持路径变量、请求参数、请求体处理及文件上传等功能。
- Java面试题 . Java 826 2025-09-11 08:34:01
-
- 说一下类加载的执行过程?
- 类加载过程分为加载、验证、准备、解析和初始化五个阶段。加载阶段通过类的全限定名获取二进制字节流,并在内存中生成Class对象;验证阶段确保字节码安全合规;准备阶段为静态变量分配内存并设零值(finalstatic常量除外);解析阶段将符号引用转为直接引用;初始化阶段执行()方法,真正运行Java代码。该机制实现按需加载、动态扩展、安全验证和内存隔离,支撑Java“一次编译,到处运行”的特性。双亲委派模型确保类加载的优先级和安全性,避免核心类被篡改。常见问题包括ClassNotFoundExcep
- Java面试题 . Java 914 2025-09-10 08:15:01
-
- 说一下 ACID 是什么?
- ACID是数据库事务的四大核心特性,原子性确保事务全有或全无,一致性保证数据符合业务规则,隔离性防止并发干扰,持久性确保提交后数据不丢失。它们共同构建了数据可靠性的基石,通过日志、锁、MVCC等机制实现。在高并发分布式场景下,虽有系统为性能牺牲部分ACID特性以换取扩展性,但在强一致性要求的场景中,ACID仍是不可替代的选择。
- Java面试题 . Java 727 2025-09-10 08:00:01
-
- 在 hibernate 中 getCurrentSession 和 openSession 的区别是什么?
- getCurrentSession用于与事务绑定的场景,由框架管理会话生命周期,适合集成Spring等环境;openSession需手动管理会话,适用于需要细粒度控制的场景。选择取决于应用架构:若使用Spring并追求简化管理,应选getCurrentSession;若需多连接或批量处理,则选openSession,并注意资源释放与事务控制。
- Java面试题 . Java 952 2025-09-09 08:05:02
-
-
- 什么是 spring boot?
- SpringBoot通过自动配置、起步依赖和内嵌服务器简化Spring应用开发。它根据引入的依赖自动配置Bean,如引入spring-boot-starter-web时自动配置Web组件;起步依赖将常用依赖打包,避免版本冲突;内置Tomcat等服务器,支持java-jar直接运行。开发者可使用SpringInitializr快速生成项目,编写REST接口并运行。尽管存在自动配置难排查、依赖冗余等问题,但其优势显著。
- Java面试题 . Java 380 2025-09-08 08:18:01
-
- spring 事务实现方式有哪些?
- Spring事务主要分为编程式和声明式两大类,前者通过PlatformTransactionManager或TransactionTemplate在代码中手动控制事务,后者通过@Transactional注解结合AOP实现事务管理,具有低侵入性和高可维护性,是现代Spring应用的首选方式。
- Java面试题 . Java 373 2025-09-08 08:00:06
-
- 什么是缓存穿透?怎么解决?
- 缓存穿透指查询不存在的数据导致请求直达存储层,解决方案包括缓存空对象和布隆过滤器:缓存空对象适用于空数据较少场景,布隆过滤器适合空数据较多场景,可结合使用。
- Java面试题 . Java 369 2025-09-07 08:17:01
-
- 详细介绍一下 CMS 垃圾回收器?
- CMS垃圾回收器旨在减少停顿时间,通过并发标记清除实现低延迟,但会占用更多CPU、产生内存碎片,并可能因浮动垃圾或内存泄漏导致OOM,适用于对响应时间敏感的应用。
- Java面试题 . Java 934 2025-09-07 08:09:01
-
- 为什么要用 spring boot?
- SpringBoot的核心优势在于其“开箱即用”和“约定优于配置”,通过自动配置、StarterPOMs、嵌入式服务器等机制大幅提升开发效率,简化项目搭建与部署,尤其适合微服务架构,支持独立运行的FatJAR、无缝集成SpringCloud与Actuator监控,结合DevTools热部署和外部化配置等特性,显著降低开发与运维成本,提升生产力。
- Java面试题 . Java 641 2025-09-06 08:04:02
PHP讨论组
组员:3305人话题:1500
PHP一种被广泛应用的开放源代码的多用途脚本语言,和其他技术相比,php本身开源免费; 可以将程序嵌入于HTML中去执行, 执行效率比完全生成htmL标记的CGI要高许多,它运行在服务器端,消耗的系统资源相当少,具有跨平台强、效率高的特性,而且php支持几乎所有流行的数据库以及操作系统,最重要的是

