当前位置: 首页 > article >正文

Java十道高频面试题(一)

Java基础与集合1. HashMap的底层数据结构是什么JDK 1.7 vs 1.8考察点数据结构演进、哈希冲突解决、扩容死循环问题。参考答案HashMap在JDK 1.7和1.8中有着本质的区别主要体现在底层结构和扩容机制上底层数据结构JDK 1.7采用数组 链表。当发生哈希冲突时使用链表存储且采用头插法插入新节点。JDK 1.8采用数组 链表 红黑树。优化当链表长度大于8且数组长度大于64时链表会转换为红黑树。目的将查询时间复杂度从 O(n)O(n) 降低到 O(log⁡n)O(logn) 解决了哈希冲突严重时查询效率低的问题。插入方式改为尾插法保持了元素的顺序。扩容机制核心区别JDK 1.7头插法导致的死循环在多线程环境下扩容时由于头插法会反转链表顺序可能导致链表形成环形结构死循环导致CPU占用率100%。JDK 1.8尾插法解决死循环扩容时保持链表顺序虽然HashMap在1.8中依然是线程不安全的存在数据覆盖问题但彻底解决了死循环的问题。扩容机制默认初始容量为16负载因子为0.75。当元素个数超过容量 * 负载因子时触发扩容容量变为原来的2倍并进行重新哈希Rehash。哈希计算JDK 1.8优化了哈希值的计算方式减少了哈希碰撞的概率且在扩容时不需要重新计算hash值而是通过高位运算判断元素位置效率更高。2. ConcurrentHashMap如何保证线程安全JDK 1.7 vs 1.8考察点锁粒度进化、分段锁 vs CASSynchronized。参考答案ConcurrentHashMapCHM在JDK 1.7和1.8中采用了完全不同的并发控制策略核心在于锁粒度的不断细化JDK 1.7分段锁Segment Lock结构采用Segment数组 HashEntry数组。Segment继承自ReentrantLock相当于一个小的HashMap。原理将数据分成一段一段存储给每一段数据配一把锁默认16个Segment。并发度默认支持16个线程同时并发写取决于Segment数量。缺点锁粒度较粗锁住整个Segment且Segment数量初始化后不可变内存开销较大。JDK 1.8CAS synchronized细粒度锁结构抛弃了Segment结构与HashMap 1.8一致即Node数组 链表 红黑树。原理空桶插入使用CASCompare-And-Swap操作尝试无锁插入性能极高。冲突插入当发生哈希冲突时使用synchronized锁住当前桶Bucket的头节点。并发度理论上取决于数组长度默认16动态扩容只要哈希不冲突不同线程可以操作不同的桶互不干扰。优势锁粒度从“段”细化到了“节点/桶”并发性能大幅提升。同时读操作get完全无锁依靠volatile保证可见性。3. 为什么重写equals()必须重写hashCode()考察点Object类规范、哈希集合原理。参考答案这是为了保证对象在哈希集合如HashMap、HashSet中的正确性。规范Java规定如果两个对象通过equals()比较返回true那么它们的hashCode()必须相同。后果如果只重写equals而不重写hashCode两个逻辑上相等的对象可能会计算出不同的哈希值。在存入HashMap时它们会被放入不同的桶中导致无法正确获取或去重违背了集合的设计原则。并发编程4. 线程池的核心参数有哪些工作流程是怎样的考察点ThreadPoolExecutor、生产环境配置。参考答案核心参数有7个最关键的5个是corePoolSize核心线程数常驻线程。maximumPoolSize最大线程数。workQueue任务阻塞队列。keepAliveTime非核心线程的空闲存活时间。RejectedExecutionHandler拒绝策略。工作流程当提交一个新任务时如果当前线程数 corePoolSize创建新核心线程执行。如果核心线程已满任务加入workQueue。如果队列也满了且线程数 maximumPoolSize创建非核心线程执行。如果队列满了且线程数已达最大值执行RejectedExecutionHandler默认AbortPolicy抛异常。5. synchronized和ReentrantLock的区别考察点锁的实现、功能特性。参考答案实现层面synchronized是JVM层面的关键字内置锁自动加锁释放ReentrantLock是JDK API层面的类java.util.concurrent.locks需要手动lock()和unlock()。功能特性synchronized操作简单JDK 1.6后进行了大量优化偏向锁、轻量级锁不可中断非公平锁。ReentrantLock功能更强大支持可中断、尝试获取锁tryLock、公平锁以及多条件变量Condition。选择代码简洁性优先选synchronized需要高级功能如公平锁、中断选ReentrantLock。6. ThreadLocal的底层原理及内存泄漏问题考察点线程隔离、弱引用。参考答案原理每个Thread内部维护了一个ThreadLocalMap。ThreadLocal作为Key弱引用存储的数据作为Value强引用。获取数据时从当前线程的Map中通过ThreadLocal实例取出Value。内存泄漏原因ThreadLocalMap中的Key是弱引用容易被GC回收但Value是强引用。如果线程复用如在线程池中且没有手动移除数据Key被回收后Value将无法访问也无法回收导致内存泄漏。解决使用完ThreadLocal后务必调用remove()方法清理数据。JVM与Java新特性7. JDK 21的虚拟线程Virtual Threads是什么考察点2026年面试热点、高并发新方案。参考答案虚拟线程是JDK 21引入的重磅特性Project Loom是一种轻量级线程。核心它是用户态线程由JVM调度而不是直接映射到操作系统内核线程OS Thread。优势创建成本极低内存占用极小可以轻松创建百万级并发线程。它解决了传统线程“一请求一线程”模型在高并发IO场景下的资源瓶颈。应用彻底取代了WebFlux等响应式编程的复杂写法可以用同步代码写出异步的高性能服务。8. JVM的垃圾回收算法有哪些G1收集器的特点考察点内存管理、调优基础。参考答案常见算法标记-清除碎片化、复制算法新生代常用、标记-整理老年代常用。G1收集器特点面向服务端将堆内存划分为多个独立的Region。优势可预测的停顿时间模型。它能根据用户设定的停顿时间目标动态调整回收的Region数量。适用适合大内存6GB、多核CPU且对停顿时间有要求的场景。Spring框架9. Spring Boot的自动配置原理是什么考察点框架源码、约定优于配置。参考答案核心在于EnableAutoConfiguration注解。加载通过Import导入AutoConfigurationImportSelector。读取扫描classpath下的META-INF/spring.factories文件或新版META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports。筛选读取所有候选配置类并利用Conditional系列注解如ConditionalOnClass、ConditionalOnMissingBean进行按需加载。生效只有当类路径下存在特定类如RedisTemplate且容器中不存在相关Bean时自动配置才会生效。10. Spring事务失效的常见场景有哪些考察点AOP代理机制、实战避坑。参考答案方法非publicSpring事务只支持public方法。自调用同一个类中非事务方法调用事务方法this.method()绕过了代理对象导致事务失效。异常被捕获在方法内部try-catch了异常没有抛出事务管理器无法感知异常从而无法回滚。数据库引擎数据库表引擎不支持事务如MySQL的MyISAM。异常类型不匹配默认只回滚RuntimeException和Error如果抛出Checked Exception如IOException且未配置rollbackFor事务不会回滚。这10道题覆盖了Java后端开发最核心的知识体系建议你结合自己的项目经验进行记忆。

