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#