引言
1、本文没有公众号和博客推广,请放心
2、Java后台开发的经验,其他岗位没有借鉴意义
3、纯发经验攒人品,不装不宣传,有问题留言大家一起讨论,互帮互助!!
4、个人学习方法,并不一定适合每个人。不喜欢看视频学习的就不用继续往下看了。
5、 由于读研都是自己挤时间的,过程不表,实验室的内容就没叙述了。
一面(电话)(50分钟)面的CSIG下面的腾讯云,技术栈是Java,不过几乎不咋问Java。
1. 算法题:六七道,都是剑指offer难度
2. 半小时项目介绍 & 问答
3. 分布式相关:rpc原理、微服务架构
4. 海量数据问题:套路题
5. 计网:传输层、网络层(必须要非常熟,ping的原理,tcp的三次握手、四次挥手、拥塞控制。UDP的不可靠、一对一、一对多)
6. 操作系统:虚拟内存、段式、页式、进程调度算法
7. 数据一致性: 分布式数据一致性、缓存数据一致性
8. Java相关:线程池、HashMap、CopyOnWriteArrayList
9. Redis相关:复制原理、持久化原理
10. 杂谈:最近看什么书,实习地点。
二面(85分钟)
1. 算法题:最长不重复字串
2. 半小时钟项目介绍 & 问答
3. 操作系统:Linux的namespace(不会)、进程线程、线程通信方式、进程通信方式
4. 计算机网络:传输层和网络层,因为我项目做了链路层,也讲了一下。
5. Java相关: 线程池
6. 数据库相关: 一条连表查询语句。数据库索引原理
7. 海量数据问题: 套路题
8. 杂谈:介绍了部门业务
三面(电话) (20分钟)
1. 应该是大老板面试了,问的都很哲学:技术背景、学习方法、项目介绍
2. 问了一些简单技术问题。主要考察逻辑表达和整体的素质。
2. 杂谈:介绍了部门业务
hr(电话)(15分钟)
1. 家庭情况
2. 面腾讯原因,还有面其他公司么
3. 兴趣爱好
4. 业务介绍
5. 口头offer
百度是去年找日常实习的面经,面了两个部门,整理了一下
信息中心
一面
- 算法:字符串反转 、 倒着打印链表(为什么用递归比用栈差?) 、 单例模式
- 线程start 、 run方法区别
- 可以不通过构造函数创建对象吗? object.clone() 反序列化
- volatile关键字
- Spring AOP原理(cglib 和 JDK的动态代理实现有什么区别?)
- 重写equals方法,为什么一定要重写hashcode方法?
- 字符串 == 比较。输出true还是false;
- 看了七八个程序,然后问输出什么?
- HashMap 能不能存储 null 能,放在第一个格子里?concurrentHashMap 能不能存储 null?
- 分布式系统设计:现在有一个方法,可以给10台服务器调用,如何统计一天内10台电脑调用的次数和?
- 分布式锁的设计:每天早上8:00输出前一天的业务报表发到老板邮箱。如果现在有10台服务器,如果设计这个定时任务?
法1:分布式锁。法2:通过外部发来一个http请求,传给ngnix,通过ngnix自动进行分配到某一台服务器上。
二面
- 你对哪方面知识比较自信?
- HashMap初始容量多少?(16)为啥要设计初始为16?如果传入容量10会怎么样?(还是会构建16容量的);
- 知道什么异常?(说几个)
- http的状态码说几个。403是什么状态?
- String有什么方法?
- list,set集合在iterator输出的时候能删去值吗?
- SimpleDateFormat是线程安全的吗?
- 手写左连接。
- 聚合函数有哪些?
三面
- 算法题:数组A和数组B,求 A并B - A交B;(说了几种,好像不满意不是最优解)
- 算法题:矩阵搜索(说完之后问优化,没想到,提示二分搜索);
- SSM的运作流程,说说你做的项目难点。
- GET POST请求,url里面的参数
- 说说索引,如果对每一列都建索引有什么不好?
- 白盒测试、黑盒测试
- Linux会吗?
凤巢
一面
- 算法题:手写堆排序
- Spring IOC原理 AOP原理,如何利用AOP实现日志,写过吗?
- Spring bean创建的方法 注解 @Service xml配置 @bean
- Java反射原理?
- SpringBoot 里面 @bean 解释一下
- Java内存模型和运行时数据区
- Spring 中事务@Tranctional,出现异常回滚是怎么实现的
- 数据库MVCC原理
- 乐观锁和悲观锁概念
- 悲观锁的实际例子。 select * from table for update ...
- 乐观锁实际上有没有加锁?
- 用两个线程去操作数据库,乐观锁具体是什么实现的?演示一遍,画一画
- 数据库常用存储引擎,区别,锁范围。
- 写过单纯的非web项目的 Spring工程, 用main实现的吗?例子。
- SSM 三层技术架构的总体流程
- @component @service @controller 三个区别
- mybatis中 # 和 $ 的区别?哪个会出现SQL注入?
- JVM 新生代,老年代。survival是不是在任意时刻都只有一块有对象?
- JVM 垃圾收集器了解哪些?
二面
- 算法题: 实现一个四则运算计算器(两个栈 + 优先级) , 冒泡排序
- 输入一个网站的全过程。从计算机网络到服务器内部技术实现流程。
- 日常怎么学习。
头条面试
一面
1. 算法题:二分搜索相关
2. 概念题:解释 分布式、微服务、负载均衡、高可用
3. http是有状态还是无状态? TCP是有状态还是无状态?
4. 客户端禁用cookie怎么办? 你说的实现方式安全吗?
5. SSL,http和https,https是有状态还是无状态?
6. String为什么设计成final不可变? 是怎么实现不可变的?
7. 自己能实现一个不可变的类吗?
8. equals 和 hashcode 为什么要一起重写?如果不重写hashcode会出现什么问题?
9. hashmap插入的时候,哈希冲突解决? 查找的时候,哈希冲突怎么解决?
10. hashset是怎么实现的? hashmap是怎么实现hashset的?
11. 多线程:并发和并行,原子类,CAS操作
12. mysql的索引:B+树底层实现?B树的底层实现?为什么要用B+树而不用B树?
13. 最左前缀匹配具体是怎么实现查找的?最左前缀匹配用了B+树的哪些特性?
14. (a,b,c)联合索引,为什么不能单用(b),而一定要用(a,b)?B+树是怎么实现的?
15. 什么是幻读,不可重复读?这些概念是在事务内还是事务外? 事务内
16. mysql怎么实现可重复读?设置了可重复读隔离级别底层是怎么实现的? (MVCC)
17. 了解MVCC吗?怎么实现的?什么是快照读?快照读能读取到最新的吗?快照读和当前读的区别?
18. synchronized和reentrentlock哪个效率高?
二面
1. 算法:实现一个缓存队列 ,二叉树的镜像
2. 进程和线程的区别?内存管理说一下你的了解。进程调度算法。
3. 为啥B+树最后叶子节点需要用链表相连接? 便于区间查找
4. TCP状态转换图,画一下。
5. 操作系统I/O模型了解吗?epoll模型了解吗?
6. CopyOnWriteArrayList的相关特性?
7. ArrayList遍历的时候能删除元素吗? 删除的时候会报什么异常?
三面
1. 算法题: (1)树的节点最大距离(2)区间覆盖 例 [1 3] [2 5] [3 6]能否覆盖[2 6]
2. Linux相关命令。
3. 手写SQL,join
网友评论