我的春招秋招总结及20篇java后端面经

个人情况:

双C9渣硕(我渣,不是学校渣),比不得大佬,只能算是牛客网上的普通人,想给自己留个纪念。本来我是个算法工程师,本科从大四开始一直搞一些深度学习的东西,研究生的时候CV和NLP都有涉及,相反开发倒是基本都忘光了。在今年2月前,我还是想找算法的,那时候实习还没开始。但在舍友的规劝之下,查了很多关于今年的形势,最终还是走上了转开发的校招之路,从2-9月,一共8个月,校招之路太漫长了。真的想给自己留个纪念,过一年或者过几年来看看。当初我java几乎啥都不会,从零开始的java后端之路,当时给自己定的目标很低,一线能有个25w,如果留西安能有个13x14就是理想薪资,毕竟我找工作全靠自己,在这个互联网寒冬里没有任何人可以依靠,现在这个成果已经远远得超额完成目标,足够让自己满足和感恩了。


总体情况:(本文后文包含20篇面经,长文预警)

岗位方向:后端/java开发
春招实习面试10家:(时间2月-5月)阅文集团、阿里蚂蚁、字节跳动、携程、京东、广联达、滴滴、freewheel、深信服、爱奇艺
offer:广联达:暑期实习,5月远程面试
秋招校招面试10家:(时间6月-9月)中兴面试大赛、vivo提前批、oppo提前批、百度提前批、顺丰sp专场、远景sp专场、shopee、猿辅导、拼多多、华为
offer:

  1. 中兴:软开,西安,6月初参加中兴捧月面试大赛,9月20日签约会,没去
  2. vivo:软开(后端),杭州,白菜,6月中旬参加提前批,现场面
  3. oppo:java后端,深圳,sp,7月中旬参加正式批,现场面
  4. 广联达:java开发,北京,白菜,通过7月的暑期实习转正
  5. 拼多多:服务端,上海,意向书,8月学霸批远程面试
  6. 华为:通用软开,西研所,17k,9月参加现场面

二月

19年2月末面试的阅文集团,这是我人生中第一次面试,当时好多都不会,15分钟就结束战斗了,感谢面试官对我的鼓励和引导。

1、阅文集团实习

  1. 自我介绍
  2. 实验室项目的内容
  3. 使用的框架是什么?
  4. spring ioc和aop的含义
  5. TCP三次握手的流程
  6. 数据库事务有哪些特性
  7. 你知道的垃圾回收算法
  8. 最喜欢哪种数据结构?

三月

2、阿里蚂蚁实习

  1. 自我介绍
  2. 学校项目用了哪些技术栈
  3. spring boot和spring的区别
  4. ioc的流程
  5. aop的实现原理
  6. 说一说你看过的spring cloud源码???
  7. 四次挥手的流程
  8. 为什么需要4次挥手
  9. http协议的端口号
  10. 讲一讲ssh协议的源码???
  11. Java中的线程创建
  12. 线程是怎么实现的
  13. 线程最底层的数据结构是什么???
  14. java虚拟机运行的流程
  15. 堆区如何分类
  16. 垃圾回收有哪些算法
  17. java虚拟机的核心设计思想???

整个面试都被鄙视得很惨,面完以后,第二天给我打电话,安排晚上8点二面。到了8点没有电话,苦等1小时,上去一看已回绝。这个事情对刚开始起步的我打击还是挺大的,第一次被这样鸽真的很伤心,不知道要不要放弃找实习,放弃当一个程序员。最后我咬牙坚持决定继续找。


四月

2019年4月,渐渐地感觉焦虑和痛苦,想要快速上岸,心态越来越不好了。在京东第一次走完所有面试,包括第三轮的hr面,进入录用排序,当时真的以为就要上岸了,结果等了半个月等来一封感谢信,东哥的兄弟不好当啊!期间还难受到发烧了一周,不过相信自己能上岸,还是咬牙坚持学习。

3、字节跳动实习

一面:

  1. 自我介绍
  2. 介绍学校项目1
  3. 介绍学校项目2
  4. 介绍知识图谱的逻辑
  5. 知识图谱怎么生成?
  6. 非关系型数据库和关系型数据库的区别?
  7. 事务的四大特性
  8. 数据库的隔离级别
  9. 乐观锁与悲观锁的区别
  10. 三次握手的流程
  11. 为什么需要3次
  12. http协议的流程
  13. http如何保存登录信息
  14. cookies和session的关系
  15. 进程和线程的关系
  16. 进程之间通信的5种方式
  17. 数组和链表的区别
  18. hash表插入的流程
  19. 工厂模式的含义
  20. 算法题:寻找两个有序数组的中位数。

