金融投资网站 php源码建筑设计软件公司

张小明 2025/12/31 6:19:24
金融投资网站 php源码,建筑设计软件公司,信丰做网站,网站前端切页面时间为大家准备了 2025年全新热门高频 Java 面试题。适合准备求职、或者有跳槽想法的初/中/高级程序员。也合适想要对自己技术栈查缺补漏、不断完善成长的人。我们将面试题分成 Java基础并发、MySQL、Redis、JVM……等多个分类。下面一起看看这些题目#xff1a;Java 基础并发、MySQL、Redis、JVM……等多个分类。下面一起看看这些题目Java 基础并发33 题说说 Java 中 HashMap 的原理HashMap 是基于哈希表的数据结构用于存储键值对key-value。其核心是将键的哈希值映射到数组索引位置通过数组 链表在 Java 8 及之后是数组 链表 红黑树来处理哈希冲突。HashMap 使用键的 hashCode() 方法计算哈希值并通过 indexFor 方法JDK 1.7 及之后版本移除了这个方法直接使用 (n - 1) hash确定元素在数组中的存储位置。哈希值是经过一定扰动处理的防止哈希值分布不均匀从而减少冲突。HashMap 的默认初始容量为 16负载因子为 0.75。也就是说当存储的元素数量超过 16 × 0.75 12 个时HashMap 会触发扩容操作容量x2并重新分配元素位置。这种扩容是比较耗时的操作频繁扩容会影响性能2. Java 中 ConcurrentHashMap 1.7 和 1.8 之间有哪些区别JDK 1.7 ConcurrentHashMap 采用的是分段锁即每个 Segment 是独立的可以并发访问不同的 Segment默认是 16 个 Segment所以最多有 16 个线程可以并发执行。而 JDK 1.8 移除了 Segment锁的粒度变得更加细化锁只在链表或红黑树的节点级别上进行。通过 CAS 进行插入操作只有在更新链表或红黑树时才使用 synchronized并且只锁住链表或树的头节点进一步减少了锁的竞争并发度大大增加。并且 JDK 1.7 ConcurrentHashMap 只使用了数组 链表的结构而 JDK 1.8 和 HashMap一样引入了红黑树。除此之外还有扩容的区别以及 size 方法的计算也不一样。3. 为什么 JDK 1.8 对 HashMap 进行了红黑树的改动在 JDK 1.8 之前HashMap 使用链表来解决哈希冲突。当哈希冲突较多时链表中的元素增多查找、插入和删除的时间复杂度从 O(1) 退化为 O(n)。因此在 JDK 1.8 引入红黑树将链表长度超过一定阈值默认 8时的链表转换为红黑树避免性能急剧下降。当链表长度降到 6 以下时红黑树会重新退化为链表保持简单高效。红黑树是一种平衡二叉搜索树插入、删除、查找操作的时间复杂度为 O(log n)在元素多的情况下远优于链表的 O(n)。4. JDK 1.8 对 HashMap 除了红黑树还进行了哪些改动改进了哈希函数的计算JDK 1.8 中优化了哈希函数使得哈希值的分布更加均匀减少了哈希冲突的发生。通过在生成哈希值时使用“扰动函数”确保哈希值的高低位都能参与到桶的选择中。扩容机制优化JDK 1.8 改进了扩容时的元素迁移机制。在扩容过程中不再对每个元素重新计算哈希值而是根据原数组长度的高位来判断元素是留在原位置还是迁移到新数组中的新位置。这一改动减少了不必要的计算提升了扩容效率。头插法变为尾插法头插法的好处就是插入的时候不需要遍历链表直接替换成头结点但是缺点是扩容的时候会逆序而逆序在多线程操作下可能会出现环产生死循环于是改为尾插法。篇幅限制下面就只能给大家展示小册部分内容了。整理了一份核心面试笔记包括了Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题需要全套面试笔记及答案可以在文末获取5. Java 中有哪些集合类请简单介绍Java 中的集合类主要分为两大类Collection 接口和 Map 接口。前者是存储对象的集合类后者存储的是键值对key-value。Collection 接口下又分为 List、Set 和 Queue 接口。每个接口有其具体实现类。以下是主要的集合类List 接口ArrayList基于动态数组查询速度快插入、删除慢。LinkedList基于双向链表插入、删除快查询速度慢。Vector线程安全的动态数组类似于 ArrayList但开销较大。Set 接口HashSet基于哈希表元素无序不允许重复。LinkedHashSet基于链表和哈希表维护插入顺序不允许重复。TreeSet基于红黑树元素有序不允许重复。所以网上有些说 Set 是无序集合非常不准确因为需要看具体的实现类。Queue 接口PriorityQueue基于优先级堆元素按照自然顺序或指定比较器排序。LinkedList可以作为队列使用支持 FIFO先进先出操作。Map 接口存储的是键值对也就是给对象value设置了一个 key这样通过 key 可以找到那个 value。HashMap基于哈希表键值对无序不允许键重复。LinkedHashMap基于链表和哈希表维护插入顺序不允许键重复。TreeMap基于红黑树键值对有序不允许键重复。Hashtable线程安全的哈希表不允许键或值为 null。ConcurrentHashMap线程安全的哈希表适合高并发环境不允许键或值为 null。6. 为什么 Java 8 移除了永久代PermGen并引入了元空间Metaspace7. 为什么 Java 中 HashMap 的默认负载因子是 0.758. Java 中 HashMap 的扩容机制是怎样的9. 为什么 HashMap 在 Java 中扩容时采用 2 的 n 次方倍10. 数组和链表在 Java 中的区别是什么11. Java 线程池核心线程数在运行过程中能修改吗如何修改12. Java 中如何创建多线程13. Java 中的 final 关键字是否能保证变量的可见性14. 什么是 Java 中的原子性、可见性和有序性15. 什么是 Java 的 CASCompare-And-Swap操作16. 为什么 Java 中的 ThreadLocal 对 key 的引用为弱引用17. 编译执行与解释执行的区别是什么JVM 使用哪种方式18. Java 中什么情况会导致死锁如何避免19. 你了解 Java 线程池的原理吗20. Java 线程池有哪些拒绝策略21. 如何合理地设置 Java 线程池的线程数22. 你使用过哪些 Java 并发工具类23. Synchronized 和 ReentrantLock 有什么区别24. Java 的 synchronized 是怎么实现的25. 如何优化 Java 中的锁的使用26. Java 中常见的垃圾收集器有哪些27. Java 中有哪些垃圾回收算法28. 什么是 Java 内存模型JMM29. 线程和进程有什么区别30. Java 中 volatile 关键字的作用是什么31. 什么是 Java 中的 ABA 问题32. 线程的生命周期在 Java 中是如何定义的33. 说说 AQS 吧JVM 相关7 题JVM 由哪些部分组成JVM 垃圾回收调优的主要目标是什么如何对 Java 的垃圾回收进行调优常用的 JVM 配置参数有哪些JVM 的内存区域是如何划分的JVM 有哪几种情况会产生 OOM内存溢出怎么分析 JVM 当前的内存占用情况OOM 后怎么分析MySQL32 题MySQL 索引的最左前缀匹配原则是什么数据库的脏读、不可重复读和幻读分别是什么MySQL 的存储引擎有哪些它们之间有什么区别MySQL 的覆盖索引是什么MySQL 的索引类型有哪些MySQL 的索引下推是什么MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别MySQL 中的回表是什么MySQL 中使用索引一定有效吗如何排查索引效果MySQL 中的索引数量是否越多越好为什么请详细描述 MySQL 的 B 树中查询数据的全过程为什么 MySQL 选择使用 B 树作为索引结构MySQL 三层 B 树能存多少数据详细描述一条 SQL 语句在 MySQL 中的执行过程。MySQL 是如何实现事务的MySQL 事务的二阶段提交是什么MySQL 中长事务可能会导致哪些问题MySQL 中的 MVCC 是什么MySQL 中的事务隔离级别有哪些MySQL 默认的事务隔离级别是什么为什么选择这个级别MySQL 中有哪些锁类型MySQL 的乐观锁和悲观锁是什么MySQL 中如果发生死锁应该如何解决MySQL 中 count(*)、count(1) 和 count(字段名) 有什么区别MySQL 中如何进行 SQL 调优如何使用 MySQL 的 EXPLAIN 语句进行查询分析MySQL 中如何解决深度分页的问题什么是 MySQL 的主从同步机制它是如何实现的如何处理 MySQL 的主从同步延迟MySQL 中如果我 select * from 一个有 1000 万行的表内存会飙升么在 MySQL 中建索引时需要注意哪些事项在什么情况下不推荐为数据库建立索引消息队列16 题RabbitMQ 怎么实现延迟队列RabbitMQ 中消息什么时候会进入死信交换机RabbitMQ 中无法路由的消息会去到哪里Kafka 为什么要抛弃 ZookeeperKafka 中 Zookeeper 的作用说一下 Kafka 中关于事务消息的实现说一下 RocketMQ 中关于事务消息的实现RocketMQ 的事务消息有什么缺点你还了解过别的事务消息实现吗为什么需要消息队列说一下消息队列的模型有哪些如何处理重复消息如何保证消息的有序性如何处理消息堆积如何保证消息不丢失消息队列设计成推消息还是拉消息推拉模式的优缺点为什么 RocketMQ 不使用 Zookeeper 作为注册中心设计模式11 题谈谈你了解的最常见的几种设计模式说说他们的应用场景什么是策略模式一般用在什么场景什么是责任链模式一般用在什么场景什么是模板方法模式一般用在什么场景什么是观察者模式一般用在什么场景什么是代理模式一般用在什么场景请描述简单工厂模式的工作原理。工厂模式和抽象工厂模式有什么区别什么是设计模式请简述其作用。单例模式有哪几种实现如何保证线程安全Netty 采用了哪些设计模式Spring 框架19 题说说 Spring 启动过程你了解的 Spring 都用到哪些设计模式Spring 有哪几种事务传播行为?说说 Springboot 的启动流程SpringBoot 是如何实现自动配置的如何理解 Spring Boot 中的 starterSpring Boot 是如何通过 main 方法启动 web 项目的Spring Boot 的核心特性有哪些什么是 Spring Boot什么是 Spring IOCSpring AOP 默认用的是什么动态代理两者的区别什么是 AOP看过源码吗说下 Spring 由哪些重要的模块组成什么是循环依赖常问Spring 如何解决循环依赖为什么 Spring 循环依赖需要三级缓存二级不够吗说下 Spring Bean 的生命周期Spring MVC 具体的工作原理Spring 中的 DI 是什么Redis31 题Redis 集群的实现原理是什么Redis 集群会出现脑裂问题吗Redis 中如何实现分布式锁Redis 实现分布式锁时可能遇到的问题有哪些说说 Redisson 分布式锁的原理?如何使用 Redis 快速实现排行榜Redis 中如何保证缓存与数据库的数据一致性Redis 为什么这么快如何使用 Redis 快速实现布隆过滤器为什么 Redis 设计为单线程6.0 版本为何引入多线程你在项目中使用的 Redis 客户端是什么Redis 中常见的数据类型有哪些Redis 中跳表的实现原理是什么Redis 性能瓶颈时如何处理Redis 的 hash 是什么Redis 和 Memcached 有哪些区别Redis 支持事务吗如何实现Redis 数据过期后的删除策略是什么Redis 中有哪些内存淘汰策略Redis 的 Lua 脚本功能是什么如何使用Redis 的 Pipeline 功能是什么Redis 通常应用于哪些场景Redis 中的 Big Key 问题是什么如何解决如何解决 Redis 中的热点 key 问题Redis 的持久化机制有哪些Redis 中的缓存击穿、缓存穿透和缓存雪崩是什么线上发现 Redis 机器爆了如何优化Redis 在生成 RDB 文件时如何处理请求Redis 的哨兵机制是什么Redis 主从复制的实现原理是什么如果发现 Redis 内存溢出了你会怎么做计算机网络相关19 题说说 TCP 的三次握手说说 TCP 的四次挥手为什么 TCP 挥手需要有 TIME_WAIT 状态?TCP 超时重传机制是为了解决什么问题TCP 滑动窗口的作用是什么TCP/IP 四层模型是什么OSI 七层模型是什么从网络角度来看用户从输入网址到网页显示期间发生了什么什么是物理地址什么是逻辑地址到底什么是 TCP 连接HTTP 1.0 和 2.0 有什么区别HTTP 2.0 和 3.0 有什么区别HTTP 和 HTTPS 有什么区别HTTP 与 RPC 之间的区别TCP 和 UDP 有什么区别TCP 的粘包和拆包能说说吗Cookie、Session、Token 之间有什么区别线上 CPU 飙高如何排查TCP 是用来解决什么问题其他框架17 题简单说说 Netty 的零拷贝机制Netty 是如何解决粘包和拆包问题的Netty 如何解决 JDK NIO 中的空轮询 Bug介绍一下 Reactor 线程模型说说你知道的几种 I/O 模型Select、Poll、Epoll 之间有什么区别说一下 Netty 的应用场景为什么不选择使用原生的 NIO 而选择使用 Netty 呢Netty 性能为什么这么高简述 MyBatis 的插件运行原理以及如何编写一个插件说说 MyBatis 的缓存机制MyBatis 中 #{} 和 ${} 的区别是什么MyBatis 与 Hibernate 有哪些不同什么是 MyBatis-Plus它有什么作用Dubbo 和 Spring Cloud Gateway 有什么区别什么是 API 网关它有什么作用什么是 Seata分布式相关13 题什么情况下需要使用分布式事务有哪些方案如何设计一个秒杀功能让你设计一个分布式 ID 发号器怎么设计让你设计一个短链系统怎么设计分布式锁一般都怎样实现如何设计一个点赞系统让你设计一个 RPC 框架怎么设计什么是限流限流算法有哪些负载均衡算法有哪些分布式和微服务有什么区别什么是服务熔断什么是服务降级什么是服务雪崩篇幅限制下面就只能给大家展示小册部分内容了。整理了一份核心面试笔记包括了Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题需要全套面试笔记及答案可以点击下方名片获取
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

