2月底开始准备春招(暑期实习),主要语言Java,岗位后台开发,现在幸运地收到了微软腾讯和PayPal的offer,美团到了HR面,阿里估计被hold住了,感觉也等不及阿里大佬继续面我了。为转正或秋招攒攒人品,下面是春招总结
淘宝提前批
一面 130分钟
聊项目和之前的实习
- 性能优化怎么做?
- 设计一个缓存怎么设计。db的数据和缓存中数据的一致性
Java
- 举一个继承的场景
- static 关键字怎么理解的。什么场景会用 static
- volatile 关键字
数据库
- MySQL 索引
- 数据库隔离级别
- 数据库的锁。悲观锁和乐观锁
- 事务的理解和实际的使用
大数据
- 海量数据,找到重复次数最多的数值
代码题
- 构造死锁代码片段,然后把死锁的改成不死锁的
- 用Java实现,对一个日志文件中的日志,找出包含error的日志,并去重排序
- 一个数据库表设计,然后写SQL
二面 130分钟
一面第二天晚上九点半开始二面。面试官问得我很难受,交流起来感觉有点费劲。不过还在自己太菜了,这是2月底面的,当时就准备了一周,好多基础都忘了,所以也很顺利地挂了。由于面的太糟糕,到现在还没去听当时的录音。大概回忆一下。
科研项目
- 很详细地问了科研项目,项目做得是AI相关的……
代码题
- 写一个单例
- 单例作为入口开始问static、类加载一大堆东西
- 写一个继承的场景
- 继承作为入口问OOP三大特性,面试官非常看重自己的理解和什么场景使用
- 多线程,交替打印ABABAB
- OOM的问题
网络
- 传输层和网络层的各种问题
- URL与URI
钉钉提前批
笔试近乎双0,可能笔试太差了然后二面后就一直等着了。
一面 55分钟
聊项目聊了很久……
Spark, Hadoop
- Hadoop 是干嘛的
- Spark 和 Hadoop 的区别
Java 基础
- int 几个字节
- String 是基本数据类型吗
- HashMap,hashcode 冲突了怎么办
- ConcurrentHashMap 为什么线程安全
数据库
- MySQL 的索引(B+树、聚簇索引)
- 索引的类型
- 说5个索引优化的点
- in 可不可以用索引
>
可不可以用索引
听我没看过Spring源码直接不问了……
二面 40分钟
- 项目
- 遇到了什么困难,怎么去解决的
- 还在学习新技术,怎么学习
微软上海 Cloud+AI
提前批没有笔试。我是全中文面试。
一面 45分钟
- 聊项目
- 如何性能调优
- 统计调用某个API最多的5个IP。自己实现并设计测试用例
二面 50分钟
聊项目
- 中台的理解,可维护性
Redis
- 有哪些数据结构
- zset的底层实现
Java
- 反射,性能损耗在哪里
- GC 了解吗,介绍一下
- HashMap, HashSet, HashTable 有什么区别
设计模式
- 列举并简要介绍你知道的设计模式
做题
- 写个单例
- LC-73
三面 60分钟
- 聊项目
- 场景题:数据库表设计,要用ER图表示
- LC-145
PayPal
90分钟,4个面试官一起面,前60分钟白板写4道题,后30分钟提问。我是全中文面试。
算法题
- LC-50
- LC-103
- 从输入构建二叉树,考察各种异常情况的处理,然后写BFS
- LC-322
算法
- 复杂度
- 如何优化递归
Java
- 双亲委派模型
- 介绍一个GC收集器
- G1 和 ZGC 相比 CMS 在性能上有什么好处
- 有没有用过 JVM 的配置参数进行优化
- HashMap 底层实现是怎样的
- 在大于等于8的时候转成红黑树,为什么是8
- ConcurrentHashMap 怎么保证线程安全
网络
- HTTP 连接建立的全过程
大数据
- HDFS的架构,各个模块的功能,计算的流程
- 介绍 Kafka
设计模式
- 单例模式的双重校验锁
Spring
- 介绍 IOC
- 有一个第三方的工具库,我想把它包装成一个 Bean 进行自动装配,应该怎么做
- 如果想在一个 service 执行前后打印日志,如何做(AOP)
腾讯pcg
一面 60分钟
聊项目
操作系统
- 进程和线程的区别
- 线程共享进程的哪些数据
网络
- TCP为什么三次握手
- TCP 怎么知道发到最后一个包了(FIN 位)
- 浏览器输入一个域名到页面解析的全过程
Java
- 介绍一下 GC
算法题,说思路
- 两个栈实现一个队列
- 两个链表的第一个公共节点
- 删除数组中重复的元素,保持顺序不变
- 合法的括号序列
智力题
- 100本书,每次可以拿1~5本,A和B轮流拿,怎么保证A先拿完
二面 30分钟
聊项目
算法题,说思路
- 海量数据,找最大的100个
Java
- 介绍一下 HashMap
上一面哪里表现的不好
HR面
常规的问题……
美团
笔试5道题做了一道半,太菜了……
一面,40分钟
聊项目
Java
- 讲一讲线程池
- Java有哪些锁,都介绍一下
MySQL 索引
怎么学习的
工作城市
二面,60分钟
Java
- 为什么重载是方法签名不同
- 为什么 set 的底层用 map,不用 list
- 一个线程不安全的工具类,多线程下怎么保证安全
- Minor GC 和 Full GC 的区别
网络
- TCP 和 UDP 的区别
- TCP 为什么需要三次握手
- 怎么解决 SYN 泛洪攻击
操作系统
- 进程间通讯的方法
设计模式
- 策略模式
- 适配器模式
C++
- 和 Java 在面向对象上的区别
程序从编译到运行的全过程
智力题
- 100 瓶药水,1瓶有毒,10只老鼠,怎么找到哪一瓶有毒
- 8个硬币,有一个比较重,怎么称两次找到那个重的
算法题,牛客写,写完跑完所有测试用例
- 二叉树中两个节点的最近公共祖先
三面,35分钟
聊项目。遇到什么问题,怎么解决的
Java了解多少,我直接讲了下面各部分
- 集合
- 内存布局和内存模型
- 多线程和线程池
- GC
反问
- 讲讲轻量级锁
PS
我遇到的比较多就是介绍XXX,我一般都把自己知道的全部说完,介绍得足够细的话面试官很少会反问。一些典型的如下:
HashMap
- 与 HashTable 的区别
- threshold, loadFactor, size 是什么,怎么去 resize
- hashcode 的计算,put 和 get 的源码
- JDK 7 和 JDK 8 的不同
- ConcurrentHashMap 怎么保证线程安全
GC
- 如果判断一个对象需要被回收了
- 分代 GC,分别有哪些算法
- 哪些 GC 收集器
多线程
- synchronized 和 ReentrantLock 的区别,synchronized 的优化
- 创建线程的方法
- 线程池的好处、怎么创建、ThreadPoolExecutor 的构造方法的几个参数、拒绝策略、阻塞队列
- JUC 的各种工具
输入域名到页面解析的全过程
- DHCP, DNS
- HTTP1.x, HTTP2,HTTP3,HTTPS,各种状态码、请求方法
- TCP,QUIC
- IP, ARP, RIP, BGP……
- CRC
- 缓存、浏览器渲染
全部评论
(11) 回帖