前言:

为帮助开发者们提升面试技能、有机会入职。特此分享一些入职技巧


正文:

一面

1、Spring 原理、Spring IOC、AOP

说一下Bean 如何加载、如何初始化以及如何注册到IOC容器中的详细过程, 涉及BeanDefinition、BeanFactory也深入细节聊一下。

2、一个请求过来在Spring中发生了哪些事情?

这个问题不妨把一个请求过来在TCP层面上建立连接、操作系统如何处理连接、Web容器接收到连接对象后做了哪些事情、Spring 如何对接收到的请求进行处理都说一下,当然最终还是落在Spring 容器内部如何处理一个请求,这个过程一定要说清楚,需要体现细节。

3、手写一个栈,实现 push,pop方法,以及 max(获取最大的元素) 方法,要求时间复杂度为 O(1)

4、JVM内存结构

需要你能画出JVM内存结构的图,画出方法区、堆、程序计算器、虚拟机栈、本地方法栈,并说出每一个部分具体是什么作用,比如,哪些是线程共享的,哪些是线程独享的,哪些地方存放了什么数据,为什么会这样存放,哪些虚拟机参数对这些空间大小是有影响的,可以如何配置。这些都比较常规。

5、手写一个基于懒汉式的双重检测的单例。

(1)单例有三个比较关键的点,一是私有构造方法,避免外部new出对象;二是保证唯一性;三是提供一个全局访问点。

(2)另外,懒汉式双重检测的实现方式 有三点需要注意的地方,一是全局访问点必须是静态的,外界使用可以通过类直接调用,二是在进入锁之后还需要校验,三是保存单例对象的私有变量一定要用volatile修饰,这个地方可以多说一些,比如volatile防止指令重排序,保证内存可见性(JVM层面和CPU层面可以分别说)。

6、HashMap相关

(1)在jdk1.8之后,HashMap除了数组+链表之外,引用了红黑树。需要说明对于引用了红黑树的 HashMap 如何put一个元素,以及链表是在何时转化为红黑树的。比如,首先需要知道这个元素落在哪一个数组里,获取hashcode后并不是对数组长度取余来确定的,而是高低位异或求与来得到的。这个地方首先得知道异或求与是做什么样的运算的。在此我向大家推荐一个架构学习交流圈。交流学习指导伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

(2)之后说一下在HashMap中的实现,比如hashcode无符号右移16位后和原hashcode做异或运算,这相当于把hashcode的高16位拿过来和hashcode的低16位做异或运算,因为无符号右移后前面说的16位都补零,这就是前面说的"高低位异或“,进而是“求与”,和谁求与呢,和数组长度减1 求与。说到这里起码能够证明你是看过源码的,接下来说说你的思考,比如我们知道对于hashmap 初始化容量决定了数组大小,一般我们对于数组这个初始容量的设置是有规律的,它应该是 2^n 。这个初始容量的设置影响了HashMap的效率,那又涉及到影响HashMap效率的主要因素,比如初始容量和负载因子。

7、为什么要引入红黑树?

8、如何在红黑树中插入一个节点。

9、链表是如何转换为红黑树的?

10、对ConcurrentHashMap的理解,⽐如在什么地⽅会涉及到线程安全问题以及ConcurrentHashMap是如何解决的?

11、JVM四种引入类型

这个问题比较简单,强引入、弱引入、软引入、虚引入,说一下它们各自的特点和GC对它们的不同处理方式,再说一下常用的应用场景或者jdk的实现中对它们的使用,比如,ThreadLocal 的静态内部类ThreadLocalMap,它的Key是弱引用的,也可以说一下 在你的理解中 为什么它是弱引用的,假如不是会怎么样。

12、SpringBoot 启动过程

这个主要是从它基于Spring的事件发布和监听机制开始说起

二面

1、类加载过程

加载、链接、初始化,链接又分为验证准备和解析,每一个阶段是做了什么要说清楚。Object a = new Object;这行代码做了哪些事情,需要从类加载开始说起,所以一定要清楚每一个环节做了哪些事情的,否则这个问题不可能说清楚。

2、JVM层面对指令的优化,以及在哪些时刻我们需要避免它做这样的优化

3、在new一个对象的过程中如果指令重排序了会导致什么结果?

4、maven的熟练程度

5、Linux命令⾏的熟练程度

6、消息队列的熟练程度;Kafka分区,如何分区等等

7、Netty;从NIO开始说,再说说Netty的实现⽅式,以及它除了IO之外还⼲了哪些事情。

8、手撕代码。牛客题霸上的原题,可以去看看:NC29 矩阵查找

三面

1、根据过往项目经验依次介绍业务,解决了什么问题,架构是什么样的,以及你在其中做了哪些⼯作。

2、你有什么问题想问面试官的?

我问了一下公司业务,团队构成,技术栈,以及所应聘的这个岗位大概做哪些工作。

四面

HR面试。会考察到些软技能、个人成长、职业素质,也会问一下期望薪资。

很多人感叹“学习无用”,实际上之所以产生无用论,

是因为自己想要的与自己所学的匹配不上,这也就意味着自己学得远远不够。无论是学习还是工作,

都应该有主动性,所以如果拥有大厂梦,那么就要自己努力去实现它。

