记年底一波JAVA面经,希望你能用的到

本文详细记录了一次涵盖SQL、JVM、多线程和中间件的Java全栈面试经历。面试涉及了SQL查询、JVM内存模型、GC算法、多线程原理、Redis数据结构、数据库优化等多个技术点,展现了面试的全面性和深度。面试官友好,问题专业,旨在评估候选人的技术实力和项目经验。
摘要由CSDN通过智能技术生成

一面、笔试

笔试题还是比较中规中矩,比较幸运没有算法,公司可能比较看中SQL能力,所以大部分题目都是SQL相关的,有道并发解决问题,需要你提供技术解决方案。

  • 本次没有算法
  • SQL
  • 高并发解决方案:流量削峰的整体设计方案(高可用,一致性等方法考虑)

二面、技术面试

做完笔试题和个人基本信息的填报,紧接着就是二轮技术面试,面试官很和蔼,言语之间很有礼貌,所以交流的比较舒服和流畅。

  • 自我介绍

大部分面试流程一样,首先自我介绍,我主要是根据个人情况,工作经历,日常,性格等简单介绍了一下,也就是开场白。

自我介绍之后,也就进入了面试的正题,大致从基础,中间件,数据库等几个层次去面,题目还算接近开发,没有偏、怪、冷的这种刁钻题目。

  • JVM
  1. JVM运行时数据区(方法区、堆、栈、本地方法栈、程序计数器)  常规介绍
  2. JVM内存模型(堆)   MetaSpace,Old,Young(Eden,S0,S1)   JDK不同版本的对比
    1. 为什么去除永久代?  没有永久代,长期使用的对象存储等
    2. 内存分配比例,Eden,S0,S1这三者中的关系和垃圾回收顺序,垃圾回收的方法等。
  3. GC  
    1. GC的常用算法
    2. 垃圾回收器(G1等)  JDK版本升级过程中,垃圾回收器的演进
  • 多线程
  1. sync、volatile关键字实现原理
  2. sync的锁升级
  3. JMM内存模型(内存屏障等)
  4. Reentranlock的实现原理
  5. lock和sync的区别对比
  6. lock中公平锁和非公平锁区别,是怎么具体实现的
  7. 什么是AQS(抽象同步队列)
  8. AQS是如何基于CAS实现线程抢占锁的
  9. CAS的实现原理
  10. 原子性?可见性?volatile保证保证了原子性了吗?
  • 中间件
  1. Redis常用的数据结构,使用场景,数据结构的底层实现
  2. Redis为什么效率高?(单线程,基于内存)
  3. Redis是如何在单线程的前提下,实现高性能的呢? (NIO 多路复用)
  4. 什么是NIO,什么是BIO,什么是AIO,NIO的多路复用是什么?
  5. NIO的使用场景,Netty底层实现原理。
  6. Redis穿透,如何解决(布隆过滤器)?
  7. 什么是布隆过滤器?实现原理?布谷鸟过滤器与其的区别和选取场景
  • 数据库
  1. MySQL语句的执行流程(缓存,解析,预处理,优化器,执行计划,执行引擎,存储引擎)?
  2. 什么是索引,索引的实现原理。
  3. InnoDB,MyISAM的区别
  4. MySQL的B++Tree的落地形式
  5. MySQL索引的使用规则,如何解决慢SQL等
  6. 索引为什么能够提高效率

以上基本是技术面的大致问题,Spring源码,Mybatis源码,Dubbo,Zk,Cloud等原理没有涉及到。但是这些也基本是面试的高频面试题目

三面、项目面试

技术面,紧接这就是项目面试,经过技术面试的洗礼,接下来就是项目面试的考察。

  • 简历项目中,项目的整体项目介绍,设计模块,用到的方案技术。
  • 项目中的技术成长。
  • 项目中用到的技术的原理介绍(拓展)。
  • 项目中SQL的使用情况
  • 慢SQL的解决方案,如何查看执行计划,如何通过执行计划来考虑优化SQL的方向

四面、CTO面试

经过技术面试和项目面试,接着就是CTO的整体把控,CTO还是很有气场的,主要是对面试者的整体考察。

  • 自我介绍
  • 项目经历
  • 项目中的亮点,难点
  • 哪个项目对自己的帮助最大,成长最快
  • 从你认为的难点中考察Java基础(基于个人项目,不同的人可能是不同的)。
  • 什么是Spring的AOP,Spring是如何实现AOP的(动态代理)
  • 什么是动态代理?JDK的动态代理,实现原理,invoke方法?涉及到的参数?
  • 什么是ClassLoader(类加载器)
  • 如何通过切点进去切面?
  • 自己如何实现AOP切面编程?
  • 如果让你做一次技术分享,从熟悉的技术点中选一个自认为学习最好的(整个技术的全面考察)。

五面、人事面试

经过这么多轮面试,终于到了谈人生和理想的环节了,本人最喜欢的环节!!!

  • 工作经历
  • 是否在职?
  • 为什么离职?
  • 个人认知(对自己技术的评价)
  • 个人成长
  • 之前公司的薪资状态
  • 期望薪资

总结

总体来说,这次面试面试官都很平易近人,没有区别对待的感觉,很和蔼的跟你进行面试交流,你不会的问题或者错误的理解会对你答疑和纠正,也会化解尴尬,说拓展问题,不会可以理解。

技术方面,也基本都是JAVA相关的考察问题,个人答得还算可以吧。

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值