相关文章:

Java十道高频面试题(一)

Java基础与集合1. HashMap的底层数据结构是什么?(JDK 1.7 vs 1.8)考察点:数据结构演进、哈希冲突解决、扩容死循环问题。参考答案:HashMap在JDK 1.7和1.8中有着本质的区别,主要体现在底层结构和扩容机制上&…...

OpenClaw 接入微信 / 企业微信完整教程

本文介绍如何通过 OpenClaw 框架,将个人微信和企业微信接入 AI Agent,实现「AI 自动回复」的功能。适用于树莓派、Mac/Windows 电脑、NAS 或云服务器等各类设备。 一、环境准备 1.1 安装 OpenClaw OpenClaw 是核心运行环境,负责加载插件、管…...

认知神经科学研究报告【20260055】

文章目录VAR 平稳向量自回归任务:L3 自适应涌现与 L4 经验迁移实验报告一、实验目标二、实验设计三、核心成果3.1 自主模型发现3.2 L4 跨任务经验迁移3.3 自主因果推断四、涌现层级评估六、结论VAR 平稳向量自回归任务:L3 自适应涌现与 L4 经验迁移实验报…...

实战复盘:我是如何用Elastic Security+Zeek构建一个小型企业安全监控平台的

实战复盘:Elastic SecurityZeek构建小型企业安全监控平台 当企业规模扩张到50人以上时,网络资产和终端设备数量会呈现指数级增长。去年为某电商团队部署安全系统时,他们的CTO向我展示了一份令人不安的数据:平均每天遭遇23次暴力破…...

