版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java经典面试题及答案(真实面试版)一、Java基础核心1.==和equals的区别?==是比较运算符,基本数据类型比较的是值,引用类型比较的是内存地址。equals是Object类的方法,默认和==一样比较地址。像String、Integer这些类重写了equals,改成了比较内容值。日常开发中,字符串对比一律用equals,避免空指针可以先判空或者用Objects.equals。2.String、StringBuilder、StringBuffer的区别?String是不可变字符串,每次拼接都会生成新对象,频繁拼接性能差。StringBuilder可变、线程不安全、效率高,单线程拼接优先用它。StringBuffer可变、加了synchronized锁、线程安全、效率低,多线程场景才用。3.基本数据类型和包装类的区别?基本类型是八种基础类型,存放在栈内存,默认有默认值,不用new,效率高。包装类是对象,存放在堆内存,默认值是null,提供了大量工具方法,支持泛型存储。还有自动装箱拆箱机制,基本类型和包装类可以自动转换,但要注意Integer缓存问题,-128~127范围内对象复用,超出范围新建对象。4.重载和重写的区别?重载:发生在同一个类中,方法名相同,参数个数、类型、顺序不同,和返回值无关,属于编译期多态。重写:发生在父子类中,方法名、参数列表、返回值必须一致,权限修饰符不能更严格,子类覆盖父类方法,属于运行期多态。5.final、finally、finalize的区别?final:修饰变量不可修改、修饰方法不可重写、修饰类不可继承。finally:是异常处理关键字,配合try-catch使用,代码一定会执行,常用于释放资源。finalize:Object类的废弃方法,JVM垃圾回收前调用,不确定性太强,开发中完全不用。6.接口和抽象类的区别?抽象类:有构造方法,可以有普通成员变量、普通方法、抽象方法,单继承,主打模板复用。接口:没有构造方法,jdk8前只有抽象方法,jdk8有默认/静态方法,jdk9有私有方法,多实现,主打行为规范。日常开发:通用模板用抽象类,统一行为标准用接口。二、Java集合框架(高频必考)1.ArrayList和LinkedList的区别?ArrayList基于动态数组,随机查询快、增删慢,需要扩容,适合查询遍历多的场景。LinkedList基于双向链表,随机查询慢、首尾增删快,不需要扩容,适合频繁插入删除的场景。2.HashMap的底层原理?JDK1.8优化点?HashMap底层是数组+链表+红黑树。通过hash算法计算下标,存放键值对,允许key、value为null。JDK1.8优化:1.链表长度大于8、数组容量大于64时,链表转红黑树,查询效率从O(n)优化为O(logn);2.优化哈希扰动算法,减少哈希冲突;3.插入方式从头插改为尾插,解决多线程扩容死循环问题(但依然线程不安全)。3.HashMap和ConcurrentHashMap的区别?HashMap线程不安全,并发读写会出现数据覆盖、死循环,不能用于多线程。ConcurrentHashMap线程安全,JDK1.8采用CAS+synchronized锁,只锁当前链表/树节点,粒度细、并发高,是并发场景首选。4.HashSet底层原理?HashSet底层就是HashMap,存储元素时把元素作为HashMap的key,value统一是一个静态空对象,所以HashSet元素不可重复。三、多线程与并发1.线程的生命周期有哪些状态?一共六种:新建、就绪、运行、阻塞、等待、超时等待、终止。核心流转:新建线程启动后进入就绪,抢到CPU资源进入运行,等待/阻塞后让出CPU,执行完毕进入终止。2.synchronized和Lock的区别?synchronized是JVM原生关键字,自动加锁释放锁,使用简单,适合少量并发场景,是悲观锁。Lock是接口(常用ReentrantLock),手动加锁解锁,可中断、可超时、可公平锁,粒度更灵活,高并发场景性能更好。3.volatile关键字的作用?能保证线程安全吗?volatile保证变量的可见性、禁止指令重排序,不保证原子性。所以不能完全保证线程安全,适合状态标记、开关变量场景,不适合计数、累加操作。4.线程池核心参数及工作原理?核心参数:核心线程数、最大线程数、空闲超时时间、任务队列、拒绝策略。工作流程:来了任务先创建核心线程,核心线程满了进队列,队列满了创建非核心线程,线程数达到最大值触发拒绝策略。开发中禁止用Executors创建线程池,必须手动自定义,避免OOM。四、JVM与内存模型1.JVM内存区域划分?堆:存放所有对象和数组,垃圾回收主要区域,线程共享。栈:每个线程私有,存放局部变量、方法栈帧,生命周期随线程。方法区:存放类信息、常量、静态变量、编译后的代码,线程共享。本地方法栈:执行native本地方法。程序计数器:记录当前线程执行位置,唯一无OOM的区域。2.垃圾回收机制?GC回收哪些区域?GC主要回收堆内存和方法区,栈内存线程结束自动释放,不用GC。核心回收思路:标记存活对象、清除无用对象、整理内存。年轻代用复制算法,老年代用标记清除、标记整理算法。3.什么是内存泄漏?常见场景?内存泄漏:无用对象一直被引用,无法被GC回收,长期堆积导致内存溢出。常见场景:静态集合持有对象、未关闭流/连接、匿名内部类持有外部引用、线程池线程不销毁。五、Spring核心1.SpringIOC原理?IOC控制反转,就是把对象的创建、管理、依赖注入交给Spring容器,不用开发者手动new对象。核心:读取配置/注解,扫描Bean,实例化、初始化Bean,存入容器,需要时自动注入,实现解耦。2.SpringAOP原理及应用场景?AOP面向切面编程,基于动态代理,在不修改原有代码的前提下,对方法进行增强。应用场景:日志记录、事务控制、权限校验、限流、缓存、异常统一处理。3.SpringBean的生命周期?实例化->依赖注入->初始化(前置处理、init方法、后置处理)->正常使用->容器关闭销毁。4.Spring事务传播机制和隔离级别?传播机制常用:REQUIRED(有事务加入,无则新建)、SUPPORTS(有则加入,无则非事务)、REQUIRES_NEW(新建独立事务)。隔离级别:读未提交、读已提交(默认)、可重复读、串行化,解决脏读、不可重复读、幻读问题。六、MySQL高频面试1.InnoDB和MyISAM区别?InnoDB:支持事务、行锁、外键、崩溃恢复,读写均衡,默认引擎。MyISAM:不支持事务、表锁、无崩溃恢复,查询快,写入差,基本淘汰。2.索引失效场景?1.模糊查询%开头;2.索引列参与运算;3.使用!=、isnotnull;4.or前后无索引;5.类型隐式转换;6.违反最左前缀原则。3.什么是MVCC?MVCC多版本并发控制,InnoDB实现读写不加锁、读不加锁的核心机制。通过版本链、readview实现快照读,解决并发读写冲突,提升数据库并发性能。七、日常开发高频问题1.异常分类?运行时异常和编译异常区别?编译异常(受检异常):必须捕获或抛出,否则编译报错,比如IO异常、SQL异常。运行时异常(非受检异常):代码运行才报错,可不用主动捕获,比如空指针、数组越界、类型转换
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安徽省医疗卫生系统招聘考试(心血管内科)历年参考题库含答案详解
- 2026安全评价师职业资格考试(综合评审)历年参考题库含答案详解
- 2026宁夏全国导游资格考试(全国导游基础知识、地方导游基础知识)历年参考题库含答案详解
- 2026天津市教师职称考试(保教知识能力与综合素质)历年参考题库含答案详解
- 2026天津医疗卫生系统招聘考试(生物医学工程专业知识)历年参考题库含答案详解
- 2026年四川省事业单位招聘考试综合类专业能力测试试卷(物流类)试题及答案
- 2026年设备点检培训试题及答案
- 2026年铁路职业技能鉴定试题预测试卷附完整答案详解
- 2026年中级质量师(质量专业综合知识)冲刺模拟试题及答案二
- 制药厂GMP车间设计方案
- 2026年浙江省温州市工会人员招聘考试备考试题及答案详解
- 农村土地承包第二轮到期延包政策深度解读
- 2026苏教版六年级数学上册第四单元第7课时《练习八》教案
- 2026西安电网面试题库及答案
- 2026中国智慧城市大脑建设进展与商业化运营模式研究
- 智能医学概论 课件 第5、6章 医学影像模式识别与图像识别、人工智能与药物研发
- 《2026年12月四级基础词汇表(30天背诵版)》(完整版)
- 2026四川事业单位公共基础知识真题
- 2025年内蒙古自治区(专升本)英语考试真题及参考答案
- 2026年化工行业创新报告及生物基材料应用技术分析报告
- 二期工业固废填埋场及可利用工业废渣堆场堆存方式改造项目环境影响报告书
评论
0/150
提交评论