代码改变世界

阿里二面

2017-12-26 11:36  faunjoe88  阅读(294)  评论(0编辑  收藏  举报

(1)自我介绍,做过什么项目。

(2)java虚拟机的区域如何划分,每一个区的动能,这一块自由发挥。

(3)双亲委派模型中,从顶层到底层,都是哪些类加载器,分别加载哪些类?

(4)有没有可能父类加载器和子类加载器,加载同一个类?如果加载同一个类,该使用哪一个类?

(5)HashMap的结构,get(),put()是如何实现的?HashMap有哪些问题?

(6)ConcurrentHashMap的get(),put(),又是如何实现的?ConcurrentHashMap有哪些问题? ConcurrentHashMap的锁是读锁还是写锁?

(7) HashMap与HashTable的区别

(8)sleep()和wait()分别是哪个类的方法,有什么区别?synchronized底层如何实现的?用在代码块和方法上有什么区别?

(9)什么是线程池?如果让你设计一个动态大小的线程池,如何设计,应该有哪些方法?

(10)什么是死锁?JVM线程死锁,你该如何判断是因为什么?如果用VisualVM,dump线程信息出来,会有哪些信息?这一块问的很多....问的我懵了. 因为并没有实际操作过 = =

(11)查看jvm虚拟机里面堆、线程的信息,你用过什么命令?我只用过图形界面VisualVM。。。

(12)垃圾回收算法有哪些?CMS知道吗?如何工作的?

(13)数据库中什么是事务?事务的隔离级别?事务的四个特性?什么是脏读,幻读,不可重复读?

(14)数据库索引的结构有哪些?我说B树和B+树,他说只有这两个吗。我又说全文倒排索引。然后介绍B+树的结构。

(15)数据库中的分页查询语句怎么写?

(16)什么是一致性哈希?用来解决什么问题?

(17)Redis的存储结构,或者说如何工作的,与mysql的区别?有哪些数据类型?

(18)项目中用到redis,为什么选用redis,了解其他NoSQL数据库吗?在你的项目中是如何运用redis的?key是什么,value是什么?

(19)归并排序的过程?时间复杂度?空间复杂度?

(20)你平常用什么排序?快速排序。说说在那些场景下适用,哪些场景下不适用。

(21)你在项目中做什么?因为我用到Solr,他就问我Solr是如何工作的?