Java 实习应聘总结 & 面经分享,感谢牛客网
(请尽量在网页端阅读本贴,手机上排版会乱掉)
本人某五百本大学软件专业大三(认出我的同学私下联系我就好了,希望别直接指出来hhh),主 Java 后台。我的实习应聘从二月底开始,到现在已经基本进入尾声了。在这两个月里,有点过于焦虑地投了很多简历,参加了很多面试,也学习到了很多。特别是对互联网行业有了更深入的了解,这可能算是投了这么多公司的一个好处吧(笑)。
在这段时间里,我也和其他同学一样,每天刷着牛客网上的各种信息和分享。感谢牛客网提供了非常好的一个交流平台,下面分享一下我的各家面经,也算是对这个平台的回馈吧。
最后祝各位牛油都能拿到理想的 offer ~
实习应聘总结(排名可能分先后)
- Microsoft:offer(STCA 苏州)
- 阿里:offer(蚂蚁金服)
- 腾讯:二面挂,Java 程序员被狂怼 C++ 和 Linux 底层
- 网易互联网:offer(大数据产品开发)
- 美团点评:offer(点餐事业部)
- 今日头条:offer(广告变现业务)
- 网易游戏:offer(运营平台开发)
- 京东:让去上海面试,不报销路费,鸽了
- 小米:笔试后杳无音讯
- 爱奇艺:笔试后杳无音讯
- 拼多多:笔试后杳无音讯
- 携程:offer(面试就 10 分钟,水得不行)
- 华为:性格测试挂🌚
部分面经分享
Microsoft
- 一面:项目介绍,聊项目的具体内容;问 Java 的各种底层相关内容(内存管理,类型系统,GC,JIT,……)然后和 C++/C# 做了一些比较;手写一个算法题。
- 二面:手写两个算法题;用英语介绍一个项目并回答相关的问题。
- 三面:英语尬聊,职业规划之类的;给出一个需求,做分析和设计,并简单地写出部分代码实现。
阿里 一面
- 去年实习经历
- 异步调用的使用场景
- 数据库设计
- MySQL 索引结构
- 主键和普通索引的区别
- 服务化框架
- 服务注册的原理
- 负载均衡方案
- 批量数据处理
- 如何控制服务器并发量
- 其他项目经历
- 除了 Java 还在学习什么技术
- 二分查找的实现
- 数据库的 ACID
- 如何理解隔离性,举例如果不隔离会产生什么问题
- 编程:设计 parseInt(String)
- 异常处理
- int 的取值范围
阿里 二面
- 再次确认是本科生,有没有读研计划
- Java 集合框架
- 举例常用数据结构
- ArrayList/LinkedList 实现对比,使用场景
- HashMap 实现
- JVM 内存分区、堆的分代
- JVM 垃圾回收算法
- 去年实习经历,印象最深的 bug
- Java 网络编程
- 有没有用过网络通信框架(没有)
- Java IO/NIO 区别
- 多线程与并发
- 乐观锁/悲观锁
- volatile 关键字
阿里 三面
- 算法:从大量 ID 中找出出现次数大于 3 次的所有 ID
- ID 取值范围较小:Bitmap,每个取值用 2bit
- ID 取值范围较大:Hash,取模,分片统计,合并
- 项目经历,创业项目最后成功上线了吗
- 对实习的期望、未来职业规划
阿里 HR
- 学校、学历、读研吗
- 职业发展规划
- 具体的技术发展方向(Java)
- 对什么样的业务感兴趣
- 成绩、排名、相对于其他同学的优势
- 介绍项目经历
- 可实习时间,是否考虑转正
腾讯
- (一面全程聊项目,在此略过)
- 这几年的学习情况
- C++
- 什么是多态
- 继承的实现原理
- 多态的实现原理
- 操作系统
- 进程和线程的区别
- 进程间通信的方式
- 线程同步机制
- 信号量的实现原理
- Linux
- Socket 编程相关的函数
- I/O 多路复用机制
- epoll 底层原理
- 数据库
- ACID 特性
- 事务的隔离级别
- 如何对某一行加锁 (?)
网易 一面
- 项目介绍
- 自己实现的 RPC 框架
- 暴露服务的过程
- Thrift 有了解吗,和 Dubbo 有什么区别
- 如果重新设计 RPC 需要考虑什么
- 为什么造了这么多轮子
- 有做过性能监测和调优相关的工作吗
- 如何压测一个服务
- 微信朋友圈 Timeline 怎么实现
- Redis 有用过吗
- 分布式锁如何实现
- 除了加锁还有什么方法解决资源竞争
- Object 有哪些方法
- 什么时候需要覆盖 equals() 和 hashCode()
- 有 100GB<user_id, value>数据,统计出现次数前 100 的 value 及对应的 user_id
- JVM 内存结构
- 什么时候会发生栈溢出、堆溢出
网易 二面
- 项目介绍
- 自己造的框架
- 画一个模块图
- 介绍一下 Servlet 容器
- RPC 用什么序列化方式
- 了解其他的跨语言二进制序列化库吗
- 描述一次 RPC 调用的流程
- HTTP Server
- 用什么管理 Socket 连接(NIO)
- 有没有用第三方网络 I/O 库
- NIO 相对于传统 IO 的优势
- 如何解决粘包、半包问题(有限状态机)
- HTTP 请求的格式
- 如果自己设计一个协议,怎么解决
- AOP 原理
- JDK 自带的动态***有什么限制
- CGLib 创建动态***的原理
- final 类可以被***吗
- Java 为什么可以实现 IoC
- JVM 如何提供反射特性(Unsafe,动态字节码生成)
- Class.forName 的运行过程
- 类加载过程
- 最顶层的 ClassLoader 叫什么
- 能获得 Bootstrap ClassLoader 的引用吗
- JDK 1.7 及以下版本,字节码存储在哪个区域
- 1.8 永久代的改变
- Java 8 新特性
- Stream API
- 大致运行原理
- Stream 操作的类型
- 调用一次 map/filter 后会发生什么
- Lambda 表达式实现原理
- LambdaMetaFactory
- invokedynamic
- Stream API
- 读研吗,大四有课吗
美团点评 一面
- 去年实习经历,做了哪些业务
- 自己造的框架
- 为什么想要造框架,有哪些比 Spring 好用的地方
- 画一下 IoC 容器的架构图
- 自己有用这个框架吗,有别的同学用这个框架吗
- 职业规划,最近在看什么书,在了解什么新技术
- 有哪些专业课
- 去年实习的收获,你认为在业务部门干能带来技术提升吗
- MySQL
- 索引的实现
- 表的存储方式
- HashMap 原理
- Redis 用过吗
- 手写代码:检验一串左右括号是否配对,若不配对则找出配对的最长子串
美团点评 二面
- 去年实习经历
- 做了什么项目
- Web 层、服务层、数据层 分别是怎么做的
- 缓存的使用位置,缓存过期时间的设置
- 实习带来的收获
- 做了什么项目
- MySQL:对比下面两个查询消耗的时间(其中 age 带有索引)
- SELECT * FROM xxx ORDER BY age LIMIT 0, 10
- SELECT * FROM xxx ORDER BY age LIMIT 990, 10
- Java 方面看过什么书
- JVM 类加载机制
- 有哪些 ClassLoader
- 类加载过程,双亲委派模型
- 自己造的框架
- AOP 的实现原理
- RPC 框架包含哪些组件
- 如果来实习希望做什么
今日头条 一面
- 去年实习经历,做了什么工作
- HTTP 怎么实现上传图片
- POST 和 PUT 有什么区别
- multipart 怎么确定每个部分的长度
- 自己造的框架
- 能看 GitHub 吗
- 包含哪些功能,和 Spring 有什么区别
- HTTP 服务器的实现
- 为什么小并发的性能超过了 Tomcat
- RPC 的实现(Java 和 Go 程序员的撕逼大战)
- 序列化方式,为什么不兼容 Thrift (?)
- 直接序列化和使用 IDL 的区别
- 操作系统
- 内存管理(不了解)
- 进程、线程、协程
- 为什么需要协程
- 协程的调度过程
- Java NIO 里面用到了协程你知道吗 (?)
- TCP 四次挥手
- 可实习时间
- 编程:给定一个数组,输出所有的递增子序列(搜索)
今日头条 二面
- 介绍项目
- wait(), notify(), notifyAll()
- 正在 wait 的线程被唤醒后会发生什么
- notifyAll 唤醒所有的等待线程后会发生什么
- MVC 介绍一下
- 写 Android 的时候会用 MVC 吗
- MVC 和 MVP 对比
- JVM 内存分区
- 堆和栈的区别
- 堆的垃圾回收
- 新生代、老年代的区别
- Minor GC、Full GC 的区别
- 编程:LRU Cache(估计很多人都有遇到过,详情就不写了)
- 除了 Java 还用过什么编程语言
- MySQL
- 索引的结构
- 为什么 InnoDB 非主键索引存的是对应的主键
今日头条 三面
- 一个先升后降的整数数组,找出最大的数
- 一个无序整数数组A,元素可能有重复,给定任意一个数a,等概率返回其下标(这题没想出来,换了个题)
- 给定整数a和一个k,去掉a中的k位,使得余下的数字最小
网易游戏 一面
- 自己造的框架
- 主要功能介绍
- HTTP 服务器介绍
- 介绍分层设计
- 如何解析 HTTP 请求
- TCP 底层的实现,如何处理 TCP 半包问题
- 有没有了解过 HTTP 规范,有没有阅读过相关的 RFC
- HTTP 的缓存方式
- 如何对这个框架进行测试
- RPC 框架介绍
- 如何处理 Exception
- 序列化方式
网易游戏 二面
- 为什么除了 Java 还有做 PHP 和 Android
- 自己造的框架
- 造了多长时间
- Servlet 容器
- 支持哪个 Servlet 版本,什么特性没有支持
- HTTP 服务器
- 支持 http/2 吗(当然不)
- http/2 的新特性
- 平时玩游戏吗,吃过鸡吗
#春招##实习##面经#