二面:

  1. 知识图谱如何寻找相距一个点距离为2的点
  2. http协议如何保证安全性
  3. 非对称加密的原理
  4. https协议的原理
  5. 阻塞式io和非阻塞式io的区别
  6. select,poll,epoll的区别
  7. 如何加快数据库查询速度
  8. 聚集索引和非聚集索引的区别
  9. 什么时候不该使用索引?
  10. 索引底层的数据结构
  11. 了解多少大数据的知识
  12. 算法题1:对单链表进行排序
  13. 算法题2:给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。求跳到最后一个位置的最小次数。(跳跃游戏2)

4、携程实习

  1. 自我介绍
  2. 介绍项目所用的技术栈
  3. spring boot的入口是什么?
  4. spring boot的数据库中间件
  5. spring data jpa底层是什么
  6. hibernate和mybatis区别
  7. 写代码1:写出hibernate二级缓存源码(我选择死亡)
  8. 密码是直接存的吗?
  9. 直接存有什么问题?
  10. 存数据应该如何加密?
  11. Java线程池有哪些参数?
  12. 阻塞队列有几种?
  13. 拒绝策略有几种?
  14. 存1000个数需要多大的HashMap?
  15. HashMap的负载因子。
  16. int型总共有多少个数字?
  17. 设计题:假如有10亿个数,只有一个重复,内存只能放下5亿个数,怎么找到这个重复的数字?
  18. 写代码2:寻找单链表的中点(一遍扫描)

5、京东实习

一面:

  1. 自我介绍
  2. 介绍项目
  3. java有几种基本类型,分别是什么?
  4. spring ioc的作用?
  5. spring aop异常处理
  6. 当一段代码被try catch后再发生异常时,aop的异常通知是否执行,为什么?
  7. 数据库事务的四大特性
  8. java中线程创建有几种方式
  9. 讲一讲***模式
  10. java的类加载流程
  11. redis有哪些数据结构
  12. 序列化的含义
  13. java序列化的框架有哪些?
  14. 设计题:如何设计一个秒杀系统(服务端、数据库、分布式)

二面:

  1. 介绍项目
  2. 画图1:画出spring MVC图
  3. 分别讲解M、V、C的各部分
  4. spring boot过滤器
  5. spring boot拦截器
  6. 画图2:画出spring boot处理一个http请求的全过程
  7. 四次挥手的流程
  8. 四次挥手中客户端何时关闭
  9. time-wait有多久
  10. redis内存满了怎么办
  11. redis内存淘汰算法除了lru还有哪些
  12. 网络协议有哪7层
  13. 用过哪些linux命令
  14. 算法题:中序遍历非递归

五月

5月的状态到了绝望的临点,看着周围的人花式上岸,本来准备5月中旬放弃java开始准备读博考公转产品啥的,感谢广联达给我的一份希望,让我在5月获得了第一个宝贵的实现offer。也让我在悬崖上重获信心,能重整旗鼓继续努力,在校招里最终找到理想的工作。第一次成功真的弥足珍贵,3个多月以来的痛苦和迷茫一扫而空了。

6、广联达实习

技术面:

  1. 自我介绍
  2. java的三大特性
  3. 封装、继承、多态的含义
  4. 接口和抽象类的区别
  5. ==和equals的区别
  6. jdk和jre的区别
  7. TCP和UDP的区别
  8. UDP在网络第几层
  9. 进程和线程的区别
  10. 数组和链表的区别
  11. 算法题1:判断二叉树B是否是二叉树A的子树
  12. 说出时间复杂度为O(N)的排序算法
  13. 解释该算法的流程
  14. 说出项目用的三种设计模式
  15. 分别是怎么用的
  16. 看过哪些技术书
  17. 都学会了哪些知识
  18. 谈谈你对jvm的理解

综合面:

就是和hr面差不多

  1. 在项目里干了什么
  2. 老师同学的评价
  3. 怎么分工
  4. 冲突怎么处理
  5. 最困难的部分是什么
  6. 做的最好的是哪一部分
    我记得问题挺多的,其他的记不住了

