操作系统
- 线程和进程的区别?
- 进程切换为什么比线程更消耗资源?
- 进程的组成结构,进程的5种和7种状态模型?
- 进程间通信的方式?为什么很少提到线程间通信?
- 互斥、同步、异步的概念?
- 经典同步问题一:生产者-消费者的问题解决模型?
- java实现1个生产者10个消费者的场景
- 读者、写者模式怎么实现?
- 什么是堆?最大堆?最小堆?
- 怎么维护最大堆的性质?
- 处理器调度
- 如何进行堆排序?
- 什么是虚拟内存?
- 什么是动态重定位?
- 堆的应用:优先队列的四个关键问题?
- 什么是分段?
- 操作系统如何管理空闲空间?
数据结构
- 顺序表插入一个元素的时间复杂度?
- 写一个算法,将一个二维数组顺时针旋转90度,说一下思路。
- 如何判断链表有环?
- 如何反转链表?
- 链表和顺序表的区别,以及各自优劣?
- 队列和栈的区别?
- 二叉树的基本概念?