版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年3到5年java面试题答案
一、单项选择题(总共10题,每题2分)1.以下关于G1垃圾收集器的描述,正确的是()A.是面向年轻代的收集器B.采用标记-清除算法C.可预测停顿时间D.需要手动设置年轻代大小2.CopyOnWriteArrayList适合的场景是()A.读多写少B.写多读少C.并发写多D.需要实时更新3.@Autowired和@Resource的区别是()A.@Autowired是JDK注解,@Resource是Spring注解B.@Autowired按名称注入,@Resource按类型注入C.@Autowired按类型注入,@Resource先按名称再按类型D.两者没有区别4.ReentrantLock的公平锁是指()A.先等待的线程先获得锁B.优先级高的线程先获得锁C.随机选择线程获得锁D.当前线程可以重复获得锁5.Seata的分布式事务模式中,不需要业务改造的是()A.TCCB.ATC.SAGAD.XA6.Redis的RDB持久化方式的特点是()A.实时性高B.文件小,恢复快C.不会丢失数据D.适合频繁写入的场景7.单例模式的双重检查锁实现中,volatile关键字的作用是()A.保证原子性B.保证可见性和禁止指令重排C.保证顺序性D.防止死锁8.MySQL的联合索引(a,b,c),以下查询能命中索引的是()A.whereb=1andc=2B.wherea=1andc=2C.wherea=1andb=2andc=3D.wherec=39.SpringCloudGateway的主要功能是()A.服务注册与发现B.服务熔断与降级C.API网关,路由与过滤D.配置中心10.以下属于UncheckedException的是()A.IOExceptionB.SQLExceptionC.NullPointerExceptionD.ClassNotFoundException二、填空题(总共10题,每题2分)1.JVM的堆内存分为年轻代和老年代,其中年轻代又分为______、______和______三个区域。2.HashMap的初始容量是______,默认负载因子是______。3.SpringIOC容器的两个核心实现类是______和______。4.ThreadPoolExecutor的核心构造参数包括核心线程数、最大线程数、______、______、阻塞队列、线程工厂、拒绝策略。5.分布式ID常用的生成方式有雪花算法、______、______、Redis生成。6.Redis的过期策略主要有______和______两种。7.装饰器模式的典型应用是Java的______流,用于动态扩展对象功能。8.MySQL的默认事务隔离级别是______。9.SpringCloud中常用的注册中心有Eureka、______、______。10.Java中处理异常的关键字包括try、catch、______、throw、______。三、判断题(总共10题,每题2分)1.G1垃圾收集器是面向堆内存的分代收集器,只能收集年轻代。()2.HashTable是线程安全的,因此在并发场景下比HashMap更适合使用。()3.被@Controller注解标注的类会被Spring自动扫描并注册为Bean。()4.synchronized关键字可以修饰方法和代码块,而ReentrantLock只能修饰代码块。()5.TCC分布式事务模式不需要在Try阶段预留资源。()6.布隆过滤器可以有效解决Redis的缓存穿透问题。()7.单例模式的饿汉式实现是线程安全的,因为实例在类加载时初始化。()8.MySQL的索引越多,查询性能越好。()9.SpringCloudHystrix的主要功能是服务熔断和降级。()10.throw关键字用于声明方法可能抛出的异常,throws用于抛出具体的异常对象。()四、简答题(总共4题,每题5分)1.请简述JVM的常见垃圾收集算法及适用场景。2.请简述ConcurrentHashMap在JDK1.8中的实现原理。3.请简述SpringAOP的两种实现方式及区别。4.请简述分布式缓存(如Redis)的一致性问题及解决方法。五、讨论题(总共4题,每题5分)1.请讨论多线程编程中提升性能的常见策略。2.请讨论SpringBoot自动配置的实现原理及核心注解。3.请讨论微服务拆分的基本原则及常见问题。4.请讨论数据库分库分表的适用场景及注意事项。答案一、单项选择题1.C2.A3.C4.A5.B6.B7.B8.C9.C10.C二、填空题1.Eden、FromSurvivor、ToSurvivor2.16、0.753.BeanFactory、ApplicationContext4.空闲线程存活时间、时间单位5.UUID、数据库自增ID6.定期删除、惰性删除7.IO8.RepeatableRead(可重复读)9.Nacos、Consul10.finally、throws三、判断题1.×2.×3.√4.×5.×6.√7.√8.×9.√10.×四、简答题1.JVM常见垃圾收集算法有四种:①标记-清除算法:标记需回收对象后清除,适用于老年代,优点是无需移动对象,缺点是效率低、有内存碎片;②复制算法:将内存分成两块,复制存活对象到另一块,适用于年轻代,优点是效率高、无碎片,缺点是需双倍内存;③标记-整理算法:标记存活对象后整理到内存一端,适用于老年代,解决标记-清除的碎片问题;④G1的Region算法:将堆分成多个Region,按Region收集,可预测停顿时间,适用于大堆内存场景。2.ConcurrentHashMap在JDK1.8中采用数组+链表+红黑树结构,摒弃分段锁,通过CAS和synchronized保证线程安全。数组节点用volatile修饰保证可见性;插入元素时,对链表头或红黑树根节点加synchronized锁,减少锁粒度;扩容时多线程协作处理不同Region,降低阻塞时间;查询时无锁,保证高效读性能,兼顾并发写与读的效率。3.SpringAOP有两种实现方式:①JDK动态代理:基于接口,通过Proxy.newProxyInstance生成代理对象,JDK原生支持,只能代理实现接口的类;②CGLIB动态代理:基于继承,通过生成子类覆盖父类方法,需引入CGLIB库,能代理类(非final)。区别:JDK要求目标类实现接口,CGLIB无此限制;JDK是JDK原生,CGLIB是第三方;CGLIB性能略高,但不能代理final类或方法。4.分布式缓存一致性问题指缓存与数据库数据不一致,原因包括更新数据库后未同步缓存、缓存更新失败等。解决方法:①双写模式:更新数据库后同步或异步更新缓存;②失效模式:更新数据库后删除缓存,后续请求从数据库加载缓存;③加分布式锁:保证更新数据库和缓存的原子性;④用Canal监听数据库binlog,异步同步缓存;⑤设置缓存过期时间,最终一致。五、讨论题1.多线程性能优化策略:①减少锁粒度:用ConcurrentHashMap代替HashTable,或分段锁;②避免不必要同步:用Atomic类等无锁结构;③合理使用线程池:根据任务类型设置线程数(CPU密集型=核心数,IO密集型=2核心数),避免频繁创建销毁线程;④避免死锁:按顺序加锁、设置超时时间;⑤优化线程通信:用BlockingQueue代替wait/notify,减少上下文切换;⑥使用并发工具类:如CountDownLatch协调线程;⑦保证内存可见性:用volatile修饰共享变量。2.SpringBoot自动配置核心是@EnableAutoConfiguration注解,通过SpringFactoriesLoader扫描META-INF/spring.factories中的AutoConfiguration类。每个AutoConfiguration类用@Conditional注解(如@ConditionalOnClass、@ConditionalOnMissingBean)判断是否生效:若类路径有对应依赖且无用户自定义Bean,则自动配置。核心注解:@SpringBootApplication(包含@EnableAutoConfiguration、@ComponentScan、@Configuration);@ConditionalOnClass(存在指定类时生效);@ConditionalOnMissingBean(无指定Bean时生效)。例如DataSourceAutoConfiguration会自动配置HikariDataSource(若存在Hikari依赖)。3.微服务拆分原则:①单一职责:每个服务只做一件事(如订单服务负责订单业务);②领域驱动:按业务领域拆分(如用户、商品、订单);③独立部署:不依赖其他服务的部署周期;④可扩展:便于横向扩展。常见问题:①拆分过细:服务数量多,运维成本高,调用链长;②服务依赖复杂:循环依赖,调用性能下降;③分布式事务:跨服务事务难保证;④数据一致性:缓存与数据库、服务间数据同步问题;⑤测试难度大:需模拟多服务环
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 游泳游玩免责协议书
- 32位微机全并行电梯控制系统
- 化工原理考试大纲
- 2025保密知识应知应会题库及答案
- STEM理论下的初中物理实验教学应用
- 1开篇 高考新观察 高三数学第二轮总复习
- 肝细胞癌合并胆管癌栓的肝移植治疗进展总结2026
- 2026年高二历史下学期期中考试卷及答案(六)
- 2026年高考化学最后冲刺押题试卷及答案(共十套)
- 2026年甲状旁腺肿瘤疾病患者健康教育课件
- 河海大学本科生毕业设计(论文)基本格式要求
- 餐饮劳务用工外包协议书
- 2025年湖北建筑工程技术高、中级职务水平能力测试建筑工程题库含答案详解
- 平原2×700MW H级燃气-蒸汽联合循环发电工程项目环评报告表
- 矿区生态修复后期管护方案
- AR安全风险培训课件
- DBJT15-188-2020 城市综合管廊工程技术规程
- 凯恩斯主义课件
- APQP第三版及CP第一版介绍
- 武侯祠历史讲解
- 眼健康知识科普讲座
评论
0/150
提交评论