面试问题总结

发布时间:2026/10/25 2:02:55

面试问题总结 1.回答输出结果为什么Integer i new Integer(100); Integer j new Integer(100); System.out.println(i j); String a abc; String b a b c; System.out.println(a b); String c abcd; String d a d; System.out.println(c d);1.ij 输出false原因i和j对象虽然在常量池范围内但都通过new关键字分配新内存地址。2.ab输出true原因都是字符串常量都直接在字符串常量池中直接引用。3.cd输出false原因d是在堆内创建新字符串对象。2.String b在JVM中具体是怎么创建的在栈中创建一个b变量在字符串常量池招是否存在“abc“若找到了则直接引用没有找到在字符串常量池中创建。3.JVM中运行时数据区都包含那些部分分为线程私有和线程共享线程私有程序计数器本地方法栈虚拟机栈。线程共享元空间堆4.堆是干嘛的方法区是干嘛的虚拟机栈是干嘛的堆是用来存创建的对象数组等方法区存储字节码指令类的结构信息静态变量常量JIT编译器编译的目标对象识别的机器码。虚拟机栈存入一个个栈帧一层层方法每个栈帧保存了每个方法的局部变量操作数栈和动态链接方法出口等信息。5.讲讲堆分为那些部分每个部分都是啥堆分为新生代和老年代新生代约占1/3分为survive0和survive1和Eden区老年代约占2/3.6.讲讲垃圾收集新生代中对于Eden区域中的对象生命周期短所以垃圾收集频率高速率块未回收的进入到survive0中而在老年代中对象占用空间大生命周期长回收频率低速率慢。7.一个对象是怎么从新生代流转到老年代的新生代对象经过频繁的垃圾收集还存活达到阈值时会流转到老年代当新生代容量不够时survive0,survive1中的对象会直接流转为老年代对象。8.surviveo区域、survive1区域具体讲讲新生代中经历垃圾回收存活的对象的年龄加1并放入到surivie0中如果达到阈值则流转为老年代对象。survive1和survive0中总有一个为空。9.Java线程有那些状态各个状态是怎么流转的当线程新创建时未执行start()方法时处于New状态当线程准备执行或正在执行时处于RANNABLE状态执行join时间值wait时间值等方法时间处于计时等待状态等待时间结束处于RANABLE状态执行joinwait方法时处于等待状态需要通过notifynotifyall等方法唤醒如果存在锁竞争锁失败的线程处于阻塞状态执行ran()方法完毕进入终止状态。10.如果执行sleep方法会进入什么状态线程会进入计时等待状态休眠状态如果有锁并不会释放锁一直持有锁。11.线程同步机制了解吗了解过线程并发进行线程采用抢占模式为了使操作的资源正确通过同步锁Synchronize保证线程的同步安全也可以使用CAS和ReentrantLock保证线程同步安全。12.Lock有哪些实现有ReentrantLockReentrantLockReadWriteLock等实现类都是保证线程同步安全的13.Synchronize和ReentrantLock有什么区别分别在什么情况下使用Synchronize是一个关键字声明在方法上或在代码块中使用是隐式获取锁和释放锁用法简单不能中断不能判断状态不能设置超时仅支持非公平锁底层是通过Monitor监视器、而ReentrantLock是Lock类的实现类需要通过创建对象通过对象调用获取锁和释放锁的方法也可以trylock()非阻塞的方式显式获取和释放锁unlock()必须配合findlly 代码块使用用法复杂可以通过lockInterruptibly()中断通过trylock时间值设置超时时间支持公平锁和非公平锁底层是通过AQS实现的。14.讲讲Synchronize锁升级锁升级是从无锁-偏向锁-轻量级锁-重量级锁偏向锁是只有一个线程频繁的获取释放锁会记住这个线程不用通过锁直接比较实现如果过发现不同的线程会升级为轻量级锁线程竞争不激烈冲突小线程通过CAS的方式获取锁如果CAS长时间自旋说明冲突激烈锁会升级为重量级锁具有强烈的互斥性和排他性已独占的方式获取锁。15.讲讲CAS的原理会遇到什么问题怎么解决CAS是一种无锁化的并发管理操作执行流程是先获取内存中需要修改的值A通过计算得出B再将自己拿到的值A与内存中的值C比较如果相同则进行更新操作如果不同则进行重试或自旋操作。会出现ABA问题是CAS拿到内存中的值A10但是存在另一个线程修改内存中的值为10当前线程比较时内存中的值与自己的值相同边进行更新没有发现其他修改的线程可以通过加一个版本号解决。16.线程安全的集合类有哪些1.CopyOnWriteArrayList,使用ReentrantLock保证线程安全。2.CopyOnWriteArraySet内部是一个CopyOnWriteArrayList,所以使用ReentrantLock保证线程安全。3.ArrayBlockingQueue使用一个锁ReentrantLock保证线程安全4.LinkedBlockingQueue使用两个锁对象ReentrantLock保证线程安全。5.ConcurrentHashMap使用CASsynchronize保证线程安全在没有发生哈希冲突时使用CAS写入发生发哈希冲突使用链表头节点或红黑树的根节点作为锁对象进行局部上锁。6.Stack使用Synchronize保证线程安全。17.如果我想要一个线程安全的List应该怎么做可以使用CopyOnWriteArrayList适合读多写少的场景18.线程池了解嘛有哪些核心参数执行流程是什么线程池是一种池化技术实现了线程复用线程的并发管理避免了线程的重复创建。参数核心线程数最大线程数非核心线程的空闲时间的时间单位阻塞工作队列线程工厂拒绝策略。执行流程当线程任务进入线程池判断小于核心线程数则创建核心线程执行该线程任务若大于核心线程数小于工作队列则线程任务入队等待若大于工作队列小于最大线程数创建非核心线程执行线程任务若大于最大线程数执行拒绝策略。19.内存有限快速找到top10000怎么办使用优先队列小顶堆栈先遍历1000个数据通过for循环入队剩余元素入队元素队头元素对头元素出队遍历至数据结束得到top1000020. 数据量极大找到一个数在其中是否存在怎么做使用布隆过滤器穿件创建布隆过滤器对象把数据存入到布隆过滤器中来判断某个数字是否存在21.布隆过滤器的原理优缺点将数据通过不同的哈希法计算出不同的哈希值并在位数组中将计算出来的哈希值位置上的0改为1.优点可以高效率查询和插入数据占用内存极小缺点存在误判存入的数据不能取出原数据原生布隆过滤器不支持删除。22. 如果让你实现布隆过滤器的hash算法怎么写使用不同的种子seed和容量cap和传如数据datahash seed*cao-1data.hashcode^data.hashcode()16
延伸阅读

