记录一下秋招(Java)
1.携程 测评挂
2.链家 笔试挂
3.阿里巴巴(二面挂)
一面(19min):
- 学过哪些课程
- 进程间通信
- 什么会影响进程的内存
- 进程与线程区别
- 进程间同步
- 什么会影响进程的内存
- 内存调度算法
- 线程间同步
- 数据库事务特性
- 数据库范式
- OSI七层模型
- TCP三次握手
- 说一下有哪些排序算法
- 具体说一两种
- 如何实现一个链表
- 链表二分查找
- 一个很长的字符串(不能放入内存)如何找出重复字符
- 字符串匹配(KMP算法)
- 实习相关
二面(44min):
- 实习相关
- 幂等
- SQL注入,如何防范,预编译原理
- Spring事务
- Spring事务如何实现,底层做了什么
- 如何用数组实现一个队列
- 如果有多条线程同时写呢
- 说一下CAS,怎么用CAS
- http和tcp分别在哪一层
- 如何让一台机器能建立tcp连接但是不能被ping
- 如何判断一个图是否有环
- 单源最短路径
- DP算法
- 背包问题
- 平时如何学习
PS:面试官很nice,自己没准备好
美团(酒旅事业部)(三面+hr offer A)
一面(2017/09/07 18min):
- Quartz是如何实现的
- 如果有多台机器,一台机挂了,咋办
- ElasticSearch有什么用,是基于什么的,相对于MySQL的like有什么区别,为什么不直接用lucene呢
- 项目中统计网站的pv和uv是怎么做的
- 为什么不直接将nginx的日志存到es而要使用kafka
- list和set的区别
- hashset是如何保证不重复的
- hashmap是线程安全的吗,为什么不是线程安全的
- synchronized和lock有什么区别
- maven是干嘛的,如何解决依赖冲突
- linux进程有哪些状态
- 有哪些复杂度较低的排序算法,什么因素会影响快速排序的效率
- MySQL用的什么存储引擎
- InnoDB的默认事务隔离级别是什么
- 解释一下什么是幻读
- MySQL是如何解决幻读问题的
- MVCC是如何实现的
美团2面(2017/09/11 40min)
- 自我介绍
- 实习时的项目生命周期
- 手头同时有两件任务,如何处理
- 如何处理高并发情况下同时更新数据的情况
- 乐观锁和悲观锁的区别和应用场景
- MySQL 5.7和5.6的区别
- 实习过程中遇到的最大的挑战
- 解释一下restful
- restful有什么好处
- redis和mem***d有什么区别
- 除了redis和mem***d,还用过哪些中间件
- 说一下自己的三个优点三个缺点,举例
- 以后的职业规划
美团3面(2017/09/13 50min)
- 自我介绍
- 介绍项目
- github?博客?
- 乐观锁怎么实现的
- 幂等性的理解
- 如何实现幂等
- mem***d底层实现
- mem***d的内存管理
- redis内存管理
- Redis多节点?主从复制好处?原理?
- 如何实现lru
- mongodb存储引擎
- elasticsearch介绍
- es为什么能存大数据量
- 敏感词过滤怎么做
- 字典树
- 布隆过滤器
- 热数据冷数据怎么管理
- http会哪些
- http缓存
- 对美团有哪些了解
- 怎么学习新技术
- 看过哪些源码
- Hashtable是怎么加锁的
- synchronized和lock有什么区别
- ConcurrenHashMap介绍
- 为什么要用红黑树
- AQS
- ClassLoader机制
- 有什么问题问我
PS:面试体验非常好,为美团打call
网易有道(三面):
一面:
- 数据库事务
- sql优化
- 中断
- 虚拟内存
- traceroute原理
- 顺时针打印矩阵
- java final finally finalize
- 强引用 软引用 弱引用
- 迭代器
- java反射
- 垃圾回收算法
- tcp udp区别
- 进程状态
- arp协议
二面:
- 长连接问题,连接过程网络断开怎么办,在客户端和服务端分别需要做什么处理(面试官提示心跳包,无奈还是不了解)
- get跟post区别
- 算法题
- 手写线程安全的单例模式
三面:
- 实习相关
- 设计题(网站架构,考虑扩容)
PS:对操作系统跟网络还要加强
有赞(一面挂):
一面(36min):
- mem***d扩容/mem***d原理/路由算法/为什么要分为多个slab
- 死锁怎么预防
- 怎么检测死锁
- ArrayList和LinkedList/一亿个int要用哪种
- 什么时候会发生full gc
- 方法区有没有gc
- 说一种你最熟悉的mq
- mq有哪两种模式
- 滑动窗口协议
- Spring AOP
- AOP实现方式
- cglib如何实现动态***
- 创建线程的方式
- Callable一般是怎么用
- 你知道那个返回值底层是怎么做的吗
PS:面试官很专业
京东:
一面(13min):
- 自我介绍
- 数据库隔离级别
- 数据库死锁/如何防止
- Hashmap原理、ConcurrentHashMap
- volatile原理
- Java内存区域
- gc
- Mybatis #和$的区别
- Mybatis缓存
- redis数据结构
- 看过哪些源码
PS:投的深圳且不服从调剂,结果被调剂到北京,至今复试未安排,吐槽一下
腾讯:
一面(40min):
- 为什么要用InnoDB
- 数据库备份(mysqldump)
- 手写shell脚本
- 编程题
- 两道智力题
- 项目相关
- git合并分支
- 从输入网址到呈现网页发生了什么
- 是否写过TCP相关的程序
- 主线程如何优雅地停掉子线程
- 有没有关注过一些开源框架,介绍其中一个
- 未来的规划
- 还有什么问题
二面(130min):
- 项目
- 乐观锁/悲观锁
- jvm
- RAID0/RAID1/RAID5,RAID10至少需要几块磁盘
- TCP四次挥手
- time_wait过多有什么坏处
- 怎么知道地球上有多少海水
- C语言字符串反转
- AVL树,左旋右旋
- B+树和AVL树有什么区别
- 微服务、熔断
- Restful
- Spring IOC AOP
- 同步跟异步的区别
- MySQL有一条SQL语句使用了索引,但在数据量超过5000w时,查询从5ms编程50ms,可能的原因
hr面(20min)
PS:二面秋招最长面试,面试官教我做人
微众:
一面(30min):
- 自我介绍
- 项目
- hashmap原理
- volatile作用
- 如何保证多线程下i++结果正确
- 为什么要有gc
- Java内存分配
- 什么时候会进入老年代
- 1亿个邮箱,给出一个邮箱,如何判断该邮箱是否在这1亿个邮箱之中,时间复杂度和空间复杂度最优
- Future
- 接口和抽象类区别
- Overide和Overload区别
- 看过什么书
- 为什么想来微众
二面(18min):
- 项目相关
hr面(20min)
PS:面试不难,面试体验差(一面等了30min,二面等了一个半钟,hr面等了两个多钟)
总结:
- 实力跟运气都很重要
- 越早准备就越有机会
- 心态很重要,荣辱不惊,平常心就好。不管结果怎么样只代表了面试官自己的看法,都是相对主观的。***和用人单位是平等的,双向选择。
- 秋招只是一段经历,并不代表你以后的成就,最重要的是清楚地知道自己想要的是什么,想成为什么样的人
- 相信自己