茶叶企业网站建设网站开发要花费多少钱

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 编写一个面向Ubuntu初学者的中文输入法安装教程,使用最简化的步骤和通俗语言。要求包含终端命令截图、常见错误解决方法,适配最新LTS版本。点击项目生成按钮…

张小明 2025/12/30 5:22:14 网站建设

新材料 东莞网站建设wordpress 站内信

DevExpress WinForms拥有180组件和UI库,能为Windows Forms平台创建具有影响力的业务解决方案。DevExpress WinForms能完美构建流畅、美观且易于使用的应用程序,无论是Office风格的界面,还是分析处理大批量的业务数据,它都能轻松胜…

张小明 2025/12/30 5:21:37 网站建设

网站建设实训php开源cms

还在为C盘爆满、系统运行缓慢而烦恼吗?Windows Cleaner作为一款专业的磁盘清理工具,能够智能识别并安全删除各类垃圾文件,让您的Windows系统重获流畅体验。只需简单几步,就能释放宝贵磁盘空间,告别系统卡顿的困扰&…

张小明 2025/12/30 5:21:01 网站建设

网站内的新闻怎样做链接前端响应式布局

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个Win11 C盘清理指南应用,逐步指导用户执行5个有效的清理操作:1) 使用磁盘清理工具 2) 删除Windows更新缓存 3) 转移虚拟内存到其他分区 4) 压缩系统文…

张小明 2025/12/30 5:20:26 网站建设

孝感建设银行官网站中元建设集团股份有限公司网站

第一章:为什么顶尖公司都在用Open-AutoGLM做流程自动化?答案在这里在数字化转型加速的今天,越来越多的全球领先企业选择 Open-AutoGLM 作为其核心流程自动化的引擎。这一开源框架凭借其强大的自然语言理解能力、灵活的插件架构以及对复杂业务…

张小明 2025/12/30 5:19:15 网站建设

企业网站包括哪些建设网站存在的问题

学长亲荐10个AI论文工具,研究生轻松搞定开题报告! 开题报告的“神器”正在改变研究生的写作方式 在研究生阶段,开题报告是学术研究的第一道门槛,也是许多同学感到最棘手的部分。面对复杂的文献综述、严谨的逻辑框架和繁复的格式要…

张小明 2025/12/30 5:18:39 网站建设