某研一渣渣的春招实习[河蟹]总结
前言
春招实习基本结束了,刚入坑了塞尔达,玩了几个小时,看了 B 站的攻略决定重开(= = 玩的就不是一个游戏啊喂)
今年碰上疫情,不知道 HC 缩水了多少,不过找实习的流程是方便了许多,基本都是电话/视频面试(就是家里信号和网络都不好,面试过程断了两三次的情况时有发生)。
在下是在二月末开始找的实习,从第一次面试(2020.2.28,折戟)到最近一次面试(2020.4.14,半折戟)其实也一个半月了,时间过得真快..
与 前年 不同的是,今年只投了不到 10 家公司,基本上都投的大厂,心里素质好了一些。
结果还算满意,遗憾的可能是在第一次面试打击后没什么勇气投更有挑战性的部门,可能错过了一些机会,不过还算无伤大雅,有个坑蹲就行了。
战果
公司 | 地点 | 岗位 | 结果 |
---|---|---|---|
阿里妈妈 | 杭州 | Java | 一面跪 |
腾讯 WXG | 广州 | 后台开发 | 进入复试后没二面就变灰了 |
美团(到店技术部) | 上海 | 后台开发 | offer |
字节跳动(抖音) | 上海 | 后台开发 | offer |
腾讯 PCG(腾讯视频) | 深圳 | 后台开发 | offer |
阿里巴巴(风险技术部) | 杭州 | Java | offer |
Paypal | 上海 | SDE | offer |
Microsoft | 苏州 | SDE | positive |
Amazon | 北京 | SDE | 刚面完一/二面,表现一般,估计凉 |
Apple | ? | SDE | 网申完就没信了 |
一些面经
阿里妈妈(一面)
- java 基本类型,引用类型
- 重载、重写的区别
- 静态变量、实例变量分别存在哪里
- 方法区会不会 OOM
- 多态举例
- 继承实例化的过程
- java 传引用的方式
- 一个表里面有 id, amount 两行,要对某个 id 对应的 amount 扣除余额,但要保证余额大于 0,怎么写 sql (回答地有点支吾.. 说到用 CAS 和 悲观锁,但好像都不太行?)
- left join,right join 的过程是怎样的
- 描述下适配器模式(跟代理模式什么区别) ,装饰者模式类结构
- session 的工作原理,安全性怎么保证,如果另一个人获取了 sessionid 怎么办
- spring 里 bean 的作用域有哪些
- UML 类图继承和组合怎么画
- 编程题目:4 个线程 ABAB 问题
当时还没把心思放到春招,只准备了一天多,平时也没怎么积累,很多东西都忘了,没答上来,自然而然地挂了...编程题目事后自己实现了一下,深刻体会到当时肯定是写不出来的 hhh
腾讯 WXG(一面)
上来就是 4 道编程题 + 1 道逻辑题 50 分钟,还算顺利的做完了,但是逻辑题看错了
- 两个有序(从小到大)单链表,合并为一个有序的单链表
- 字符串列表中找出按字典序最大和最小的串
- 有序链表中去除重复的元素
- 在二叉排序树中找出第 3 大的节点,注意不能把二叉树全量存储到另外的存储空间,比如存储到数组中,然后取出数组的第三个元素
- 分金币问题
- 介绍项目,问了一些项目中的问题,基本每个项目都问了
- 文件上传怎么做到断点续传
- Java NIO 基于 select 还是 poll 还是 epoll
- 什么情况下用 select,什么情况下用 epoll,各自的特点
- Java 中 String 用 == 比较,回答了两种情况,顺便说了 intern()
- 在项目中为什么用多线程而不是多进程,如果用多进程,至少要修改哪些东西
- 操作系统中进程通信有哪些方式
- Http 消息解码怎么做的
- Http 中怎么设置 header 来保持连接
腾讯 PCG(一面)
- 面向对象的几个特性
- == 与 equals 的区别
- StringBuilder,StringBuffer,String
- 抽象类跟接口的区别
- 垃圾回收算法,讲了 CMS 和 G1
- 进程和线程的联系和区别
- 进程间通信的方式
- MySQL 两个最常用引擎的区别
- MySQL 主从复制怎么做的
- binlog 有哪几种方式去同步
- select,epoll,然后问到 Java NIO 怎么去构建一个服务器
- epoll 的优势是什么
- TCP 为什么是三次握手
- 为什么要有 TIME_WAIT 的状态
- 拥塞避免是怎么做的
- Linux 如何查看 CPU,内存占用情况(top)
- Linux 怎么去看连接状态(讲了整个过程 ps aux、lsof、tcpdump 等)
面完隔天还做了三道题,一个小时,都比较简单
字节跳动
一面
算法题:
- 根号2的值,精确到小数点后面5位,不调用任何的系统函数
- n个数里面最大的第k个数,最快的方式
- 合并2个有序链表
基础: - 讲一讲 HTTPS 和 HTTP 2.0
- 访问一个 url 的全过程
- 如果访问一个网页,发现超时了,是怎么去排查问题的
- 什么时候用 cdn ,什么时候用常规的应用服务(静态资源用cdn)
- springboot 中 bean 相互依赖的时候是怎么进行初始化的
- springboot 跟 tomcat 的关系和区别
- 为什么 springboot 应用能直接用 java -jar 运行
- 数据库的四个隔离级别,分别解决什么问题,mysql 中各自怎么去实现
二面
问了几个问题( redis、mq... 基本都不会)后,就开始做题
算法题:
- 给定一个二叉树,输出左视角
- 给不同面值的硬币若干种(每种硬币个数无限多),用若干种硬币组合为某种面额的钱,使硬币的的个数最少
微软
微软这边还是算法题为主,做完题目会问一下场景题,设计模式或写测试用例之类的
算法题的话在下遇到的都比较非常规,尤其是二面来了个中文转数字,心态差点崩了,所幸还是想出来了
总结
最终去向:待定,估计还是微软/字节(随便问下大家比较倾向哪个),幸运指数爆棚的话再考虑亚麻
相比大三的时候,“偏国内的”面试终于过了一些,感觉平时积累固然重要,但面试前有没有好好准备真的效果很不一样。
今年真的超级幸运了。