您的位置 首页 java

这是我见过最好用的java面试分享,JVM+多线程+数据库+分布式

导读

这篇文章呢,整合了一下四位朋友面试阿里蚂蚁金服全部offer的经历,时间段分别是8月初,8月中旬,9月中旬。10月中旬以下也是我整合起来的面试题,和面试经验,我希望这些能帮到大家面试这些大厂能有所帮助,其实讲白了,面试经验只是一个借鉴,不能作为具体参考,但这些经验能从重考虑大致方向,接下来说说下4面阿里面试(三面加HR面)

一面

开头还是先来自我介绍,完了面试官就开始发问,一般是40分钟到1个小时不等。不过值得注意的是,他们那边一般不直接回答对还是错,最终发现呢,阿里的几轮面试,都是这样,他们一般只听,偶尔追问。

首先确认对阿里的意向度;其次面试官会针对你曾经做过的项目来做具体技术的交流,你对项目细节是不是掌握到位,以及 Java 技术基础和原理掌握程序,比如并发编程以及数据库和 JVM 三个方面,也会交流到 分布式 线程池 的实现等等(重点考察有没有深入钻研技术和技术上的亮点);

  1. 首先,针对岗位问一些专业性问题,因此你要把该岗位要求的专业技能基础看一遍。
  2. 然后,针对你的简历,问做过的一些具体的case,因此你要把自己写在简历上的case都复盘一遍,对自己做过的工作内容进行总结,好好分析不足点和需要进步的地方,并且梳理出自己的优势。(如果带上你以前工作的数据和作品等等,会加很多分)
  3. 再然后,问你对公司、行业的了解,因此你要在面试之前通过各种渠道尽可能的了解公司的历史,业务、当前发展阶段和规划,了解行业的历史、远景和竞争对手。
  4. 再再然后,问你对该岗位的理解和职业规划,因此你要尽量了解你的岗位,并且提前做好未来大致的职业和人生规划。
  5. 最后,就是瞎聊,他会跟你很随意的聊一些话题,来观察你的性格特质和待人接物,确保你能很好的融入他的团队。

不知道的直接说答不上来,就会继续一个题。

一面完了,叫你等消息,基本凉凉,很多公司,等消息基本就是没消息。

二面

主管面:根据项目深入的了解技术实力,了解你的知识面、问题解决能力以及技术灵活运用能力,也通过这一过程考察团队合作能力、学习主动性和创新性,可以挑选2-3个做过的有典型性的项目做一个仔细技术回顾和自己独到的理解(这是加分项,重要);

总结:

其实讲白了主管是你TL(直接领导)的上级,他对具体的业务并不了解,所以都是问一些基础,来帮TL把把关。基本上只要TL想要你,主管都是放行的。而且只要你能把上一轮面试的东西准备好,这一轮就没什么问题,只要你对人家表示尊重。

三面

高管复试,会涉及到相关的技术问题,大部分是对你的整体价值观做宏观的把控(比如上进心,责任心,心态,工作激情等);

整个过程要长一些,大约一个小时,完了还聊了一些个人及生活情况。

总结:

整个技术面下来,感觉好像面试有迹可循。

一面一般是基础问题。二面偏向于做的项目与框架。三面比较全面,都会问到。如果会聊天,现场面还会聊技术之外的一些东西。

顺便说一下,有开源项目或者技术博客,熟悉源码加分。

四面HR面

HR最终面,进入最后一面,一般这种情况反而有些紧张,一方面非技术类的问题是大家并不擅长的,再者应该大家早有耳闻阿里HRBP有”一票否决权”!所以还是打起了十二分的精神认真对待,其实过程比想象中的顺畅很多,就是从大方向了解一下面试者的心态、抗压能力、未来规划以及对阿里的意向度(用阿里的话说,即价值观的匹配度);

总结

HR面: 这轮面试是薪酬福利面试,就是跟HR博弈,争取在该级别范围内拿到最高的薪水。这些就好商量了,(价值观匹配度达到过关什么都好说)总体的来说HR面是最容易的。健谈的人一般都很容易。当然我不是一个健谈的人,当时第一次是倒在第三面,第二次差点在HR面翻车,因为实在不健谈。哈哈。面试阿里第二次才拿到offer实在有些惭愧。

接下来是我总结的部分问的方向和问题,希望对大家能有所帮助!

因为头条篇幅原因末尾有答案奥,关注转发私信“答案”免费获取哟

Java基础:

  1. hashmap结构;什么对象能做为key
  2. hashtable ,concurrentHashMap,hashtable比较
  3. String,StringBuilder,StringBuffer
  4. 对象的深浅复制
  5. Java语言中float和double数据类型的精度是多少?它们在内存中是怎么存储的?和Decimal有什么区别?
  6. 为啥有时会出现4.0-3.6=0.40000001这种现象?
  7. 不借助四则运算如何实现加法
  8. char可以存汉字吗,底层怎么存的
  9. Java的字符集是什么
  10. 什么是值传递和引用传递?
  11. 数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用Array而不是ArrayList?

