完全二叉树、满二叉树
全排列算法,
HTTP协议
http和https的区别
http1.0/http1.1/http2.0的区别:
tcp的机制;
tcp和udp的区别:
tcp的三次握手,四次握手;
Linux中CFS进程调度算法的实现过程。
线程同步的方式,
互斥锁与信号量的区别。
Linux下的进程抢占。
如何防止进程饥饿。
redis
redis的lru淘汰算法的编程实现。
mysql;
mysql有几种索引,hash索引的应用场景,btree索引的原理;
用伪代码实现一下btree的插入操作,
mysql几种事务
jvm和多线程
jdk8的新特性;
讲一讲浏览器输入url到页面渲染成功,中间经历了什么?
讲一讲url经过dns协议获取ip后,pc是怎么路由到网关的。
java的线程池及原理。
https://www.cnblogs.com/zhaojinxin/p/6668247.html
线程之间是怎么通信的?
1.是通过共享变量,线程之间通过该变量进行协作通信;
2.通过队列(本质上也是线程间共享同一块内存)来实现消费者和生产者的模式来进行通信;
3.通过管道进行线程间通信:主要使用的是字符流(PipeReader\PipedWriter、) 字节流(PipedInputStream、PipedOutputStream)。
进程锁和线程锁的区别。
虚拟地址和物理地址的区别;
笔试:
1.循环数字链表找出最小的一段,包含全部数据。
2.hashmap用纯粹的线性空间实现。
3.现有若干台服务器日志数据文件,分别存在每台服务器从开机到关机时间段内对物理资源的使用量,请实现算法读入所有日志文件,
并以小时为单位,输出每一小时内所有物理资源请求的总和(需要考虑去重)。
4.两个有序数组,判断是否有重复元素。
5.生产者和消费者
6.大数相加
7.反转链表
8.二叉树的反转算法(不能使用递归)
9.手撕算法:一个二叉树变为双向链表 投机取巧的用了linklist,直接中序遍历把val存进去了。