收工了!今年秋招拿下4个offer——腾讯/网易/华为/顺丰(Java研发岗)

虽然秋招时间一般定在9月-11月,但大部分人在10月中下旬就结束了自己的秋招,而我也不例外。今年秋招收获颇丰,在意料之中也在意料之外,总共拿下了4个offer,分别是腾讯、网易、华为、顺丰。特分享一下这次面试的一些真题,希望对一些还在秋招前线奋战的朋友有所帮助!

image

需要的朋友:直接点击文档窗口(https://jq.qq.com/?_wv=1027&k=gLUIIwrn)免费领取

腾讯OMG部门(3面技术+HR面)

image

附上我的录用意向书吧

腾讯OMG部门一面(用时36分钟):面试官比较年轻,应该从业年龄不长,说话也比较慢,看得出是一个比较内向的人

自我介绍一下自己

讲一下实习项目(实习项目着重讲了自己做的一些贡献,然后面试官根据我的实习项目提了几个问题,自认为答得比较满意,从表情上看)

数据库相关(数据库优化、数据库分表的操作、索引有哪些、索引底层的实现等)

网络(协议,三次握手、为什么三次握手,客户端发送到服务器端经过的网络层次和步骤等)

redis(简历上有些,就要我先自己说说知道的redis哪些知识,然后问了一个分布式锁)

你会C++么?有了解什么新技术吗?

讲一下HashMap 底层的实现

HashMap 扩容的机制和扩容的时候的里面元素的位置是否会改变。

HashMap 的 hashCode 为什么要再 hash,你来设计一个 hash 算法。

ConcurrentHashMap 怎么实现并发。

ConcurrentHashMap 加锁机制。

直接说我答得不错,准备一下二面

腾讯OMG部门二面(用时48分钟):面试官有些严肃,也不笑,所以进去有些紧张,后来前面问的几个问题答得比较顺利,才慢慢放松下来

开局照常自我介绍

问一个之前实习的项目,然后具体聊了一会,大概10分钟左右的样子

单服务如何处理高并发?

Mybatis自动识别功能

如果让你自己实现一个crane,你会怎么做?

分布式crane怎么实现?

MQ底层实现原理

JAVA面向对象特性有哪些?

讲一讲JVM回收机制

如何确认一个对象是否应该回收?

讲一下JAVA的四种引用方式

对网络连接中的IO了解多少?说一下

讲一下分代回收特点

问了一些JAVA锁的问题

腾讯OMG部门三面(30分钟):有一点年纪了,头发秃得差不多,感觉是个大神,估计是技术总监之类的,说话还挺和蔼的

说一下你自己未来的规划

问了一下项目情况,项目整体架构,针对性的提问 大概7分钟左右

用过python和go么?(没有)

Java内存模型

Java并发,怎么实现多线程?

多线程并发问题,怎么解决?

Java并发控制,锁机制,怎么实现的?

说一下乐观锁

Mybatis和Hibenate的区别,为什么用Mybatis

Mysql的并发量?锁是怎么加的?

RabbitMQ怎么用的

最近在看什么书

除了腾讯还投了其他的公司吗?

你有什么想问的?

腾讯HR面(非常快,感觉只有20分钟左右)

自我介绍

介绍一下实习经历

实习中遇到的困难以及如何解决这些困难

为什么不考研?

职业规划

投了哪些公司?

为什么没有投阿里?

有什么想问的?

image

网易互娱服务端研发(2面技术+HR面)

网易互娱一面(一进去有2个面试官,就开始有些紧张,后来都是一个面试官在问,另一个面试官对着我微笑,瞬间就放松下来)

简单的自我介绍

之前的实习项目

为什么没有留在实习公司?

对Java的Map了解吗?(请说出其中的几个接口,怎么获取key,怎么判断是否包含key,哪些实现了Map接口,map的hash以及数据结构,1.7和1.8的区别等等)

写一个栈的实现,用数组,确保最大队列长度为k

怎么确保当所有线程执行到某个点等待,直到所有线程都执行到时一起往下执行

cyclicbarrier和countdownlatch有什么区别,以及应用场景。

怎么查看是哪一条SQL执行慢?

数据库的四种隔离级别,怎么避免脏读?

讲一下hashmap和currenthashmap的数据结构

还有什么我没有问到的吗?

网易互娱二面(大概45分钟)

简单地介绍一下自己

说说你的项目吧

看到你项目里用线程池做机器学习训练,线程池是怎么用的?

CAS和ABA问题

线程池中corePoolSize,maxPoolSize,如果当前线程数还没到maxPoolSize,队列里会排队等待吗?

怎么实现线程安全?

HashMap是非线程安全的,你怎么把它变成线程安全的?

Tomcat是类加载实现结构,它有哪些实现类加载器?

Hibernate底层是怎样实现ORM映射的?

缓存队列,有用过吗?

分布式了解过吗?两阶段提交,CAP理论会吗?

你有想问的吗?

网易互娱HR面(是一个很漂亮的小姐姐,感觉猪厂的颜值都好高啊)

介绍下自己

说一下你自己的性格

同学和同事对你的评价

为什么不读研?你有女朋友吗,你目前面过哪些公司?

期望的薪资

你期望工作的城市

你有什么问题要问我的?

image

华为消费者BG(3面+HR面)

华为消费者BG一面(问的一些基础问题,面试官说话很温柔,自己答得也很顺利)

介绍一下你的实习项目吧(没有问什么问题,感觉直接略过了)

给一个二叉树,调整成AVL树,说明过程

讲一下多态的实现方式

讲一讲Java反射机制

板编程和重载的区别适应场景

多线程编程使用到的的一些接口函数

讲一下多线程避免死锁的方式

讲讲Linux系统的内存管理方式

算法:一组数,返回最长的和为target的子序列

华为消费BG二面(感觉是个架构师,不过不严肃,进去就跟我握手,给人的感觉很好)

先自我介绍一下吧

说一下项目

根据项目开始提一些问题(有多少张表,表间关系,为什么这么设计,遇到了哪些问题,怎么解决这个问题的,你做出了哪些贡献等等)

索引

说下Mysql的两个引擎

讲一下索引的优势和劣势

为什么选择b类树做索引

m阶b+树做索引 m取0和无限有什么区别?

索引在什么情况效率最高?

撕代码,10进制转n进制(讲一下思路)

华为消费BG三面

讲一下实习经历吧,主要说一下实习期间都做了什么?

fragment了解吗?说一下

并发了解吗,Java常用的线程操作类有哪些?

如果我想让五个线程同时执行结束完再执行主线程,该怎么做?

手写一个线程池

讲讲线程池参数

了解动态代理吗,讲讲

动态代理主要的作用是什么?

了解注解吗,怎么用注解?注解的原理是什么?

数据库都用过哪些?

我来问问传统的MySQL,讲讲数据库都有哪些索引,各有什么用?

一般什么情况下会使用索引?

什么情况下索引会失效?

数据库怎么调优?

你还有什么觉得自己比较擅长的方面,可以给我讲讲吗?

你了解锁优化吗?

华为HR面(电话面,问了几个常规题)

大概是个人职业规划、薪资、未来方向等

image

顺丰科技(2面+HR面)

顺丰科技一面(面得很快,感觉面试官很赶时间)

自我介绍

项目介绍

JVM 的GC说一下

c=a+b ,JVM可以执行多少次?

讲一讲HashMap底层实现

动态规划的思想

深度优先检索。

TCP的四次挥手

项目中RabbitMQ的作用,怎么实现的?

kafka了解吗?讲一下

顺丰科技二面

大量int数据,值为1~10000,排序并去重,讲思路(桶排序),能不能用Java自带的方法实现?(TreeSet)

实现LRU,并增加过期功能,类似Redis里过期键的删除(讲了思路,在纸上画示意图,没写代码)

熟悉哪些设计模式

set和list

说一说NullPointerException如何发生,我举的一个例子我说的如果一个对象本身为null,调用该对象的方法会报出空指针异常

java异常类型

Spring相关问题,一个类中有三个方法A()、B()、C(),都配置好了事务并且传播方式没设置错,执行{A();B();this.C()},为什么回滚后结果有问题?

讲一下Spring AOP的两种实现方式

redis事务与mysql事务有什么区别?

了解哪些排序,各个时间复杂度,说一下快排和归并排序具体做法

顺丰科技HR面

介绍一下自己的实习项目,用我听的懂的语言

那你觉得自己从中学到了什么呢?

讲一下自己的优点

讲讲你的职业规划

投了哪些公司?拿到几个offer了?

你怎么看待互联网公司996的问题?

说一下你的薪资要求吧

你还有什么想了解的吗?

总结

最后,给面试题做一下总结,大部分互联网公司在招聘技术岗位时,问出的面试题都是注重基础与深度的,所谓的基础也就是一些常问的知识点,这考的是面试者对基础知识的一个掌握程度,如果基础知识都掌握不够,那么再优秀都是空谈。另外,深度层面也很重要,所谓的深度就是在工作中遇到的问题,不要把问题停留在解决的层面,还应该考虑到问题的背后,比如原理、预防、解决办法等等,这两点都能够做到,基本上面试顺利,没啥问题。

为应对一线大厂面试,我做了哪些准备?

(一)调整自己的心态,正确面对得失

面试中常见的问题,主要是心态,面试调整心态是第一位的,如何调整成最佳心态呢?很多求职者在面试过程中自己思路不清晰,语言不流畅,说话毫无逻辑,会不断否定自己,归根结底都是面试心态问题,所以调整自己的心态,正确面对得失是非常重要的,我的方法是给自己足够的心理暗示。

image

(二)提升技术,扩宽知识

对于程序员来说,要想成长为一名行业内的大牛大神级别的人物,那么唯一的办法就是通过学习,来不断提升自己的技术,扩宽知识,达到一定的高度和深度。那么如何提升自己的技术,扩宽自己的知识储备呢?

以下是我个人的一些做法,希望可以给各位提供一些帮助:

  • 21天啃完283页的pdf文档

**Java部分:**Java基础,集合,并发,多线程,JVM,设计模式
**数据结构算法:**Java算法,数据结构
**开源框架部分:**Spring,MyBatis,MVC,netty,tomcat
**分布式部分:**架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
**微服务部分:**SpringBoot,SpringCloud,Dubbo,Docker

image

  • 实战系列:Spring全家桶+Redis等

image

  • 其他相关的电子书:源码+调优

image

(三)刷题

如何刷题?这是很多现在面试者心中的困惑,我们都知道,面试前刷题是很有必要的,毕竟很多题目都有一定的共性,刷足够题目就能够做到举一反三,甚至在面试时,被问到原题,能够侃侃而谈,那么刷题如何进行呢?建议:最好找一些历年的面试原题,分专题来对自己进行训练。

以下是我私藏的面试题库:

image

结束语

对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。另外提醒一点,充分复习,是消除你紧张的心理状态的关键,但你复习充分了,自然面试过程中就要有底气得多。

以上内容中所有的学习资料、面试资料,均可以免费提供,希望大家金三银四面试顺利,拿下自己心仪的offer!

需要的朋友:直接点击文档窗口(https://jq.qq.com/?_wv=1027&k=gLUIIwrn)免费领取~
欢迎关注专栏:Java架构进阶团。里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页