数据结构
红黑树 pk 平衡二叉树
hash 表处理冲突的方法
算法
手写
最长无重复字符子串
链表的增,删,查,逆序
数组实现队列,要求可以动态扩展,保证较高的空间利用率(即 pop 出队的空间可以重复利用)
思路
有序数列找最先重复的数? 无序数列?
不用辅助内存,交换两个数(异或,加和)
根据起点,终点查询地铁路线?得到路径后如何判断某个节点是否是换乘站?
LRU 缓存实现
快排复杂度?什么时候最坏?如何避免最坏?如何优化快排?
x 轴上有 n 个点,已知每个点的位置 p 和速度 v(正表示向右,负表示向左),每当两个点相碰就消失,问最后碰撞的时间 t 和两个点
n 个无符号整数找第 k 大,要求最坏 O(n)时间复杂度,O(1)空间复杂度
游戏 + 场景
n 条水平的平行线和 m 条垂直的平行线可以围成多少个矩形?(提示:组成一个矩形需要什么条件)
网盘如何提高服务器硬盘利用率
道具可以修复,升级,需要消耗时间,完成时要弹出提示,每 1/30 秒会刷新一次界面,怎么判断是否要弹出提示?
一张地图,有 n 个十字路口,1 个自由移动的玩家,要求随机分配 m 个道具到十字路口上,满足以下条件
- 每个道具距其他道具或玩家的距离不得小于 h
- 道具被玩家捡到之后,会重新放置到随机的十字路口
- 每个十字路口只能有一个道具
c++
c 和 c++ 的区别
static 的特性
友元函数
多态原理?析构应该注意什么(virtual)
构造函数中可以调用虚函数方法吗
dynamic_cast
const char * fff(const char* const t) const 每个 const 的含义
STL 用过哪些?vector,set 的实现,介绍一下红黑树
写一个简单的服务端客户端伪代码,哪里可能会阻塞,怎么解决阻塞的问题?
对于 char,int 这些怎么实现 sizeof(提示:指针)
c++ 怎么分配内存,如果分配不成功会发生什么?怎么处理?不捕获异常能不能直接处理
c++ 内存分为哪些区
左值右值
内存池?为什么需要内存池?怎么实现?
大端小端
面向对象
面向对象的原则有哪些?
为什么说组合优于继承(推荐 Effective in Java)
一个非面向对象的语言如何实现面向对象的特性?(其实就是深入剖析 c++ 与 c 的不同)
java
java 修饰符有哪些
ArrayList,LinkedList 区别
接口,抽象类区别
list 删除符合条件的元素的方法有哪些?可能出现的问题?
object 方法
线程同步的方式
volatile 能用于多个写多个读的线程吗,一写多读呢?添加了那些内存屏障,内存屏障有哪几种
单例模式中为什么加 volatile
synchorized,可重入锁的区别
创建线程的方式有哪四种? Callable 怎么获取返回值的?
线程池
HashMap 原理,如何用 key 查到 value
hashmap 使用注意事项,可能会出现什么问题
- 如重写 hashcode(),equals(), 修改了 key 后去 get 或 put,多线程
hashmap 为什么数组容量是 2 的幂
ConcurrentHashMap 实现 分段锁 锁的粒度 CAS
string stringBuffer stringBuilder
IO BIO,NIO,AIO
java1.8 新特性
什么时候会出现栈溢出
java 字符编码类型?几个字节?utf-8 呢?8 什么意思?
什么时候会内存泄露?
JVM
内存回收算法 GC root 有那些
栈上的内存怎么回收(作用域 jvm 操控)
强软弱虚 虚引用有什么用
类加载过程?初始化都做了什么?为何要把符号引用转换为直接引用
方法区存在哪里? 元空间?
.class 文件的组成
静态绑定和动态绑定
Spring
AOP
为什么使用 SSM
为什么选择单例?什么时候选择单例?(无状态或状态不可变)
android
不止一次被问可以演示下你做的 app 吗?然后问你自己做的怎么都不用就很尬,所以如果有比较满意的 app 可以演示给面试官
四大组件
粘性广播,有序广播
显,隐式 intent intent-filter
service 启动方式 什么时候会停止
如何避免接收伪装广播
耗时操作怎么做? Handler 中可以进行耗时操作吗? HandlerThread?
Handler 机制
如何在其他线程使用 Looper
Handler 内存泄漏
binder 机制 AIDL
自定义 view(左边一张图片,右边上下两栏文字,不用组合 view)
自定义 view 的方式, 怎么自定义 view 属性
view 事件分发
px,dp 区别, 屏幕适配
material Design 有用过吗
fragment 知道吗
移动的动画有几种实现方式 平稳滑动的动画怎么实现
scroll 用过吗
SQLite 怎么使用,数据库有几种使用方法,可以用 ContentProvider 吗
性能优化
电源管理
数据库
写一条多表联合查询语句,谈谈怎么去优化
数据库查询优化有哪些手段
数据库索引的种类和实现
复合索引 最左匹配特性
索引失效原因 like '%...' 为什么会让索引失效
事务 隔离级别
数据库多个线程修改查询怎么保证一致?
数据库 join 怎么实现的
数据库死锁
计网
HTTP 报头,状态码
tcp 三次握手,四次挥手
断点续传
tcp 连接如果客户端崩溃服务端客户端都是什么状态
MTU,MSS 是什么
客户端发送 fin 后如果还有消息未处理会发生什么
客户端什么情况会出现很多 time_wait
在浏览器输入 url 回车到页面显示都发生了什么?
线程安全
写代码:一个生产者消费者(面包,厨师,顾客)
写代码:四个线程输出 15 次 abcd
主线程写一个 buf,子线程去读,怎么做?读写时候的游标更新可能会出什么问题?怎么解决?
linux
字节流和字符流的区别
阻塞,非阻塞,同步,异步
进程通信
信号安全
io 写操作之后会立刻发出去吗
tcp 连接 Server 有两个队列,哪两个
io 多路复用
select,poll,epoll 区别
前端
为什么异步效率高
跨域 域的概念
事件阶段 捕获和冒泡区别
休眠怎么实现
事件多怎么优化
nodejs 为什么加载模块用同步
询问面试官
除了 hr,不要问薪资,福利等
不要问应聘或岗位以外的问题,可以问技术栈,技术氛围,职业评级与发展空间等等
最后可以问一下面试评价
来源: http://www.jianshu.com/p/166e8b251a5a