面试所问技术深度
头条、旷世等科技驱动的公司>bat>***>新兴互联网>小众app>外包公司>国企
bat> 头条 新美大 和滴滴>新兴互联网独角兽>知乎.陌陌搜狐畅游等

1.基础篇

大公司一般第一步就是手撕代码。(此处学习可以参照剑指offer或者LeetCode)
数据结构 各种排序算法(主要是堆排序)、查找算法、二叉树(主要是B+红黑树)的原理
简单算法要求手写。
计算机网络 三次握手四次挥手 网络七层 输入网址到看到的全过程
访问互联网后 403 5xx等等状态码含义

操作系统 (这个目前只有美团等少数公司问过)内存分配算法 内存分页

socket编程基本知识
算法 布隆过滤器

类加载 类加载步骤 双亲委派模型

外部排序思想
top K 重复 排序。

2.java专业基础篇

java理论(重载重写、进程线程区别)<< & 的使用等
java容器知识 hashmap hashtable 区别 扩容机制 实现原理,ArrayList linkedlist的区别,适用场景。string,stringbuilder,stringbuffer这一类
线程基础(实现方式,通信方式,同步,死锁是什么,怎么避免)
线程池相关(典型四个线程池) 冲突处理方法,newFiexed中队列具体实现过程
锁机制 : volatile synchronized都是什么 线程中使用synchronized 和线程的lock类有啥区别
读写锁相关
设计模式: 介绍设计模式,一般是手写单例,然后饿汉懒汉的区别。
jvm相关:java内存模型。(共享俩私有三)gc算法,年轻代和老年代gc触发机制。OFO还问的挺具体,问我如何查看年轻代的对象年龄如何查看。
jvm调优 这个就问过我一个问题,就是内存过高诊断方法 (通过PID利用 jstack 打印日志)
io nio

redis 数据类型,线程数,(单线程) 为啥单线程?
分布式情况下主机挂了怎么办? zk解决脑裂问题。银行家算法等

MQ相关问题
负载均衡相关问题
redis相关问题、
duddo相关问题
zk相关问题

3.java框架基础

spring ioc aop 原理。(美团让我手写ioc - -真是惶恐)
spring事务 事务原理。
java框架补充 SpringMVC的原理
还会问简历上写的一些其他框架原理如hibernate等。
这一点上,外包小公司倾向于问spring boot 相关情况。 毕竟他们要人是需要直接上手去增删改查。

4.数据库相关

我写的熟悉mysql .因为接触oracle、sybase、sqlserver什么的确实不多。
(外包小公司倾向于写sql语句如查询这个月销量最高的那一条啊此类,我觉得这只是看一下sql熟练度而已,并没啥意思~~~欢迎讨论)
数据库语句 union left join 这些什么意思
事务,事务四个隔离级别解决的三个问题 四大特性
数据库引擎。一般就是问innodb.数据库引擎索引存储数据的方法(b+树,保存地址还是保存值)。
索引相关问题 索引类别 创建索引有什么好处坏处。
数据库锁相关 行列锁还是表锁。
乐观锁、悲观锁 实现方式和适用场景。
数据库调优方法,sql 语句需要注意的写法等 explain关键字的使用。

5.linux

必会! 现在有学长提醒你了,这个你必须会。正则表达式、linux命令和shell脚本的编写是java工程师必须了解的东西。

6. 分布式相关

如果一台服务器极限只能抗住1万并发量,那怎么抗住10万并发量。 如何设计抢票系统等问题
memcache redis MQ Nginx 对于Hadoop spark 了解多少 nosql 等等。(关于这一方面我实在了解不多,所以问到后肯定场面一度尴尬)

7.其他

GIt maven GitHub 上有没有啥东西啊。

简历上的东西、不懂的一定不要写。写了的、一定要能扯一会儿~