更多相关文章

2026/10/25 2:02:55

2026年毕业设计相关信息

01 毕业设计学生信息基本信息 学生1 ### 学生2### 学生2 卓老师,想问您今年还有本科毕设名额吗? 我是自动化2023级本科生曾天怀(自34班),之前大二的时候上过您的信号与系统课,想要在您的指导下完成毕设。 在…

2026/10/25 1:57:55

内疚自卑-量子白骨观修炼体系|赵杰|量子白骨观

作者:赵杰清华大学硕士、微美全息云科技(NASDAQ:WIMI)董事长、微算法科技(NASDAQ:MLGO)董事长、育杰奖学金创始人沿用赵杰原创理论体系:爱子量子本体论、观测坍缩效应、四重自我否定量子纠缠、意识高熵自我攻击、意识绝对错误性、现代化量子调心白骨观,融…

2026/10/25 2:57:59

技能盘点实战:从模糊自我评价到可交付能力系统

1. 从“skills”这个词说起:为什么它突然成了硬通货最近后台收到不少私信,问的都是同一类问题:简历上写满了“熟练掌握XX”“精通XX”,投出去却石沉大海;面试聊技术头头是道,一到谈薪资就被压价&#xff1b…

2026/10/25 2:57:59

技能管理实战:从盘点、评估到审计,构建核心竞争力

我想从一位前同事的经历说起。当年团队里有个同学,每天下班都在学新东西,今天刷一套视频课,明天啃一本技术书,代码托管平台上零零散散放着好多练习项目。可每到季度总结,他写出来的成果永远是“学了XX、了解了XX”&…

2026/10/25 2:57:59

Linux系统入门与实战:从基础命令到运维管理

1. Linux系统概述与核心价值Linux作为开源操作系统的代表,已经渗透到现代计算的各个角落。从智能手机的Android内核到云计算平台的基础架构,再到嵌入式设备的控制系统,Linux无处不在。我第一次接触Linux是在大学实验室,当时被其命…

2026/10/25 2:57:59

AI芯片软硬件协同设计:从架构到落地的全链路实践

1. AI芯片软硬件协同设计的整体思路拆解1.1 为什么软硬件必须一起设计做AI芯片这行的人都有一个共识:硬件性能再强,如果软件栈跟不上,实际跑出来的吞吐量可能连理论峰值的30%都不到。我见过太多团队,流片回来发现算子覆盖率不够、…

2026/10/25 2:57:59

WinForm与WPF深度对比:桌面开发框架选型指南

1. 为什么WinForm和WPF的选择如此重要?在桌面应用开发领域,C#开发者面临着一个持续多年的选择困境:该用传统的WinForm还是现代的WPF?这个问题看似简单,却直接影响着开发效率、维护成本和用户体验。我见过太多团队在项目…

2026/10/25 2:52:59

动态规划与Manacher算法解决回文串问题

1. 回文串问题与动态规划基础回文串(Palindrome)是指正读反读都相同的字符串,比如"aba"、"abba"都是典型的回文串。在算法领域,回文串相关问题是面试和竞赛中的高频考点,而动态规划(Dy…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