多语言AI Agent的构建:跨语言理解与任务执行

多语言AI Agent的构建:跨语言理解与任务执行 本文面向有一定大模型应用开发基础的工程师,从原理、架构、实战三个维度完整讲解可落地的多语言AI Agent构建方案,全文约11000字,代码可直接运行。 引言 痛点引入 你是否遇到过这些场景? 运营跨境电商平台时,每个语言站点要…...

Mem Reduct:让电脑告别卡顿的必备内存清理神器

Mem Reduct:让电脑告别卡顿的必备内存清理神器 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct 你的电脑是…...

浏览器扩展革命:5分钟解锁微信网页版全功能访问

浏览器扩展革命:5分钟解锁微信网页版全功能访问 【免费下载链接】wechat-need-web 让微信网页版可用 / Allow the use of WeChat via webpage access 项目地址: https://gitcode.com/gh_mirrors/we/wechat-need-web 还在为微信网页版的各种限制而烦恼吗&…...

PDPI Spec:规格驱动开发协议,让AI编程告别“氛围编码”

1. 项目概述:从“感觉对了”到“规格对了”在软件开发的江湖里,我们可能都经历过这样的场景:产品经理丢过来一个模糊的需求,开发同学凭着一腔热血和“感觉对了”的直觉,一头扎进代码里。几周后,功能上线了&…...

为什么你的学术论文格式转换总是失败?docx2tex 3步解决方案

为什么你的学术论文格式转换总是失败?docx2tex 3步解决方案 【免费下载链接】docx2tex Converts Microsoft Word docx to LaTeX 项目地址: https://gitcode.com/gh_mirrors/do/docx2tex 还在为Word到LaTeX的格式转换头痛吗?每次提交学术论文、技术…...

3步视频PPT智能提取:告别繁琐截图,拥抱自动化高效工作流

3步视频PPT智能提取:告别繁琐截图,拥抱自动化高效工作流 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 还在为从视频中手动截取PPT幻灯片而烦恼吗&#xff1…...

观测多模型API调用延迟与稳定性选择合适服务商

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 观测多模型API调用延迟与稳定性选择合适服务商 在实际项目开发中,直接依赖单一模型服务商可能会面临服务波动或响应延迟…...

Memor:为LLM对话构建结构化记忆引擎,实现可重现、可移植的AI交互管理

1. 项目概述:Memor,为LLM对话赋予结构化记忆如果你和我一样,长期和各类大语言模型打交道,从早期的GPT-3到现在的Claude、Gemini,一个绕不开的痛点就是:对话历史的管理。默认的聊天界面里,历史记…...

高效自动化安装:Windows平台ADB与Fastboot驱动完整配置指南

高效自动化安装:Windows平台ADB与Fastboot驱动完整配置指南 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com/gh_mirrors/…...

论文降AI率通关指南:7个实用技巧+高效工具一次讲清

为什么你的论文总被判定为AIGC疑似? 随着AI写作工具的广泛普及,不少科研人员和学生都碰到了同一个头疼的问题:论文AIGC疑似率超标。现在大多数高校都出台了明确规定,AIGC率超过30%就可能被判定为AI代写,直接取消答辩资…...

BG3ModManager:博德之门3模组管理终极指南,告别模组冲突烦恼![特殊字符]

BG3ModManager:博德之门3模组管理终极指南,告别模组冲突烦恼!🚀 【免费下载链接】BG3ModManager A mod manager for Baldurs Gate 3. This is the only official source! 项目地址: https://gitcode.com/gh_mirrors/bg/BG3ModMa…...

ksail:本地Kubernetes开发环境一键搭建与云原生实践

1. 项目概述:当Kubernetes遇上本地开发如果你是一名后端或云原生方向的开发者,大概率经历过这样的场景:为了调试一个微服务,你需要在本地启动一整套依赖——数据库、消息队列、缓存,可能还有另外两三个兄弟服务。你手忙…...

思科路由器远程管理保姆级教程:从IP配置到Telnet/SSH登录全流程(避坑line vty和密码设置)

思科路由器远程管理全流程实战指南:从基础配置到安全登录 刚接触思科设备时,最让人头疼的莫过于那一连串看似晦涩的命令行操作。记得我第一次尝试配置路由器远程访问时,明明按照教程一步步操作,却始终无法通过Telnet连接&#xff…...