更多解析:

多线程

  1. wait,sleep分别是谁的方法,区别
  2. countLatch的await方法是否安全,怎么改造
  3. 线程池参数,整个流程描述
  4. 背后的底层原理aqs,cas
  5. ThreadLocal原理,注意事项,参数传递
  6. 还有Java的锁,内置锁,显示锁,各种容器
  7. 及锁优化:锁消除,锁粗化,锁偏向,轻量级锁
  8. 如何线程安全的实现一个计数器?
  9. 请说出你所知道的线程同步的方法
  10. 线程数和内核数量的关系
  11. 线程中哪些是私有的?哪些是共享的
  12. 线程有多少状态,画出状态图,状态之间如何转换
  13. sleep() 和 wait() 有什么区别? 为什么wait是Object的方法,sleep不是?wait方法底层是如何实现的?stop()和suspend()方法为何不推荐使用?

jvm:

  1. jvm内存模型,
  2. jvm问题工具,jps,jinfo,jmap…
  3. String a=“a”;String b=“b”; 问”a” “b”等不等于a b
  4. Java中堆栈的区别。堆栈的增长方向有哪些不同?
  5. jvm最大内存限制多少 ? 在一台16G内存的机器上,JVM默认内存空间多大?
  6. jvm是如何实现线程?
  7. 了解过字节码的编译过程吗
  8. eden区,survial区?
  9. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?(垃圾回收)
  10. JVM回收 算法 和回收器,CMS采用哪种回收算法,怎么解决内存碎片问题? 为什么年轻代要用复制算法?并发标记阶段处理速度慢的原因可能是什么。怎么进行优化
  11. 阐述GC算法 , 那并发量很高时,使用哪种算法?

数据库:

  1. 最重要的索性及底层实现
  2. 索性失效的场景
  3. 最左原则
  4. 查看执行计划
  5. 及carndiation
  6. 然后是锁的类型,行级表级
  7. 悲观乐观锁
  8. 解释数据库事物及特性
  9. 隔离级别
  10. 及实现,redo log .undo log
  11. bin log主从复制
  12. mvcc,Next-Key Lock

分布式:

  1. 问了CAP,跟base
  2. zookeeper 满足了CAP的哪些特性,paxos
  3. 缓存穿透怎么解决
  4. redis 的io模型
  5. 如果保证redis高可用
  6. redis是单线程还是多线程
  7. 线上cpu占比过高怎么排查
  8. 一致性hash
  9. 分库分表

spring:

  1. ioc , aop 原理
  2. ioc初始化流程
  3. springmvc的流程
  4. springboot,spring cloud相关组件
  5. springIOC原理?说说Ioc容器的加载过程Spring IOC底层存储结构 ? 自己实现IOC要怎么做,哪些步骤?
  6. aop的应用场景?
  7. AOP的原理是什么? 除了动态代理还有什么?
  8. 拦截器和AOP的关系 Spring拦截器的底层是怎么实现的
  9. 你如何理解AOP中的连接点(Joinpoint)、切点(Pointcut)、增强(Advice)、引介(Introduction)、织入(Weaving)、切面(Aspect)这些概念?
  10. Spring支持的事务管理类型有哪些?你在项目中使用哪种方式?

更多面试解析我都整理成一个文档和一个PDF了,如图。

项目

友情提醒一下,对于做过的项目,最好梳理清理,可能会叫你画各种图。

总结

能问的基本就是这几个大致方向,如果你方面掌握的很不错了,并且同时又是个很健谈的人,我相信阿里面试对你而言也就是平常遇到BUG征服了就好了。

不过阿里的确是程序员的金字塔呀,在这种地方,你会觉得自己真的如此渺小,以前引以自豪的能力,在这里面一切都像新手一样,什么 写个框架无压力的人很多,随意修改JVM无压力,数据库也是。学习圣地,毫无疑问!每个程序员都应该有这么一个梦想,(也不一定是阿里,至少定个目标)无论你现在是否技术在什么程度,至少从现在开始,踏上自己的脚印!

最后

花费了大量的时间整理了近500题(全部都有答案解析) 关注小编+转发文章+私信 【答案】 获取这个PDF资料哟!

还有更多资料包含Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。相信对于已经工作和遇到技术瓶颈的码友,在这里会有你需要的内容。谢谢!

文章来源:智云一二三科技

文章标题:这是我见过最好用的java面试分享,JVM+多线程+数据库+分布式

文章地址:https://www.zhihuclub.com/196009.shtml

关于作者: 智云科技

热门文章

网站地图