7、滴滴实习

  1. 自我介绍
  2. 项目的内容
  3. 主要实现了哪些功能
  4. 登录功能怎么做
  5. cookies和session的区别
  6. 注销怎么实现
  7. 怎么保证同样的账号同一时间只能在一处登录
  8. 注销了浏览器客户端页面会不会立刻断开
  9. 为什么游戏里断线页面就立刻会变化
  10. http协议到底能否保持连接
  11. http协议服务端能不能主动给客户端发消息
  12. http长连接的内容
  13. 文件上传如何实现
  14. 文件下载如何实现
  15. 如何保证报文的加密传输
  16. https的原理
  17. 如何在项目里使用https协议

8、freewheel实习

freewheel的实习同样走过了hr面,到了录用审批,hr还加了我的微信,可惜最后依然没有过,因为hc只有一个,给了一个北邮的同学。

一面:

  1. 自我介绍
  2. 数据库有几种连接方式
  3. 对(a,b,c)加索引,查询ab、ac、bc有没有用?
  4. 算法题1:求x的n次方(最优解)
  5. 算法题2:整体反转字符串中的所有字母,如 abc(de&fg^h 反转为 hgf(ed&cd^a
  6. 算法题3:学生表(id,姓名) 科目表(id,科目名,分数)求每个学生最高分的科目和姓名

二面:

  1. 介绍项目
  2. 人员权限管理怎么具体实现
  3. 索引底层数据结构
  4. b加树与b树的区别
  5. linux查看ip
  6. linux查看内存使用情况
  7. 算法题:给定一个单链表 L:L0→L1→…→Ln-1→Ln ,
    将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→…
    (需要实际的进行节点交换)
  8. 设计题:10亿篇文章,如何找出其中出现次数最多的100个词。
    备注:你有10台计算机,每台大概都只能存放总数据量的10分之一

9、深信服星耀计划(实习)

  1. 自我介绍
  2. 项目功能介绍
  3. 画出java运行时内存区结构图
  4. 画出堆区的结构图
  5. 各区采用什么gc方法
  6. CMS收集器的流程
  7. 垃圾收集怎么调优
  8. 类加载器为什么是组合而不是继承
  9. redis有哪些数据结构
  10. zset里边存什么
  11. 单链表查找复杂度O(n)
  12. 能不能更快
  13. 画出跳表的结构
  14. 描述跳表的构建流程
  15. 写出跳表查询的伪代码
  16. 写出跳表插入的伪代码
  17. 跳表的时间复杂度
  18. 写出跳表空间复杂度的推导公式
  19. hash加密如何加盐
  20. 如何设计好的hash函数

10、爱奇艺实习

一面:

1. 自我介绍
2. 介绍项目
3. hash加密用的是什么加密算法
4. 三次握手的过程
5. syn和ack号码的关系
6. http get和post的区别
7. java反射可以获得类的什么?
8. 乐观锁和悲观锁的区别
9. where和having的区别
10. redis持久化的方法
11. java volatile关键字
12. spring的入口什么?
13. List、set、Map的区别
14. linux查看进程

二面:

1. java运行时数据区
2. 程序计数器的作用
3. 虚拟机栈里放了什么
4. 类加载器的双亲委派
5. 为什么需要双亲委派
6. redis主从结构
7. redis哨兵的作用
8. 从浏览器中输入url之后发生了什么
9. ConcurrentHashMap的实现
10. java线程有多少种状态
11. wait和sleep的区别
12. java线程通信同步有几种方式
13. java4种线程池分别是什么
14. CMS收集器和G1收集器的区别
15. spring bean的生命周期
16. 精通哪些消息队列???
17. 精通哪些大数据工具???
18. 精通哪些分布式框架???


六月

先后参加中兴捧月面试大赛和vivo提前批。中兴面试大赛的结果是终面直通资格,后来9月的时候通知我签约,部门是做5g的好像,20号当天去,最后没有去。

11、中兴捧月面试大赛

现场技术面:

2个面试官轮流提问。
1、自我介绍
2、每个项目都做了什么
(那时候我还没去实习,写了好多项目,小的也写上了)
3、知识图谱如何实现。
4、面向对象的特性。(封装、继承、多态)
5、接口和抽象类的区别。
6、事务的特性。
7、三次握手四次挥手。
8、进程和线程的区别。
9、说说你知道哪些数据结构?
10、项目中用了哪些设计模式?
11、都是怎么用的?
12、解释装饰器模式?(之前没说这个)
13、设计题:10亿个数快速寻找中位数

现场综合面:

也是两个面试官轮流提问。
1、自我介绍。
2、项目的意义。
3、项目里你担任的角色。
4、项目里其他人的角色。
5、你如何带领大家。
6、项目中遇到过什么分歧?
7、如何解决?
8、假如有个人就是不做,你该怎么办?
9、导师对你们的项目如何指导?
10、你对中兴怎么看?
11、学长学姐怎么和你说中兴。
12、为什么想来中兴?
13、你想在哪儿工作?
14、为什么之前不报算法大赛?
15、现在参加面试大赛为了什么呢?
16、与通信系的学生相比你觉得你的优势在哪里?

12、vivo提前批后端

技术面:软件工程师(后端方向)

1、自我介绍。
2、介绍项目。
3、介绍所用技术。
4、对string类的理解。接口和抽象类的区别。
5、静态变量存放在内存哪个区域?
6、有一个public static final的HashMap,里边对象的属性能不能修改?
7、说出6种常见的java异常。
8、多线程如何保持同步?
9、java可见性的关键字及其原理。
10、HashMap的实现原理、ConcurrentHashMap的结构、插入和查询的流程。
11、怎么查看java虚拟机内存占用?
12、JAVA内存如何分配?
13、堆区内存如何分配?
14、程序计数器的作用?
15、垃圾回收算法和流程。
16、如何减少full gc的次数?
17、方法区是否需要gc
18、类加载的流程。
19、知道哪些类加载器。
20、类加载器之间的关系?
21、双亲委派模型。为什么使用双亲委派模型?
22、mysql有几种锁?怎么实现?
23、mysql mvcc?
24、你用的mysql存储引擎?为什么选择它?实现原理?
25、innodb事物的级别
26、b加树的结构?与二叉树的区别?与b树的区别?
27、redis数据结构?单线程还是多线程?
28、cpu密集型多线程和io密集型多线程的比较。
29、cpu密集型里如何管理多线程?
30、用什么样的线程池和阻塞队列?
31、cpu线程特别多会产生什么问题?
32、io密集型里怎么减少需要的线程数?
33、io多路复用的原理和实现。
34、这个还不够,怎么减少处理io(和磁盘io交互)所需要的线程?
35、用什么样的队列?你是怎么实现?
36、(我回答的redis的list实现的)这种队列有什么缺点?
37、既然有这样问题,为什么不用rabbitmq?(我说我偷懒了。。。)
38、io量很大,队列很长怎么办?
39、如何分布式存储?
40、你还有什么问题问我?

hr面:

1、为什么选择读研?
2、为什么选择开发岗不去做算法?
3、研究生3年都做了什么?
4、对vivo了解多少?
5、从哪得到的招聘信息?
6、为什么选择杭州?
7、秋招还准备报哪几家?
8、还有什么想了解的?


7月

当时7月在广联达暑期实习,然后只参加了oppo提前批,意外地收获了满意的sp offer,真的是非常开心,虽然并没有立刻结束秋招,但心里已经很满足和感恩了,很感谢oppo,也最终和oppo签了三方。

13、OPPO提前批

一面:技术面

问基础知识,不是特别简单,需要知道一些原理和实现。整体难度和vivo类似。
涉及到网络协议、mysql、多线程、类加载、gc、hashmap、红黑树、b加树、手写设计模式、spring启动原理等方面的各种知识。

二面:部长面

详细询问简历上的内容,包括科研,项目和实习。从你用的模型,框架,数据库,缓存等各方面仔细地问,包括原理还有实现,还会给项目出新的情景问题(需求)问你的解决方案。还有关于redis和mysql的各方面包括实际应用问了很多。

hr面:

从各个方面聊你的生活情况,人生规划等。我感觉展现真正的自己,实话实说就好。


8月

8月面了6家。项目也逐渐理解了,感觉也渐渐找到了,但是也有太老实作死的结果,让人家hr觉得你这么多offer,还面了这么多家,估计不回来,然后就凉了。其实也对,人不能太贪心哦。

14、百度提前批

一面

  1. 介绍学校项目以及提问
  2. 四次挥手的过程
  3. HashMap的实现原理
  4. Hash冲突
  5. Hashmap插入过程
  6. ArrayList和LinkedList的区别
  7. Java内存模型
  8. 大对象放在哪个内存区域
  9. GC的方法有哪些
  10. 栈中存放什么数据
  11. 哪些对象可以作为GC Root
  12. 查看GC状态的命令
  13. Java怎么实现多线程?
  14. Java创建线程的方法?
  15. Futuretask和callable的区别?
  16. Callable和runnable的区别?
  17. 线程池分几种?拒绝策略有哪些?
  18. Synchronized和Reentrantlock的区别,分别怎么实现
  19. CAS的含义
  20. Mysql知道几种存储引擎,有什么区别
  21. Innodb的行级锁的实现
  22. Innodb的行级锁有几种
  23. Innodb的隔离级别
  24. 事务的特性
  25. 数据库怎么优化
  26. 索引的数据结构
  27. 讲一讲b加树
  28. b加树有哪些优点
  29. Redis的数据结构
  30. Redis为什么快?
  31. Redis单线程还是多线程,为什么?
  32. Redis分布式锁
  33. spring boot和spring的区别
  34. 讲一讲对spring的认识(ioc、aop?)
  35. Spring aop实现原理
  36. Spring动态***默认用哪一种
  37. 说说你熟悉的设计模式
  38. 说说适配器模式
  39. Rpc了解吗?
  40. Hadoop了解吗?
  41. 写代码:写出spring jdk动态***的实现。

二面

  1. 介绍实习以及提问
  2. TCP/IP协议四层模型
  3. 线程池的参数和含义
  4. 线程池有几种
  5. newCachedthreadpool线程无限多会怎么样?
  6. 说一说对concurranthashmap的原理
  7. concurranthashmap和hashtable的区别。
  8. 了解TreeList吗?底层实现?
  9. 说一说你了解的红黑树。
  10. CAS的原理
  11. i加加是不是原子操作,为什么
  12. Mysql mvcc
  13. 版本号各有什么用?
  14. 带版本号时的插入删除过程是什么?
  15. Innodb默认隔离级别
  16. 脏读和幻读的区别是什么?
  17. GC的全流程
  18. GC中老年代用什么回收方法?
  19. 说一说策略模式。
  20. Linux如果cpu满了,用什么命令?
  21. 找到线程之后用什么命令?
  22. 算法题1:二叉树后序遍历非递归
  23. 算法题2:链表如何判断有环,链表有环求长度

15、顺丰sp专场

  1. 介绍实习做了什么?
  2. Java的基本类型
  3. String是基本类型吗?
  4. String、Stringbuffer和StringBuilder的区别
  5. 介绍项目做了什么?
  6. 线程的实现方式
  7. 线程有哪些方法?
  8. Wait()是线程的方法吗?
  9. 项目中使用多线程的场景
  10. 是自己手写的吗?
  11. mysql分页
  12. Mybatis占位符
  13. 算法题:如何判断一个数是不是2的整数次幂?

16、shopee后端

一面:

  1. 介绍实习内容和你做了什么
  2. 进程和线程的区别
  3. 多线程如何同步
  4. 线程同步的实现方式(抛开语言,操作系统里)
  5. 讲一讲线程死锁
  6. 如何避免线程死锁
  7. 操作系统的线程/进程调度
  8. 说三种排序算法(快排、堆排、归并)
  9. 讲一下其中两种的原理(堆排、归并)
  10. 算法1:手撕快排
  11. 算法2:有环链表求环长度
  12. TCP和UDP的区别
  13. 说UDP的一个实际应用场景
  14. TCP的流量和拥塞控制
  15. 讲一讲ARP协议
  16. Mysql事务
  17. Mysql事务是怎么实现的
  18. Mysql的隔离级别
  19. 算法3:求二叉树两个节点的最近公共父节点

二面:

  1. 跳台阶问题(思路和理由)
  2. 聊实习和项目做了什么工作(详细)
  3. 然后开始聊人生。。。
  4. 老师对你的评价(最好/最坏)
  5. 同学对你的评价(最好/最坏)
  6. 实习的收获
  7. 喜欢什么样的工作?
  8. 对未来的规划
  9. 对shopee了解多少?
  10. 反正各种类似于hr面的问题,时间久了我也记不太清了

17、远景智能sp专场

一面:

  1. 多态的含义
  2. 反射的作用
  3. 反射的实现
  4. 事务的ACID
  5. 事务的隔离界别
  6. 了解socket吗?
  7. Socket可能超时的情况
  8. Websocket和socket的区别?
  9. http如何保存状态
  10. Cookie和session的区别
  11. 多播和广播的区别
  12. 观察者模式
  13. 策略模式
  14. 设计模式的开/闭原则
  15. 算法题1:连续子数组最大和
  16. 算法题2:二叉树的右视图

二面:

  1. 介绍实习
  2. 实习你做了哪些内容
  3. xml上传的实现方式
  4. 为何需要三步
  5. 重新设计整个项目上传功能
  6. 实习中用到了哪些设计模式
  7. 分别在什么功能里用
  8. 梳理类与类之间的关系
  9. 掌握哪些框架
  10. redis在项目里怎么用
  11. 具体怎么写,增删改查流程是什么
  12. 分布式准备拿什么框架做
  13. 对java虚拟机的理解
  14. java7和8的两个区别
  15. 为什么hashmap链表要转红黑树
  16. 为什么长度超过8转
  17. 为什么要把字符串常量池放到堆区
  18. java8方法区的变化

三面:(hr)

  1. 实习内容
  2. 转正情况
  3. 有没有offer
  4. 还在面哪几家
  5. 希望去哪里工作
  6. 怎么了解远景

四面:(总监)

  1. 对远景了解多少
  2. 远景的物联网做什么
  3. 项目和实习的内容
  4. 项目的亮点
  5. 为什么用redis
  6. Mysql缓存和redis的区别
  7. 磁盘io的速度
  8. 查询的全流程
  9. 数据库表结构怎么设计
  10. 数据量有多少
  11. 为什么不选择读博而是工作

18、猿辅导服务器开发

一面:

1、你在项目在遇到过最困难的事。
2、操作系统、网络原理、编译原理。。。你最擅长哪个?(网络?)
3、浏览器的地址栏里输入一个url,点一下回车,会发生什么?
(1)浏览器怎么得到url?
(2)DNS解析是发送整个url吗?
(3)DNS解析详细过程。
(4)TCP三次握手之前需要什么?
(5)ARP解析过程。
(6)ip怎么寻址?
(7)TCP第三次握手的作用是什么?
(9)TCP连接建立之后呢?
4、算法题:单链表,翻转n-m段链表。
5、算法题:给出有序数组和target求距离target最小的位置(min distance index)。

二面:

1、自我介绍。
2、重点介绍实习内容以及你做的工作内容?(详细)
3、人员权限管理模块怎么设计?
4、sql题:
student:id, name, age
student_score: id,student_id, course_id, score
平均成绩前三的student_id, name
5、数据库索引的数据结构。
6、b加树和b树的区别。
7、为什么索引用b加树而不用红黑树?
8、死锁的条件。
9、如何设计来避免死锁。
10、算法题:求连续子数组最大和以及对应子数组的首尾坐标。

三面:

1、自我介绍。
2、重点介绍学校项目的内容。
3、介绍自己做的内容(详细)。
4、画图:3个后端模块画项目流程图(详细)。
5、讲后端流程中每一部分怎么实现。
6、各部分怎么保证多线程安全。
7、Redis一致性怎么保证。
8、Redis分布式锁的原理。
9、你所了解的分布式一致性算法。
10、画图:深度学习模块项目流程图(详细)。
11、讲深度学习流程中每一部分的含义。
12、Python程序是怎样定时运行的。
13、nlp和cv数据预处理各自的流程(实验室课题不便透漏,用大方向nlp和cv代替)。
14、nlp和cv各用了什么模型。
15、结果返回的实效性问题。
16、项目有没有分布式部署。
17、如果要部署怎么部署。
18、设计题:有一个二维坐标系上有10亿个点,给定一个圆,如何快速得出哪些点在圆中(返回点集)?

19、拼多多学霸批服务端

一面:

1.自我介绍
2.在实习中都做了什么?(详细)
3.学过哪些课?编译原理课的内容
4.笔试题第一题思路
5.笔试题第二题思路
6.网络7层模型
7.Tcp和udp位于哪一层
8.Ip寻址流程
9.Tcp和udp的区别
10.进程和线程的区别
11.Java调度进程和线程
12.Hashmap的结构
13.String和Stringbuffer的区别
14.你用过哪些设计模式
15.静态***实现
16.动态***实现
17.观察者模式
18.观察者模式的使用场景
19.e-r图
20.Jvm内存区域划分
21.一个对象从进入堆区到死亡的全流程
22.数据库索引的实现
23.介绍B加树
24.数据库两种存储引擎的区别
25.为什么myisam不支持行锁
26.写代码:

  • 记录:id, status
  • 存储:256库*256表
  • 场景:需要扫描所有数据,找出所有status=2的id列表
  • 要求:同一份代码,部署20台服务器,速度快,且每一张表不会被扫描2次

27.大学期间遇到过最大的困难以及解决?
28.为什么选择读计算机?
29.为什么不考公务员?
30.以后想做的方向
31.10年以后的设想

二面:

1.自我介绍
2.学校项目都做了什么?(详细)
3.具体用到的技术?
4.深度学习模块怎么实现?
5.问了问nlp流程
6.nlp模型各部分的作用
7.神经网络训练的原理
8.训练集和测试集的比例
9.用了哪些设计模式
10.Spring aop怎么实现?
11.Mysql索引的实现
12.使用b加树的理由
13.B加树做索引比红黑树好在哪里?
14.项目里Redis怎么用
15.分布式缓存可能出现的问题
16.分布式锁
17.Setnx加锁的原理
18.怎么解除分布式锁?
19.Jvm内存区域划分
20.程序计数器的作用
21.本地方法栈和虚拟机栈的区别
22.Gc全流程
23.Gc算法
24.连接过程中什么时候会出现time_wait状态
25.为什么要有time_wait状态
26.一致性hash了解吗?
27.一致性hash的优点?
28.设计题:有一个服务器专门接收大量请求,怎么设计?
29.同步和异步的区别
30.非阻塞io和阻塞式io的区别
31.http如何保持连接
32.如果不用http,如何保持连接
33.Volatile 关键字的作用
34.Volatile 关键字的实现
35.用户态和内核态的区别
36.lru了解吗?
37.怎么实现lru?
38.布隆过滤器了解吗?
39.算法题:二叉树前序遍历非递归


9月

一鼓作气,再而衰,三而竭,8个月的校招大作战也该结束了。面完华为我就停止了面试。

20、华为西研所通用软开

一面:

  1. 笔试题第一题思路
  2. 笔试题第二题思路
  3. 笔试题第三题思路
  4. 介绍实习所做的内容
  5. 介绍实习所用的技术栈
  6. 介绍nlp分类模型
  7. 为什么选用结巴分词?
  8. 有没有更好的选择?
  9. 训练词向量的过程
  10. 分类模型的流程(各部分功能)
  11. static有哪些作用?
  12. 说几种排序算法(快排、堆排、归并)
  13. 画图讲解堆排序的全过程
  14. 手撕代码1:求n!
  15. 手撕代码2:反转字符串中的每个小字符串并输出,输入的字符串中有下划线。
    如abc_def_gh,反转后的结果cba_fed_hg
  16. 手撕代码3:求二叉树所有叶子结点的和
  17. 手撕代码4:手写单例模式

二面:

  1. 说说你所有项目中的亮点有哪些
  2. 学校项目的整体结构设计
  3. 实习项目的整体结构设计
  4. 加盐hash加密算法的流程
  5. 为什么要用redis
  6. 有缓存情况下查询的流程
  7. 有缓存情况下修改的流程
  8. spring boot和spring 的区别
  9. aop如何实现
  10. 动态***有几种
  11. 静态***和动态***的区别
  12. 动态***与反射
  13. 项目如何进行分布式部署
  14. spring cloud如何进行配置
  15. 缓存命中率低会发生什么?
  16. 如何解决缓存穿透?
  17. 怎么样过滤掉不存在的key值?
  18. 布隆过滤器的原理
  19. gc的过程
  20. system.gc()是否可以立刻出发gc
  21. 如何立刻触发gc()
  22. 描述二叉树如何实现dps和bfs(非递归)
  23. dfs和bfs的区别
  24. 各自举出一个只能用dfs和bfs的场景
  25. 手撕代码1:
    以下代码是否有问题?
    有什么问题?
    补充代码解决这个可能的问题。
    public class A{
    int val;
    A(int x){this.val=x;}
    }
    A a=new A(1);
    A b=new A(1);
    HashMap<A,Integer> map=new HashMap<A,Integer>();
    map.put(a,1);
    map.put(b,1);
  26. 手撕代码2:输出以1开始的n个正整数(1,2,...,n)的第k个排列。(要求回溯法)

三面:

  1. 介绍学校项目的内容
  2. 深度学习部分如何与后端项目结合
  3. nlp的步骤
  4. 分词的原理
  5. 使用wordtovec训练词向量的原因
  6. 有没有更好的选择?
  7. 下一步的科研计划
  8. 概率论学了什么内容
  9. 概率论如何与深度学习结合
  10. 神经网络学习的原理
  11. 反向传播算法
  12. 训练集和测试集的比例
  13. 分类模型的各步作用
  14. 为何要使用双向的循环神经网络
  15. 注意力机制层的作用
  16. 训练中如何调整注意力机制层的权值
  17. 为什么可以在nlp中使用卷积神经网络
  18. 全连接层如何连接
  19. softmax分类器的原理
  20. 科研项目使用的框架
  21. 实验中你调整了哪些参数
  22. 数据集的来源
  23. 分词前是否还需要额外预处理
  24. 你觉得还需要多少数据量合适
  25. 了解哪些机器学习方法
  26. 决策树和神经网络的区别
  27. SVM和神经网络的区别
  28. 深度学习相比机器学习的优点有哪些
  29. 深度学习自身存在哪些缺点
  30. 在项目里担任什么角色?
  31. 如何处理冲突?
  32. 实习时如何进行项目对接?
  33. 自己的优/缺点
  34. 10年内的工作规划
  35. 以后想要在哪个城市工作
  36. 校招选择工作时的标准

我的感悟:(大佬请跳过)

1、坚持就是胜利
只要有进步,哪怕是一点点的进步,坚持下来都能有大的收获。
2月第一次面试,3月第一次进二面,4月第一次走完hr面,5月第一个实习offer,6月第一个校招offer,7月第一个满意的sp offer。
所以不管基础如何,聪不聪明,刻不刻苦,都要坚持下来。
2、对后续批次的影响
一般来说,投简历不会影响,笔试也不会影响,但是面试就会有面试记录。有了挂掉的面试记录总是不太好的。建议:不要太早投心仪的公司、0 offer时不投面试挂过的公司(提高通过率)
3、如何学习(因人而异)
要寻找适合自己的学习方法。
书的话我就完整看了一本疯狂java讲义,因为感觉看书不太容易记住
我喜欢看博客,针对每个知识点看博客,比如针对垃圾回收看很多篇博客。
知识点从面经找就行了,每找到一个不会的点就把相关的博客多看看,理解了能记得更牢。
4、多面试,记住自己的面经
自己的面经对于自己最有针对性,优先弄清楚自己的面经。
多面试可以给自己更多的经验,在面试中成长。
5、刷题
刷leetcode,我觉得100就够了(针对面试),尽量先做剑指offer上相应的题。
选择leetcode是因为leetcode上有好多不错的题解,有些比剑指offer官方的还好。


许愿环节

牛客是个神奇的地方
许愿签约顺利
许愿论文顺利
许愿毕业顺利
许愿入职顺利
许愿工作顺利
许愿万事顺利


#面经##Java工程师##校招##实习#
全部评论
好努力呀
1 回复
分享
发布于 2019-09-26 22:36
师兄是从研一下学期开始投实习的吗?
1 回复
分享
发布于 2020-02-02 12:20
博乐游戏
校招火热招聘中
官网直投
和楼主差不多,体验过春招实习迟迟上不了岸的绝望,之后一直坚持学习现在也收了几个offer,所以真的建议下一届的同学不管去不去实习都一定要参加春招体验一下
4 回复
分享
发布于 2019-09-26 22:39
大佬tql
点赞 回复
分享
发布于 2019-09-26 22:43
良心贴,顶一波
点赞 回复
分享
发布于 2019-09-26 22:59
点赞 回复
分享
发布于 2019-09-27 00:23
点赞 回复
分享
发布于 2019-09-27 00:30
顶一下大佬
点赞 回复
分享
发布于 2019-09-27 01:22
兄弟院校,顶一波老哥
点赞 回复
分享
发布于 2019-09-27 10:24
给校友顶贴
点赞 回复
分享
发布于 2019-09-27 10:30
厉害厉害坚持就是胜利!
点赞 回复
分享
发布于 2019-09-27 10:50
看完了,作为下一届的校友表示很慌
点赞 回复
分享
发布于 2019-09-27 15:48
坚持就是胜利
点赞 回复
分享
发布于 2019-09-27 21:43
楼主业界良心呀!!!沾沾仙气
点赞 回复
分享
发布于 2019-09-28 00:49
顶帖,大佬厉害
点赞 回复
分享
发布于 2019-09-28 10:46
厉害呀
点赞 回复
分享
发布于 2019-09-28 14:23
大佬牛逼
点赞 回复
分享
发布于 2019-09-28 15:11
楼主最后去哪儿了
点赞 回复
分享
发布于 2019-09-28 15:59
mark!!!
点赞 回复
分享
发布于 2019-09-28 16:05

相关推荐

投递腾讯等公司8个岗位
点赞 评论 收藏
转发
102 931 评论
分享
牛客网
牛客企业服务