51信用卡/二面/java岗
早上11:30微信视频面试,投的是java。(下午有事,忙完就赶紧把面经发出来,可能中间有些遗忘了,大致是差不多的)
看帖子里都说没怎么问基础,都在怼项目或情景题,我这里和各位大佬不太一样,发出来供大家参考参考。
上来先自我介绍,把以前的项目经历和用到哪些技术都大致说了一遍,以前是搞c++的,在渣硕学校里搞过sdn、spark这些,比较杂,可能面试官不太感兴趣,没怎么问,交流下就过了。
注意,重点来了!后面全程抠java基础,被怼了差不多1个小时,上来第1个问题就把我整懵了。。。
1、知道java里Object的hashCode是咋回事吗?(真没想到会问这个,直接懵B了。。。)
2、布尔型的hashCode是怎么算的?怎么根据布尔型的hashCode来判断是不是同一个对象?(无语凝噎。。。)
3、hashCode在java里有哪些作用?(还不放过hashCode。。。)
4、HashMap里key的hashCode是怎么计算的?
5、HashMap的底层结构?
6、一个key-value对插入HashMap的过程?
7、HashMap中查找某个key的过程?
8、HashMap是线程安全的吗?怎样把它变成线程安全的?
9、ConcurrentHashMap是怎么回事?
10、知道哪些hash算法?
11、java线程同步有哪些方式?
12、知道锁吗?说说有哪些锁,有什么区别?
13、什么叫锁升级,讲讲过程?
14、synchronized和锁有什么区别?
15、java里有哪些对象是线程安全的?
16、有哪些创建线程的方式?
17、知道线程池吗?解释一下线程池构造函数中各个参数的含义?
18、说说4种线程池有啥区别,各自的适用场景?
19、看过线程池内部实现吗,说说你的理解?
20、接下来这个问题的原话表述我想不起来了,大致意思是,线程池中所有线程正在执行任务,又来了新的任务,问你知道有哪几种处理方式?
21、线程池执行任务有哪几种方式,各有什么区别?
22、单例模式中的单例有哪几种创建方式,详细讲讲?
23、知道java里有哪几种List,各自有什么区别?
24、知道java里有哪几种队列?take()和poll()有什么区别?put()和offer()有啥区别?
25、用过TreeMap吗,有什么特点,说说底层实现?
26、讲讲泛型,java里能创建泛型数组吗,为什么?
27、Object中的hashCode为什么被设计成int型,而不是long型?(这个和面试官讨论了一下)
28、思考2分钟,说说你关于gc的全部理解?有哪些回收算法,回收器,什么对象能被回收,回收时机?
(问题的顺序可能不是严格按照上述顺序,大致就问了这么多,中间可能有遗忘的)
整个过程基本就是问->答->追问->再答。。。全程下来有点懵,说实话,这是我春招以来java基础问得最广最深的一次,什么数据库、操作系统、算法、网络、项目统统没有,很诧异也很郁闷,第1个问题都没答上,中间很多问题也没答好,反正把自己知道的、理解的、能说的都说了,其他的看天意吧。
顺便说一下,我也是视频面的,今天没收到HR面,下午问了HR小姐姐,说可能后续再约HR面,这是还没挂的意思吧。。。(笑哭。。。)
#面经##实习##Java#