版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java跳槽笔试面试真题(含详细答案)适用场景:Java后端开发跳槽笔试、面试自测考察范围:Java基础、集合、JVM、多线程、Spring、MySQL、Redis、实战场景总分:100分一、判断题(每题1分,共10分)1、String是基本数据类型,不可变且线程安全。()2、ArrayList线程不安全,Vector线程安全,所以开发中优先使用Vector。()3、HashMap在JDK1.8中采用数组+链表+红黑树结构。()4、volatile关键字可以保证变量原子性、可见性、有序性。()5、finally代码块一定会执行。()6、接口中所有方法默认都是publicabstract。()7、MySQL的InnoDB引擎支持事务和行锁,MyISAM不支持事务。()8、Spring的IOC是通过手动new对象实现的。()9、Redis是单线程模型,所以不存在并发竞争问题。()10、GC的MinorGC是针对老年代的垃圾回收。()二、单项选择题(每题2分,共20分)1、以下关于==和equals说法正确的是()A、基本类型用equals比较值B、==对于引用类型比较的是内存地址C、String的equals比较的是地址D、==可以比较所有对象内容2、下列集合中,查询效率最高、有序可重复的是()A、ArrayListB、LinkedListC、HashSetD、HashMap3、JDK1.8中HashMap链表转红黑树的阈值是()A、6B、7C、8D、164、以下不属于线程生命周期状态的是()A、新建B、阻塞C、休眠D、销毁5、能彻底保证线程安全,适合高并发计数的是()A、intB、volatileintC、AtomicIntegerD、staticint6、Spring事务传播级别中,默认级别是()A、REQUIRES_NEWB、REQUIREDC、SUPPORTSD、MANDATORY7、MySQL中,以下索引查询效率最高的是()A、普通索引B、联合索引C、主键索引D、全文索引8、Redis中用来解决缓存击穿的方案是()A、缓存过期随机时间B、互斥锁C、缓存预热D、批量加载9、下列关于重载和重写说法正确的是()A、重写方法参数列表必须不同B、重载发生在父子类C、重写返回值可以协变D、重载方法权限必须一致10、JVM中存放对象实例的区域是()A、栈B、堆C、方法区D、本地方法栈三、简答题(每题6分,共30分)1、简述String、StringBuilder、StringBuffer的区别及适用场景。2、HashMap和ConcurrentHashMap的区别,以及JDK1.7和1.8的改进点。3、synchronized和Lock的区别?各自适用场景是什么?4、SpringIOC和AOP的原理和作用。5、简述MySQL事务四大特性、隔离级别及对应问题。四、编程题(每题10分,共20分)1、手写单例模式(双重检查锁完整版,解决指令重排问题)。2、编写代码,实现两个线程交替打印1-100数字。五、实战面试场景题(20分)项目线上出现接口响应慢、数据库CPU飙升问题,请你完整说明排查思路、定位步骤、优化方案。详细参考答案一、判断题答案1、×解析:String是引用类型,不是基本类型。2、×解析:Vector加锁粒度大、并发性能差,日常开发优先ArrayList,并发场景用ConcurrentList。3、√解析:JDK1.8HashMap底层为数组+链表+红黑树,链表长度≥8且数组长度≥64时树化。4、×解析:volatile只能保证可见性、有序性,不保证原子性。5、×解析:System.exit(0)直接退出JVM,finally不会执行。6、√解析:jdk8及之前,接口方法默认publicabstract;jdk8后支持默认方法、静态方法。7、√解析:InnoDB支持事务、行锁、外键;MyISAM无事务、表锁。8、×解析:IOC是控制反转,由Spring容器创建、管理对象,无需开发者手动new。9、×解析:Redis单线程处理命令,但多客户端并发访问会存在竞争,需要分布式锁解决并发问题。10、×解析:MinorGC针对新生代,MajorGC针对老年代。二、单选题答案1、B解析:基本类型==比数值,引用类型==比内存地址,equals重写后比内容。2、A解析:ArrayList基于数组,随机查询快;LinkedList增删快;Set无序去重。3、C解析:链表长度达到8,数组长度大于64,触发红黑树转换。4、D解析:线程五大状态:新建、就绪、运行、阻塞、终止,无销毁状态。5、C解析:volatile不保证原子性,AtomicInteger基于CAS保证并发原子性。6、B解析:Spring事务默认传播级别REQUIRED:有事务加入,无事务新建。7、C解析:主键索引唯一性最高、查询速度最快。8、B解析:缓存击穿是热点key过期瞬间大量请求打数据库,用互斥锁控制单线程加载缓存。9、C解析:重写支持返回值协变,重载发生在同类,参数列表必须不同。10、B解析:堆内存专门存放对象实例和数组。三、简答题答案1、String、StringBuilder、StringBuffer区别(1)String:不可变字符串,每次拼接都会生成新对象,效率低,线程安全;适合少量字符串定义、静态文本。(2)StringBuilder:可变字符串,无锁、线程不安全,拼接效率高;适合单线程大量字符串拼接。(3)StringBuffer:可变字符串,方法加synchronized锁、线程安全,效率偏低;适合多线程字符串拼接场景。2、HashMap与ConcurrentHashMap区别、版本改进(1)线程安全:HashMap线程不安全;ConcurrentHashMap线程安全。(2)锁粒度:JDK1.7ConcurrentHashMap采用分段锁,锁住一段数组;JDK1.8锁粒度优化为锁单个头节点,并发度更高。(3)底层结构:1.7是数组+链表;1.8是数组+链表+红黑树,优化高哈希冲突性能。(4)效率:HashMap并发场景易死链、数据覆盖;ConcurrentHashMap解决并发问题,性能远优于Hashtable。3、synchronized和Lock区别(1)底层:synchronized是JVM原生锁,自动加锁释放;Lock是代码层面锁,需要手动lock、unlock。(2)灵活性:Lock可超时锁、可中断锁、可公平锁;synchronized只能非公平、不可中断。(3)性能:低竞争下synchronized优化后性能接近Lock;高并发竞争下Lock性能更好。(4)适用:简单同步代码块用synchronized;高并发、需要锁超时、公平锁场景用ReentrantLock。4、SpringIOC、AOP原理与作用IOC(控制反转):将对象创建、依赖管理交给Spring容器,无需开发者手动new、赋值。核心是工厂模式+反射,实现解耦、统一管理Bean生命周期。AOP(面向切面编程):基于动态代理,在不修改原有代码的前提下,对方法进行增强。常用于日志、事务、权限校验、限流、监控,实现业务与通用功能解耦。5、MySQL事务四大特性与隔离级别四大特性ACID:原子性、一致性、隔离性、持久性。隔离级别由低到高:(1)读未提交:存在脏读、不可重复读、幻读;(2)读已提交(Oracle默认):解决脏读,存在不可重复读、幻读;(3)可重复读(MySQL默认):解决脏读、不可重复读,存在幻读;(4)串行化:全部问题解决,性能最低。四、编程题答案1、双重检查锁单例(防止指令重排)java
publicclassSingleton{
//volatile禁止指令重排,避免半初始化对象
privatestaticvolatileSingletoninstance;
//私有构造,禁止外部new
privateSingleton(){}
publicstaticSingletongetInstance(){
//第一次判断:避免每次加锁,提升性能
if(instance==null){
synchronized(Singleton.class){
//第二次判断:防止多线程重复创建
if(instance==null){
instance=newSingleton();
}
}
}
returninstance;
}
}2、双线程交替打印1-100java
publicclassAlternatePrint{
privatestaticintnum=1;
privatestaticfinalObjectlock=newObject();
publicstaticvoidmain(String[]args){
//奇数线程
newThread(()->{
while(num<=100){
synchronized(lock){
if(num%2==1){
System.out.println("线程1:"+num);
num++;
}
}
}
}).start();
//偶数线程
newThread(()->{
while(num<=100){
synchronized(lock){
if(num%2==0){
System.out.println("线程2:"+num);
num++;
}
}
}
}).start();
}
}五、实战场景题答案(面试高分版)问题:接口响应慢、数据库CPU飙升排查优化方案1、紧急排查步骤第一时间查看服务器监控:数据库CPU、连接数、QPS、慢查询日志、线程池状态。优先通过showprocesslist查看当前活跃SQL,定位是否存在慢SQL、死锁、大量长连接。2、核心定位原因(1)慢SQL:无索引、索引失效、全表扫描、关联查询无过滤、limit分页偏移量过大;(2)数据量问题:单表数据量过大,未分库分表;(3)缓存失效:大量请求穿透到数据库,瞬时压力暴涨;(4)代码问题:循环查库、重复查询、事务过长锁等待;(5)数据库参数:连接数过小、缓冲区配置不合理。3、优化方案(1)S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西赣州市2026届高三下学期摸底考试数学试题(解析版)
- 2025年医技类-康复医学技术(副高)056历年参考题库含答案解析
- 2025年医师定期考核-临床医师定期考核历年题库含答案解析
- 2025年医院感染管理试题(附答案)
- 2025年邮政快递快递员安全员新员工岗位专业知识笔试题目及答案
- 2025年浙江省绍兴市专业技术继续教育公需科目考试及答案
- 2025年执业助理医师考试真题含解析及答案
- 2025年执业药师资格考试中药学专业知识(一)真题及答案
- 2025年主管护师(护理学)考试(基础知识)真题及答案
- 2025年中医妇科月经病诊疗中医妇科学前沿知识试卷
- 2026年中耳炎(术后)出院耳部护理与防复发
- 2025年重庆市从“五方面人员”中选拔乡镇领导班子成员考试历年参考题库含答案详解
- 用车派车审批制度
- 焊工不锈钢焊接操作规范
- 2024妇科盆底重建手术加速康复的中国专家共识课件
- 浙江省财开集团有限公司2026年招聘笔试题库
- 2026第二届全国红旗杯班组长大赛考试备考核心试题库500题
- 剧本杀剧本四人本《暗船》
- 武汉周黑鸭企业工厂参观走廊设计方案
- 2026年南京铁道职业技术学院单招职业技能测试题库含答案详解(研优卷)
- 2026年及未来5年市场数据中国铁路工程监理行业市场发展数据监测及投资潜力预测报告
评论
0/150
提交评论