1,一开始肯定是自我介绍了。
2,在自我介绍中讲了自己的学习的方式。面试官就问我你印象中学习哪些知识点时一开始遇到了疑惑,然后通过自己的查找资料解决并理解了这个问题。我说了Java IO流中的阻塞式方法。因为我在刚接触IO流时,在小项目中因为阻塞式的方法,花了半天时间去解决这个问题。
3,问我除了BIO还了解哪些IO,答:NIO,马上问,NIO和BIO的区别
4,接着问了设计模式,答:单列。饿汉式和懒汉式的区别,应用场景,为什么有饿汉式和懒汉式两种设计,手写 DoubleChecking,解释DoubleChecking是怎么提升效率的。
5,还知道哪些设计模式,答:工厂模式。但是了解的不多,就简单的描述了下,跟面试官明说就知道这么多。
6,讲讲Java的垃圾回收的机制,答:新生代和老年代的回收方式,说了8:1:1的新生代标记-复制算法。又问,为什么要用标记-复制算法,答:为了整理得到一块连续的内存。再问,得到连续的内存又有什么用,当时没打上来。。。(后来查了一下,是为了放置需要大块空间的对象时,比较方便,这样不会因为碎片化而去再次清理内存)。在心里为自己唱首凉凉。
7,那你再说操作系统的内存管理吧。emmm,我不知道该怎么开口,沉默~~~。面试官补充道:说说虚拟内存。答:一顿 balabala。
8,讲一下共享内存,操作系统是如何实现的。它在什么位置。就记得是用来进程通信的,所以直接说了句记不得了。
9,临界资源说说吧,如何确保临界资源的访问安全。答了信号量机制。
10,说一下索引,为什么要用索引,哪些列需要加索引,索引除了牺牲空间在时间上的缺点。时间上的缺点当时没答出来。。。