四个⽉的⾯试准备,⽹易三轮⾯⾯试,成功拿下offer(⾯经奉
上)
在拿到⽹易offer之后,他发了这么⼀条朋友圈。其实我看到之后⼼中有很⼤的感触:在⽬标达成之前,我们会处于⼀种⼗分煎熬的状态-----我们会怀疑⾃⼰的能⼒是否与公司要求匹配、会怀疑⾃⼰坚持的⽅向是否正确、会怀疑⾃⼰的运⽓。但是在⾃我怀疑的同时,我们也不敢在学习上放松对⾃⼰的要求-----我们坚持刷题、做项⽬、刷⾯经、投简历。但是在收到offer邮件的那⼀刻,在听到⼿机“叮”了⼀声打开发现是意向公司的offer短信的那⼀刻,感觉⼀切都释然了。我们热泪盈眶,我们⼼花怒放,因为我们觉得⼀些的坚持和努⼒都是值得的!
⼀⾯:
⾃我介绍
实习期间项⽬相关,然后转到Spring
Spring 在项⽬中⽤了哪些特性,IOC,及Kafka监听接⼝相关实现。
ThreadPool,Jdk原⽣线程池,四个参数详细解释原理,当线程池中poolSize达到corePoolSize且阻塞队列已满,再来⼀个任务,如何处理
多线程实现同步的⽅式、互斥同步、⾮阻塞同步
解释Synchronize关键字的锁优化技术,偏向锁,轻量级锁,重量级锁,这些锁是如何存储的,偏向锁撤销升级为轻量级锁的过程,结合源码解释
volatile关键字语义,内存屏障如何实现,JMM对内存屏障做了哪些优化,volatile的语义增强
指令重排序相关及其happen-before时,数据依赖等
HashMap底层数据结构,如何处理hash冲突,为何HashMap的⼤⼩要设置为2的n次幂,为什么IndexFor⽅法⾥,需要hash&length-1,为什么HashMap允许null值,resize()过程,多线程下resize为什么会出现死循环,详细解释,结合源码
HashMap jdk1.8之后,为何转链式结构为红⿊树,为何长度为8的时候,才转成红⿊树
NIO了解吗
不了解,属于⾃⼰的知识空⽩区域。但是⾯试官⽐较友好,并没有抓着这⼀块不放。
阐述⼀下快排基本原理。easy
⼿写单例模式。分别问了多线程情况如何处理,什么时候可以破坏单例模式,怎么防⽌单例模式被破坏
JMM内存模型,如何保证缓存⼀致性。
⼆⾯:
⾃我介绍
介绍实习项⽬
Kafka监听接⼝如何实现,为何采⽤Kafka⽽不是⽤其他消息队列
实现Kafka监听接⼝的时候,遇到哪些坑,采取了哪些措施或者解决⽅案
Kafka的基本概念,及特点和优势。offset+zk+持久化分区⽇志顺序存储之类的
MySQL了解吗,介绍⼀下InnoDB
JVM了解吗,介绍⼀下,讲了垃圾回收机制
Full GC和Minor GC区别,及各⾃的触发条件
说说CMS垃圾回收器,及其适⽤场景
HR⾯:
HR⼩很漂亮
HR⼩真的很漂亮
问题都⽐较中规中矩,没有⼀开⼝就让我讲⼀个冷笑话
有没有实习
在哪⾥实习
负责什么系统
为什么要让我独⽴负责
⼿头有没有其他offerjava核心技术有哪些
offer薪资有多少
哪⾥⼈以后打算在哪⾥发展是否接受⼊职前实习
是否接受996(然后后来才知道我们部门并不是996)
总结:
问题都⽐较的基础,但是想要回答好却并不容易,因为很多问题属于你想答得很深就可以深不见底,想答得浅⼀点⼀两句话就讲完了的那种。在平时学习的过程中,⼀定要注重培养⾃⼰的知识体系,不要只会死记硬背⼀些所谓的⾯试题标准答案。⾯试其实是⼀件量体裁⾐的事
情,很多东西(包括某些专业知识)并不存在⼀个⾮常量化的标准,重点是如何在⾯试官⾯前展现出⾃⼰独特的⼀⾯。假如在回答某些问题时你直接把从⽹上背的“标准答案”说出来,⾯试官就会觉得你这个⼈对知识没有⾃⼰的理解。⾯试官可是⾝经百战了,什么样的候选⼈没见过?所以想要在⾯试中和⾯试官谈笑风⽣,⼀定要在踏踏实实打牢专业基础的前提下,再努⼒提升⾃⼰的编码能⼒。如此,你想不拿⼀个好的offer都难!
学习⽅法:
以下所展⽰的全部资料,均可以免费分享转发+关注,然后私信回复“电⼦书”即可。
(1)多刷题
⾃⼰多刷⼀些⾯试题是⾮常重要的,即使是在⾃⼰不需要⾯试的情况下,也要经常了解现在的⼤⼚⼩⼚⾯试都会问⼀些什么?现在⽐较流⾏的技术是什么等等诸如此类。那么哥们是如何刷题的呢?刷题主要分为Java技术以及算法两⼤类,搜集了⽬前⽐较新的⼀些题册,包括【Java核⼼知识】以及【算法刷题】,如算法⽅⾯就有LeetCode。
Java企业笔试题集:
(2)多看看技术⽜的实战书
实际上很多⼈⽬前的⼀个状态是缺乏实战经验,或者说是不知道该如何上⼿实战。那么,看⼀些技术⽐较过硬的⼤⽜写的实战书籍对⾃⼰是很有好处的,多少能够学习到⼀些实战经验。⽬前我⼿上整理到的实战书籍也算是⽐较全⾯,包括Spring全家桶、JVM、并发编程技术、Redis相关、MySQL调优、Tomcat、ZooKeeper等⾼级技术。
(3)多交流,多思考
最后要强调的重点就是——多交流,多思考。现在很多程序员陷⼊⼀个怪圈,整天只会在办公室⾥机械的⼯作,实际上程序员要想有很⼤很明显的进步,交流是少不了的。那么怎么结识⽐⾃⼰厉害的技术⽜呢?实际上渠道有很多,哥们个⼈的做法是:①看⼀些技术直播,在直播间交友;②加⼀些技术性的交流,多交流问题;③参加⼀些线下活动,如⾯基、研讨会等等。
写在最后
学习如攀登,虽然有⾝⼼的疲惫,但更有沿途的优美风光,更⽆论登顶之后的极⽬远眺。之后,你总会感叹曾经的付出是值得的。
以上内容中所有的学习资料、⾯试资料,均可以免费提供,希望⼤家⾦三银四⾯试顺利,拿下⾃⼰⼼仪的offer!
答案获取⽅式:资料获取⽅式:点击链接《》,覆盖了Java核⼼技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。