计算机网络
- TCP/IP卷一(一定要看,优先看17-24章tcp那块的内容,看完之后,对TCP的理解会提高很多)
- TCP和UDP区别,分别适用于哪些场景
- 三次握手和四次握手,是否可以两次握手,为何要四次握手?TIME_WAIT状态
- Get和post区别
- PAWS,几种定时器,close_wait状态。 必须能记住几张图,并且知道大多数细节
- TCP拥塞控制。
操作系统
- IPC
- PIPE
- 共享内存
- 信号量,介绍一下信号量和互斥锁
- Socket
- 服务器客户端通信
- 多线程
- 多进程模型
- IO多路复用
- select
- poll
- epoll
- 线程和进程有什么区别?
- 协议栈实现原理推荐 阿里陶辉 的博客 。网络编程基础推荐,游双的linux高性能服务器编程,最好理解全文。
Java
- 如何在Java中实现线程?
- java多线程会有同步的问题,讲一下synchronized和lock的区别?
- 知道cookie么?讲一下(cookie是重要考点,一定要可以讲的超级清楚)
- jvm:full gc,内存泄漏,CMS收集器
- jvm内存区域和GC,finalize方法,哪些对象可以作为GC Root
- NIO的DirectByteBuffer和HeapByteBuffer,同步和异步,阻塞和非阻塞
- ReentrantLock源码,AQS,synchronized实现,乐观锁和悲观锁,volatile,ThreadLocal原理,线程池工作流程
- HashMap和ConcurrentHashMap基本原理,扩容机制等
- jre和jdk的区别
- jvm内存模型。每个区什么用。区别。
- 讲下堆的作用。
- 堆的垃圾回收对象选择原则。
- 垃圾回收算法。谈到了年轻代和年老代。
- 年轻代怎么分。为何分为eden和s区。大小比例为何是1:8,还有别的区分方法吗?各个代的垃圾回收算法。
- 是否可以在static环境中访问非static变量?
数据库
- innodb和myisam区别?
- B+树性质
- 多列索引及最左前缀原则和其他使用场景
发散问题
- Linux命令相关,问有一个文件A.txt,里面有许多行,找出其中带关键字’B’的行,并统计重复度。我问了下重复度是指啥,他说,这样吧,假设每一行都是由空格分隔开的若干字符,若整个文件中,有2行的最后一个字符都是’10’,你就输出 “10” : 2。
- 假如在服务器上执行一个进程时,你发现服务器很卡顿,你会怎么查找原因。感觉这道题真有点坑,本来就有点蒙,针对你的一些回答,还会多问一些东西。
- 有8个小球,其中七个的重量是相同的,有一个较轻。给你一个天平,问秤几次能找出那个较轻的小球,若天平只能秤两次,又该怎么秤(这个问题当时居然没答出来,真是悲剧,后来回去再想了想,发现其实很简单的。。。)
参考面经
http://m.nowcoder.com/discuss/26140?type=0&order=0&pos=12&page=1
http://m.nowcoder.com/discuss/25665
https://www.nowcoder.com/discuss/25226
https://www.nowcoder.com/discuss/22089