2018年互联网秋招面试经验分享
自己总结归纳各大公司java面试要点以及悉心梳理相应博客
阿里巴巴
一面
- 分库分表
- 数据库中间件
- MyCAT是一个强大的数据库中间件,不仅仅可以用作读写分离,以及分表分库、容灾管理,而且可以用于多租户应用开发、云平台基础设施
- 高并发请求处理
- 高流量限流
- 多线程
- concurrentHashMap
- CAS
- 乐观锁
- mysql limit分页如何保证可靠性
- http是否需要多次建立tcp连接?
解析 https://blog.youkuaiyun.com/huangyuhuangyu/article/details/78220005
- 如果RPC的注册中心挂了怎么办?
- RPC两端如何进行负载均衡?
- MQ推拉模式,优缺点
- ActiveMQ是一个消息中间件,对于消费者而言有两种方式从消息中间件获取消息
- Push方式:由消息中间件主动地将消息推送给消费者;
- Pull方式:由消费者主动向消息中间件拉取消息采用Push方式,可以尽可能快地将消息发送给消费者,而采用Pull方式,会增加消息的延迟,即消息到达消费者的时间有点长但是,Push方式会有一个坏处:如果消费者的处理消息的能力很弱(一条消息需要很长的时间处理),而消息中间件不断地向消费者Push消息,消费者的缓冲区可能会溢出。
- MySQL数据库索引那些?
- 组合索引怎么用?
- 在对表需要进行查询或者排序操作时,可以对表中某个或者某几个字段添加索引,对一个字段添加索引就是单个索引,对多个字段添加索引时就是组合索引。从前往后依次使用生效,如果中间某个索引没有使用,那么断点前面的索引部分起作用,断点后面的索引没有起作用;
- mysql存储引擎
- 事务隔离级别
- 不可重复度和幻读,怎么避免,底层怎么实现(行锁表锁)
解析 https://blog.youkuaiyun.com/gaoshan_820822/article/details/4582561
- 事务四个特性
- i++和++i满足原子性么
- 类加载机制 三种加载器(双亲委派) 三种加载器怎么协同工作? 加载过程? 类初始化五种情况
- Java容器层次结构
- Object类的方法 12
- map怎么实现hashcode和equals,为什么重写equals必须重写hashcode(扯回HashMap的put操作。源码)
- 同步机制synchronized 重入锁
- synchronized底层实现原理:(monitor)字节码层面 同步方法和同步代码块不一样!
- 对象锁是用来控制实例方法之间的同步,类锁是用来控制静态方法(或静态变量互斥体)之间的同步。
- J.U.C体系结构(java.util.concurrent)
解析 https://blog.youkuaiyun.com/hp910315/article/details/50963095
- 什么是Spring IOC和AOP的实现原理
- Spring事务管理方式
https://blog.youkuaiyun.com/bao19901210/article/details/41724355
https://blog.youkuaiyun.com/chinacr07/article/details/78817449
- SpringMVC是什么 原理
- 什么是servlet 生命周期 一个项目model可以有多个servlet么
- Servlet是一种独立于操作系统平台和网络传输协议的服务器端的Java应用程序
- 设计模式 项目中用过哪些 工厂模式 单例在项目中怎么应用 懒汉饿汉(各写一个)
- 面向对象–举例理解
- 数据结构–设计实现KV结构,查找算法,树
- 网线断了tcp连接情况
- java 中static理解,final理解
- 主从同步
- treeSet,红黑树
- JVM,GC垃圾回收机制,垃圾收集器
- threadLocal
- 分布式事务 2pc
- Java内存模型
- 堆和栈
- concurrenthashmap在1.8和1.7里面有什么区别
- 线程有自己的空间吗,如果有,有多大 线程池 Fork/Join跟线程池有什么区别
- 讲一下迪杰斯特拉算法的流程 (小甲鱼)
- 讲一下弗洛伊德算法的流程讲一下弗洛伊德算法的流程
解析 https://blog.youkuaiyun.com/longshengguoji/article/details/10756003
- java的线程安全queue需要注意的点
解析
https://blog.youkuaiyun.com/madun/article/details/20313269#commentBox
https://www.ibm.com/developerworks/cn/java/j-jtp04186/
http://yanxuxin.iteye.com/blog/586943
- 加锁需要注意什么 锁优化的思路和方法
- java无锁原理
- 数据库索引了解原理么?
答:从b+树说b+和b比的优势,又提到了innodb和myisam之间聚簇索引和非聚簇索引之间的区别,优缺点,实际上还可以扯扯hash,联合索引,前缀匹配啥的 - java相关的框架了解哪些 spring,springboot,springcloud,mybatis
- spring了解些啥?ioc,aop的原理,ioc的好处
- 大量日志去重怎么弄
- 大量整数排序 bitmap
- 死锁的原因,如何避免
解析 https://blog.youkuaiyun.com/ls5718/article/details/51896159
- 现代操作系统有完全解决死锁问题吗
- 如何找出服务器负载过高的原因
解析 https://blog.youkuaiyun.com/yuanlin65/article/details/52663224
- 找出文件中出现次数TOPK的字符串 优先级队列最小堆
解析 https://blog.youkuaiyun.com/L_kanglin/article/details/70500286
- 判断一个字符串集合是否能连接成环,首尾字符相同则认为可以相连,如abc,cde,ea
解析 https://blog.youkuaiyun.com/Yan456jie/article/details/51206096
http://thinkerou.com/2016-06/interview-is-circle-string/
- 常见的GC算法 OOM出现在什么时候
- 针对日访问量上亿做出一些优化
解析 https://blog.youkuaiyun.com/yang_best/article/details/50893785
https://blog.youkuaiyun.com/u012373815/article/details/71435926
https://blog.youkuaiyun.com/sun_wangdong/article/details/51137008
- 内存管理方式
- 常见的设计模式及应用场景
解析 https://blog.youkuaiyun.com/hguisu/article/details/5713164#commentBox
- .100亿元素排序
解析
https://blog.youkuaiyun.com/nigelyq/article/details/52766879