前言:
成功的路上是孤独的,你要学会忍受住寂寞和坚持不懈,每天不停的去学习,去复习,去写代码,去看需求,去看视频,去研究和实际去写一些代码例子。千万不要三天打鱼两天都在晒网。有很多的人在自学的过程中自己放弃了自己,到头来都是失败。
对于Java面试经验有两点:
一,基础学好,Java的基础真的很重要
二,面试题目积累背诵好
为了更好的帮助大家成功的拿到自己想要的offer~,我在这里分享一些面试真实题目,希望大家背诵熟记好,这样你就会比别人多百分之九十的机会,机会都是留给有准备的人哦~
面试题:
bigo
bigo⼀⾯
第⼀⾯的话,我觉得⽐较基础,都是针对
Java
、
SQL
基础的⼀些问题,然后扩展了⼀下对
JVM
对应到⽣产
上的使⽤、调优经验,看是不是真的做过、解决过问题,要有思路。
内存泄露怎么分析?怎么知道整条内存泄露的链路?
⼀般⽅法,
jmap dump
出转储⽂件,然后通过
MAT
等⼀些⼯具来做具体的分析。
⽤的什么垃圾收集器?
GC
⼀次多久?线上多久⼀次
Full GC
?
垃圾收集器⽐较简单,背背书就可以了,然后
GC
的频率这个就是根据现在公司的场景举例⼦说明。
怎么进⾏
JVM
调优?
说了⼀点
JVM
调优的参数,使⽤之类,然后结合线上的⼀次问题回答了怎么发现问题,最终调整
JVM
参数
解决问题的过程。
项⽬⾥有⽤过
ConcurrentHashMap
吗?
ConcurrentHashMap
底层结构有了解吗?
这个⼋股⽂看书就⾏了,分段锁到
CAS+synchronized
改变,
get
、
put
、
resize
过程。
你知道
JDK7
和
8
之间的区别吗
说了下
Stream API
使⽤、
lambda
表达式,
HashMap
头插尾插的改变,
ConcurrentHashMap
实现⽅式
的变化。
⽤过
Stream
吗,讲讲
就根据平时使⽤说就好了,⽐较简单。
sql
优化的经历
也⽐较简单,平时⽤到的⼀些慢
SQL
优化的经历说下就⾏了,但是平时要有总结,不然的话就会东⼀棒
槌⻄⼀棒槌。
算法,链表相加
通⽤答案,⽤刷题⼤法。
bigo⼆⾯
⼆⾯会偏中间件⼀点,考察了项⽬的细节,会被问的很细,然后其他的问题都是看看书就知道了,虽然
都不难,但是还是要多看书、多总结才⾏。
深挖项⽬
项⽬⼀定要准备好,每个细节的点,有问题的地⽅要⾃⼰多思考,不然被问到了回答不了就很尴尬。
讲讲
ES
,
ES
⽂档数据太多了怎么办?
基本上把
ES
的所有点都讲了⼀遍,就差不多
OK
了,因为我做的搜索业务,所以这块的问题⽐较多。
RocketMQ
集群的原理,消息堆积怎么办,推拉模式优劣?
也是看书就⾏的,堆积的解决⽅案可以看我的
MQ
⽂章系列。
说下
Raft
协议?
也就说说主要⼯作原理,
Leader
选举、⽇志复制这些。
分布式
ID
的设计⽅案?
很多,雪花算法,国内美团、滴滴、百度开源的记得⼀两个就可以