前言
个人情况大概是从10月底开始投递简历,到12月初先后面试了CVTE、远景、美团、阿里、腾讯五家公司,也投递过一些其他的公司,有的没有面试机会(如蘑菇街、VIVO、虎牙等),有的放弃了笔试(如卡中心、360、移动、携程等),到现在算先告一段落吧,只是等待最后的结果,整理下面试中的一些问题(由于时间间隔有点久,记不大清楚了,整理下记得的一些问题,题目不分前后顺序)回馈大众,希望没出结果的都能顺利~
阿里一面:
-
触发新生代GC,如果存活对象总量大于survivor区容量,咋办
-
如果任务很多,线程池的阻塞队列会撑爆内存的哪个区域
-
栈在堆上吗
-
GC root有哪些
-
实例变量可以是GC root吗
-
了解哪些GC算法,介绍一下
-
给个场景,问怎么设置JVM参数
-
问了很多SQL调优,各种语句能不能命中索引,能命中哪些,怎么优化
-
MySQL的一张表里有三个字段ABC,A的种类有1000种,B有1W种,C有10W种,ABC的联合索引怎么设置,怎么使用
-
Mybatis # 和 $ 的区别
-
Mybatis接口里的方法和XML里的SQL名可以不一样吗,不一样怎么办
-
Mybatis是如何完成SQL和接口里的方法的映射的(我回答了怎么配置),那你知道它是怎么实现的吗
-
介绍下Spring的 IOC和AOP
-
服务器给客户端发送IO流的过程
-
IO和NIO了解多少
-
线程都有哪些状态,怎么转换的
-
Notify和notifyAll的区别
-
介绍线程池,不同线程池区别在哪,你平时怎么使用线程池的
-
MySQL索引的数据结构
-
B+树了解多少
-
Cookie和SessionId说一下
-
锁是怎么实现的
-
Synchronized同步块和synchronized方法,分别锁的是什么
-
单例模式,饿汉和懒汉分别存在的问题
-
Volatile是怎么实现可见性的
-
介绍下JMM
-
Happen before了解吗
-
A happen before B,意味着A一定在B之前执行吗
-
你做过的最难的项目中,最难的任务是什么,怎么解决的
阿里二面:
-
看过哪些源码?
-
Java都有哪些map,分别怎么实现的,具体讲
-
除了LinkedHashMap,你还知道哪些有序map
-
ConcurrentHashMap讲一讲
-
为什么要有线程池
-
线程池有哪几类?有什么区别?有哪些参数?拒绝策略有哪些
-
阻塞队列都有哪几种,有什么区别
-
Java的反射怎么理解
-
Spring的IOC和AOP怎么理解
-
Spring项目启动的时候会加载哪些资源,顺序是怎么样的
-
浏览器输入一个URL,会发生什么,整个过程说一下
-
Http讲一讲,请求有哪些内容,响应有哪些内容
-
你笔试分好高,平时刷过很多题吗?怎么刷的?
阿里三面(leader面):
-
MySQL的高可用了解多少,高性能了解多少
-
淘宝有1000T的数据,单机存不下,怎么办?有没有办法只访问一次服务器?一致性Hash懂多少
-
MySQL和redis有啥区别
-
MySQL数据备份怎么做
-
Redis底层原理会多少
-
Redis为啥比MySQL快
-
Redis RDB可能会丢失数据,怎么办
-
Redis AOF不也要把日志写到磁盘么,那和MySQL的IO有啥区别,凭啥Redis就快
-
Redis主从复制怎么做
-
分布式缓存懂多少
-
还知道其他NoSQL么
-
Java和C的优缺点说一下
-
有没有用C写过底层
-
Java的G1回收器详细讲一讲
-
G1什么时候会stop the world
-
Linux操作系统有应用过吗
-
对分布式和中间件掌握多少
-
详细介绍下你的项目
-
你认为你现在的项目有没有什么可以扩展和优化的地方,讲一讲
-
实验室都是做什么的?为什么要转互联网?实验室转互联网的同学多么
-
有没有发过论文?导师愿不愿意让实习?
-
对阿里的技术了解多少?对部门了解多少?
阿里四面:
-
数据库索引常用的数据结构
-
Juc源码看过吗?锁的实现原理是什么?
-
CAS能深入的说一下吗
-
建造者模式说一下
-
谈一谈笔试的心得(笔试分高)
-
看过哪些书籍
-
你打算接下来看哪一本书
-
介绍下实验室项目
-
曾经遇到的最大挑战是什么,可以说实验室项目、实习经历或者自己的项目
-
怎么解决这个困难的
-
项目中有没有与人合作
-
现在的offer情况
-
自我评价一下
阿里五面(交叉面):
-
介绍下项目,项目的来源,是自己一个人做的么
-
登录验证怎么做的
-
讲一讲ThreadLocal
-
ThreadLocal怎么避免线程污染(没听懂啥意思)
-
点赞怎么实现的
-
Redis持久化方式
-
MySQL存储引擎区别
-
Myisam在只读场景下,为什么一般比InnoDB快
-
Mybatis怎么使用
-
Mybatis # 和 $ 的区别
-
Spring中BeanFactory和ApplicationContext的区别
-
Spring中bean的作用域有哪些,有什么区别
-
说出一个原型作用域的具体应用场景
-
学习过哪些设计模式,用过哪些设计模式
-
生产者消费者模式讲一讲
-
怎么实现阻塞队列
-
学过Linux吗(基本没学过)
-
在Linux下,怎么查找一个目录下的所有文件,要求输出顺序按照文件的创建时间排序
-
给你一堆学生的信息,包括学号和姓名,让你找出学号最靠前的10个人的姓名
-
PriorityQueue怎么实现的
-
怎么求根号3(我说了二分法,用2的平方,1.5的平方,1.75的平方依次和3比较,缩小区间,直到达到精度要求)
-
你这种求法太慢了,可以优化吗(我问:您是想问数值分析的知识么?面试官说:是的,你没学过数值分析么?)
-
斐波那契数列,求第n项的值(答了递归和DP两种方式)
-
如果数列长度100W,你的DP矩阵不是很大么?怎么优化?(答:用两个变量a,b记录前两个值,temp = a, a = b, b = a + temp,依次递推)
-
一个时钟有时针分针和秒针,三针重合的最短时间间隔是多少?(完全没思路,只知道一小时内肯定不行,因为走得速度不一样,一圈内速度快的和速度慢的撞不上)
-
平时怎么学习的
-
最近在看哪本书,接下来打算看哪一本书
-
自我评价下优缺点
-
怎么证明你的学习能力强
总结
最后我为大家准备了ava核心知识点+全套架构师学习资料和视频+一线大厂面试宝典+面试简历模板+阿里美团网易腾讯小米爱奇艺快手哔哩哔哩面试题+Spring源码合集+Java架构实战电子书一起免费分享给大家!
有需要的朋友点这里备注csdn自行下载就好了