以上学习资料均免费放送,最后祝愿各位顺利拿到心仪的offer

最新面试:快手社招Java岗面试经历分享相关推荐

  1. 杭州中国移动java待遇_【中国移动杭州研发中心Java面试】移动杭研社招java中级面试-看准网...

    移动杭研社招java中级面试 移动杭研的面试比较紧凑,一个上午就面完了.到了后先在前台登记,填写个人信息,和党性测试,党性测试有点像以前点政治题,知道不知道随意填了下,前台妹子说这个不要紧的.然后一面 ...

  2. 冷暖自知!4年Java小伙收获美团Offer,分享他的社招Java岗4面面经

    美团点评社招java一面 做一下自我介绍吧,简单说一下你的项目? 有遇到过内存泄漏吗?你们是怎么解决的?这个前阵子确实遇到过一次,还算运气比较好. java的基本类型有哪几个?String是不是jav ...

  3. 双非二本的2019春招Java岗面试心得

    前言 1. 已拿途牛天津研发部Java研发岗Offer2. 追一科技等hr面ing 也许对于大佬来说 这个offer不怎么样 不过对于我这个0offer菜鸟来说已经是来之不易了. 2019.2.20到 ...

  4. 华为OD社招Java岗面经,已OFFER

    [一面] HR跟我沟通说360的分数很不错,我内心还挺高兴,结果估计是华为对我期望太高,一轮面试难度很高,GG 面试官问的知识点比较分散,而且相对挺深入的,我无言以对,尴尬ing. 1.对类加载机制有 ...

  5. java MySQL mq_蚂蚁社招Java岗面试分享(MySQL+RabbitMQ+Spring Boot)

    今天收到了一份面试蚂蚁的投稿 群友还是"牛逼"啊!下列只是群友提供的一部分,后续将会继续更新. MySQL相关 1.Mysql的技术特点是什么? 2.Heap表是什么? 3.Mys ...

  6. 网易社招Java面试(附详细答案)

    今天看到网易社招Java岗位的面试题,大致浏览了下,发现还没有答案出来,所以自己就搜索整理下,将答案分享出来,由于水平有限,如发现错误或者疑问,欢迎斧正和讨论,大家一起进步 1. redis有哪几种数 ...

  7. 老公下班不回家,竟在公司硬肝这份2022最新大厂Java岗面试宝典

    老公下班不回家,竟然在公司硬肝这份2020最新大厂Java岗面试宝典 2022-03-16 20:14·马小聪 前言 过去2年我持续分享了BAT TMD为代表的大厂最新面试题目,特别是蚂蚁金服.天猫. ...

  8. 【对号入座】15.2k-37.4k的Java岗面试真题,应届生秋招和老java跳槽面试都适用

    故事的开始 最近有很多人问,有什么方法能够快速提升自己,通过阿里.腾讯.字节跳动.京东等互联网大厂的面试,我觉得短时间提升自己最快的手段就是背面试题,最近总结了Java常用的面试题,分享给大家,内容包 ...

  9. 熬夜两天盘点2022年Java岗面试被问得最多的100道题

    刚刚过去的秋招也是有人欢喜有人愁,不知道在座的各位有没有拿到心仪的offer,先恭喜一下成功入职理想公司的同学,秋招面试不顺的同学也别气馁,咱收拾好心情,春招再战! 这么久没更新,为了体现我的诚意,在 ...

最新文章

  1. 用74l138实现一个一位全减器_用pygame实现一个简单的五子棋游戏
  2. vlc rtsp流 转 http播放视频
  3. sql月度分组_SQL Server按月分组
  4. Logstash配置语法及相关命令
  5. posix自己搭建消息队列_蘑菇街消息系统上云实践
  6. 2018-2019-2 网络对抗技术 20165334 Exp7 网络欺诈防范
  7. 扩展BSGS-传送门
  8. BZOJ3557: [Ctsc2014]随机数
  9. 完美解决远程电脑浏览器空白显示问题
  10. VB→C++→C#→VB.NET,语言的共性和个性
  11. 基于 KNN 和 人体关键点的动作分类 - Pose classification
  12. Python基础---文件
  13. 干货 | 深度学习之卷积神经网络(CNN)的模型结构
  14. Python基础之函数,面向对象
  15. POE交换机全方位解读(下)
  16. input设置type为number,禁止输入e等符号,去除上下箭头
  17. iOS开发之模仿qq通讯录源代码!
  18. win10专业版激活(试试水)
  19. 台式计算机主板接口识别,解决方法:如何连接计算机主板上的接口?所有主板接口插头功能功能识别图...
  20. 欢乐拼购商城APP系统软件模式解析源代码

热门文章

  1. Adaptive AUTOSAR Technology Sharing(一)
  2. 部分键盘删除键无法响应onkeyListener事件,包括google原生键盘
  3. nginx报错400
  4. Markdown编辑神器Typora使用教程
  5. Kotlin list在遍历时删除元素方法汇总
  6. Photoshop和Halcon中的极坐标变换
  7. mysql 约束0怎么设计_java mysql约束与设计
  8. 最课程阶段大作业06:U度节能平台控制系统
  9. 「WSGI」WSGI概述
  10. 京淘项目模块分析:用户登;三级列表展现