Windows 11优化终极指南:使用Win11Debloat一键提升电脑性能51%

Windows 11优化终极指南:使用Win11Debloat一键提升电脑性能51% 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutte…...

Chrome QRCode:浏览器原生二维码生成与解析的极简技术方案

Chrome QRCode:浏览器原生二维码生成与解析的极简技术方案 【免费下载链接】chrome-qrcode :zap: A Chrome plugin to Genrate QRCode of URL / Text, or Decode the QRcode in website. 一个Chrome浏览器插件,用于生成当前URL或者选中内容的二维码&…...

别再复制粘贴了!手把手教你用MATLAB/Simulink把低通滤波器写成C代码(附差分方程推导避坑点)

从MATLAB到嵌入式C:工业级低通滤波器实现全解析 在电机控制、信号处理等嵌入式应用中,低通滤波器的实现质量直接影响系统性能。许多工程师习惯直接复制现成代码,却常遭遇数值不稳定、相位失真或计算效率低下等问题。本文将彻底拆解从S域传递函…...

我的Taotoken账单分析如何帮助优化模型选型与token消耗

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 我的Taotoken账单分析如何帮助优化模型选型与token消耗 在集成多个大模型API到实际业务或开发流程中,一个常见的困惑是…...

英特尔将雷电3集成进CPU:如何重塑高速接口生态与USB4标准

1. 项目概述:Thunderbolt 3的十字路口与英特尔的关键抉择如果你在2017年前后关注过PC和笔记本的接口演进,一定会对那个混乱的时期记忆犹新。一边是USB 3.0/3.1 Gen 1/Gen 2各种命名让人眼花缭乱,另一边是性能强悍但曲高和寡的Thunderbolt&…...

Taotoken 官方价折扣与活动价助力个人开发者降低创新门槛

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken 官方价折扣与活动价助力个人开发者降低创新门槛 对于个人开发者和学生而言,探索大模型应用的最大挑战之一往往…...

告别格式烦恼:北航毕业论文LaTeX模板的5步终极指南

告别格式烦恼:北航毕业论文LaTeX模板的5步终极指南 【免费下载链接】BUAAthesis 北航毕设论文LaTeX模板 项目地址: https://gitcode.com/gh_mirrors/bu/BUAAthesis 还在为毕业论文格式调整而烦恼吗?想象一下,你已经花费数月时间完成了…...

Robodyssey机器人教育:从STEM理念到项目实践,点燃孩子科技兴趣

1. 项目概述与核心理念十年前,我在一次行业展会上第一次看到一群孩子围着一个摊位,他们不是在玩现成的玩具,而是聚精会神地调试着自己手里那些由电线、电路板和塑料零件组成的“小怪物”。那个摊位就是Robodyssey。当时我就在想,把…...

AI推广的核心原理是什么?

理解AI推广的原理,你才能知道该做什么、不该做什么,而不是盲目操作。一句话概括AI推广的核心原理:让AI在回答用户问题时,选择引用你的内容。就这么简单。但要做到这件事,你需要理解AI是怎么"选择"的。AI回答…...

大模型风口已至:月薪30K+的AI Agent开发岗,你准备好了吗?

文章介绍了如何借助不同版本的Agents实现智能自动化,并详细描述了AI应用工程师和大模型算法工程师的岗位职责和任职要求。文章还强调了AI学习的重要性,指出最先掌握AI的人将具有竞争优势,并提供了大模型AI学习和面试资料,帮助读者…...

大模型上手指南:从跑通到解剖,一步步深入核心机制!

本文提供了一套从零开始、由浅入深的实践路径,指导读者如何系统性地分析和学习大模型。首先通过配置环境、加载本地模型并成功进行推理,让读者直观感受模型运行。接着,结合运行结果回顾 Transformer、Tokenization 等核心概念,并探…...

音频AI DSP:低功耗边缘智能的硬件架构与实现

1. 项目概述:当音频AI遇见边缘DSP几年前,如果有人告诉我,一个比指甲盖还小的芯片,能在不到1毫瓦的功耗下,持续监听环境声音、识别特定关键词,甚至能分辨出你是在嘈杂的餐厅还是在安静的办公室,我…...

终极指南:在Windows上轻松安装安卓应用,告别笨重模拟器

终极指南:在Windows上轻松安装安卓应用,告别笨重模拟器 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经想在Windows电脑上运行安卓应…...