-
- java 中如何决定使用 HashMap 还是 TreeMap?
- 需要有序遍历和范围查询选TreeMap,追求高性能和灵活性选HashMap;TreeMap基于红黑树实现,键需实现Comparable或传入Comparator,操作复杂度O(logn);HashMap基于哈希表,键需正确实现hashCode和equals,操作复杂度接近O(1),但不保证顺序。
- Java面试题 . Java 883 2025-09-27 08:11:01
-
- MySql数据库的三范式是什么?
- 第一范式要求字段原子性,第二范式消除部分依赖,第三范式消除传递依赖。1NF确保每列不可分且行可区分;2NF要求非主键字段完全依赖整个主键,避免部分依赖;3NF要求非主键字段直接依赖主键,避免通过其他非主键字段间接依赖。遵循三范式可减少冗余、提升一致性,但实际中可能为性能适度反范式化。
- Java面试题 . Java 831 2025-09-26 08:13:02
-
- rabbitmq 节点的类型有哪些?
- RabbitMQ节点类型的选择取决于速度与可靠性的权衡:内存节点速度快但可靠性低,适用于可容忍消息丢失的高性能场景;磁盘节点将消息持久化到磁盘,保障可靠性但性能较慢;镜像队列节点通过在多个节点间复制队列实现高可用,主节点负责消息收发,故障时自动切换从节点,提升容灾能力,但带来一定性能开销;配置节点类型需在rabbitmq.config中设置cluster_nodes,指定各节点为disc或ram类型,修改后重启服务生效,操作前应备份配置并评估影响。
- Java面试题 . Java 245 2025-09-25 08:06:01
-
- 什么情况会导致 kafka 运行变慢?
- Kafka性能瓶颈最常见的原因是磁盘I/O和网络带宽不足。磁盘I/O方面,Kafka依赖高吞吐的顺序写入,使用HDD或配置不当的RAID易成为瓶颈,SSD虽有改善但仍受队列深度和其他I/O进程影响;网络带宽方面,生产者、消费者与Broker间大量数据传输依赖稳定高速的网络,带宽不足或延迟、丢包会直接导致吞吐下降和超时,两者常被忽视却直接影响整体性能。
- Java面试题 . Java 858 2025-09-25 08:03:02
-
- 说一下jsp的4种作用域?
- JSP四种作用域区别在于数据存活范围:page仅限当前页面,request在一次请求内有效,session在用户会话期间有效,application在整个应用生命周期内全局共享。
- Java面试题 . Java 869 2025-09-24 08:56:01
-
- 内存溢出、内存泄露、GC的基本概念
- 内存溢出是程序申请内存失败时的崩溃信号,内存泄露是无用对象因被引用无法回收导致的内存浪费,GC通过标记-清除机制自动回收不可达对象,但无法解决逻辑上的内存泄露;二者需结合工具分析和代码优化来预防与排查。
- Java面试题 . Java 802 2025-09-24 08:54:01
-
- java 中怎么确保一个集合不能被修改?
- 答案是使用Collections.unmodifiableXxx、Java9的List.of()或Guava的Immutable集合来创建不可变集合,其中List.of()更简洁安全,Collections需注意原始集合暴露问题,Guava提供更丰富功能。
- Java面试题 . Java 557 2025-09-23 08:17:01
-
- spring 自动装配 bean 有哪些方式?
- Spring自动装配主要有三种方式:基于XML配置、基于注解和基于Java配置。基于XML的方式通过autowire属性实现按名称(byName)、按类型(byType)或构造器(constructor)装配,适用于早期项目或第三方类库配置;基于注解的方式(如@Autowired、@Resource、@Qualifier)将配置嵌入代码,简洁高效,是现代Spring开发的主流选择;基于Java配置则通过@Configuration和@Bean注解以编程方式定义Bean及其依赖,类型安全且灵活,适
- Java面试题 . Java 149 2025-09-23 08:10:02
-
- spring 中的bean 是线程安全的吗?
- SpringBean的线程安全性取决于其作用域和状态,singleton作用域下的无状态Bean是线程安全的,而有状态Bean需通过ThreadLocal、同步机制、原子类或并发集合等手段保障线程安全。
- Java面试题 . Java 280 2025-09-22 08:01:01
-
- 说一下 jvm 运行时数据区?
- JVM运行时数据区分为线程私有和共享区域:程序计数器记录字节码地址,是唯一不发生OOM的区域;虚拟机栈存储方法执行信息,可能抛出StackOverflowError或OutOfMemoryError;本地方法栈服务native方法;Java堆为对象实例分配空间,是GC主要区域,内存不足抛出OOM;方法区存储类信息、常量等,JDK8后元空间替代永久代;运行时常量池属方法区,支持动态添加常量;直接内存通过NIO使用,不受堆限制但受本地内存限制。
- Java面试题 . Java 862 2025-09-22 08:00:04
-
- 动态代理是什么?有哪些应用?
- 动态代理是在运行时动态生成代理对象,通过拦截方法调用实现功能增强,无需修改原代码。它基于JDK(要求接口)或CGLIB(通过继承,可代理类)实现,核心是InvocationHandler或MethodInterceptor。相比静态代理需手动编写大量重复代理类,动态代理更灵活高效。典型应用包括SpringAOP实现日志、事务、权限控制;RPC框架中生成本地代理实现远程调用透明化;ORM中实现延迟加载;以及单元测试中Mock外部依赖。它使代码更纯净、可维护,是实现横切关注点的核心技术。
- Java面试题 . Java 832 2025-09-21 08:02:03
-
- 数据库的三范式是什么?
- 三范式是数据库设计原则,1NF要求字段原子性,2NF消除非主属性对主键的部分依赖,3NF消除非主属性间的传递依赖,通过逐步规范数据结构减少冗余与异常,提升数据一致性与维护性,但需权衡查询性能,避免过度范式化。
- Java面试题 . Java 622 2025-09-21 08:00:01
-
- mybatis 中 #{}和 ${}的区别是什么?
- {}采用预编译处理,防止SQL注入,自动转义并加引号;2.${}为字符串直接替换,存在安全风险,需手动校验;3.优先使用#{},仅在动态表名等场景慎用${}。
- Java面试题 . Java 607 2025-09-20 08:23:01
-
- mysql为什么要分区?
- 答案:MySQL分区通过将大表拆分为更小的物理部分来提升查询性能、简化维护和管理数据生命周期,逻辑上仍为一个表。它支持RANGE、LIST、HASH和KEY等分区类型,适用于数据量大、需定期清理或归档的场景。合理选择分区键和数量可优化性能,但需避免跨分区事务以保障一致性,并注意硬件资源与管理成本的平衡。
- Java面试题 . Java 712 2025-09-20 08:15:02
-
- 集群中有3 台服务器,其中一个节点宕机,这个时候 zookeeper 还可以使用吗?
- 是的,在3台服务器的ZooKeeper集群中,即使一个节点宕机,集群仍可正常工作。因为ZooKeeper采用法定人数机制,只要超过半数节点(至少2台)在线,即可维持服务可用性。此时,若Leader节点宕机,剩余Follower节点会自动发起选举产生新Leader,并通过数据同步保持一致性。客户端会自动重连至可用节点,确保业务连续性。但若再有节点故障,导致存活节点不足半数,则集群将不可用,因此需通过监控、备份、多机房部署等手段保障高可用。
- Java面试题 . Java 311 2025-09-19 08:12:01

PHP讨论组
组员:3305人话题:1500
PHP一种被广泛应用的开放源代码的多用途脚本语言,和其他技术相比,php本身开源免费; 可以将程序嵌入于HTML中去执行, 执行效率比完全生成htmL标记的CGI要高许多,它运行在服务器端,消耗的系统资源相当少,具有跨平台强、效率高的特性,而且php支持几乎所有流行的数据库以及操作系统,最重要的是