1

微信公众号【程序员江湖】

作者黄小斜,斜杠青年,某985硕士,阿里研发工程师,于2018 年秋招拿到 BAT 头条、网易、滴滴等 8 个大厂 offer

个人擅长领域 :自学编程、技术校园招聘、软件工程考研(关注公众号后回复”资料“即可领取 3T 免费技术学习资源)

前几天我发了一篇文章从零基础到拿到网易Java实习offer,我做对了哪些事,这篇文章介绍了我准备2017年春招实习的历程。但是呢,里面没有很详细的面筋,很多读者觉得不过瘾,于是笔者从尘封多年的帖子中找到了我当年记录的面经,在这里分享给各位看官哈。

此生与你,江湖相逢

阿里巴巴 春招实习 电话面试

一面

那一年春天,大概是3月份左右,兴致勃勃地投了阿里的Java实习岗位,没有内推,走的是正式流程,结果面试却来的比想象中早一些。

当时是在阿里招聘官网上直接参加视频面试,第一次面阿里,当时还是挺紧张的。

一面面试官问的问题比想象中要简单,一起来看看都有什么题目吧。

1 项目

当时我没有什么拿得出的项目,一个是学校的实训项目,一个简单的Java Web应用。另一个则是我在大四暑假水来的实习项目。总体来说没啥亮点。

2 项目中的问题

面试官显然对这些项目没啥兴趣,所以没问几个问题就跳过了。

3 Java三大特性

4 Jvm虚拟机 内存结构、算法、垃圾回收

当时已经看过了《深入理解JVM》所以这些问题基本都回答上来了。

5 集合类 链表和数组的区别 map和set的区别

主要考察对集合类源码的理解,那个时候理解的还不深,但是这些都是面试常见考点,我靠着刷面经也基本都答上来了。所以建议大家要多看看集合类的源码,后来我在秋招的时候就避免了这一问题。

6 二分查找代码

7 mysql相关的问题

8 spring

9 前后端数据交互

10 网络、操作系统

后面这些问题记不大清了,但是都问的比较基础,基本上就是刷过面经就能搞定的程度,当时对数据库的索引没有答好。

后续:

一面之后马上来了二面,二面面试官问了一个问题就让我等结果,并且告诉我他们的部门是阿里云。

本来我还以为这是过了的意思,后来一个HR问我一周内能不能到岗,我说大概要两周,结果。。。结果居然就没有下文了。

到现在我都不知道这个HR是不是因为时间问题而拒绝了我。于是我就这样第一次和阿里擦肩而过。(第二年春招实习我又和阿里擦肩而过,不过那一次是我主动放弃的)

所以告诫大家,如果真的是很想去的公司,一定要做好随时打包上班的准备,不要重蹈我的覆辙。

腾讯  春招实习 电话面试

一面挂

很兴奋地参加了腾讯的春招实习生面试,当时对腾讯的后台开发岗位还没啥了解,事业群也没选。然后妥妥地一面挂了。

1 http的数据包格式

2 tcp包含ip么

3 tcp的数据包格式

腾讯确实很喜欢考计算机网络,我当时对这块基本没准备,挂的很彻底。

4、mysql数据库连接池的驱动参数

5、数据库连接池如何防止失效

6、部署项目时tomcat 的参数

问的角度有点刁钻,当时没答上来,感觉有点劝退的意思。

7 热加载的原理

8 mybatis的#和$号区别

9 java的jdk源码

10 hashmap的iterator读取时是否会读到另一个线程put的数据

这个是不会的,迭代器在迭代时如果集合类插入新元素,modcount会变化,此时迭代器的迭代过程应该会失败退出。

11 Linux的显示文件夹大小 ls -al

12 Linux的查看端口状态 natstat加参数

13 linux的查看进程的启动时间 linux ps

好吧,这就是腾讯第二喜欢的操作系统和Linux。

腾讯 日常实习生 电话面试

一面挂

当时我已经去了网易游戏实习,某天在杭州逛该的时候,接到了腾讯的面试电话,于是我就在商场里完成了这次面试。当时是CDG部门面的我,尴尬的是当时我不知道这个事业群,导致我重复问了面试官好几遍才确认:好吧,我没听说这个事业群。

简单说一下面试题吧:

1 自我介绍

2 项目

3 java的堆和栈

4 内存泄漏发生在哪

5 设计模式 工厂模式 单例模式 举例子

6 mysql数据库  实现层级树形结构  引擎  索引  查询优化  多方面

这些面试题跟之前面试遇到的没有太大区别,但是答得并不是很好,因为我那时候对有些知识点的理解还是停留在表面,所以时间一长马上就忘了。这方面不知道各位有没有同感。

7 微信红包的设计   开发  注意    用户数据的统计  项目相关

不是很常见的面试问题,主要考察系统设计方面的知识,没答好。这道题网上也可以找到答案,一些常见的系统设计场景题例如:秒杀系统,直播系统,大家平时也可以稍微了解一下。

滴滴  日常实习生 电话面试

一面挂

1项目ssm

2mybatis与hibernate比较

3快排和冒泡

4hadoop redis

这个当时还不会,连基本概念都不晓得。后来才开始慢慢重视这方面的学习

5 Linux 显示文件属性  杀死进程   找出出现次数最多的ip linux指令

打扰了,对Linux命令极为不熟悉,建议后端同学重视这方面内容的积累。

6 sql中唯一索引的使用

索引字段若相同则更新,不同则插入。

7 hashmap的线程安全,性质

8 多线程的使用

9 同步解决线程安全但带来低效率问题。

10 map reduce过程

11 spring的几个特性

12 aop事务的隔离级别和传播特性

默认隔离级别: ISOLATION_DEFAULT

感觉答的还可以,但是没有回音,有点奇怪。

网易游戏(offer)电话面试

一面:

1 项目内容

2 数据库设计

3 项目中并发使用,部署情况,测试情况

4 系统页面读取不一致,使用异常或者警告。

5 项目中的上传功能

面试官对项目考察的挺多,好在我事先准备的比较充分,基本都打了上来。

6 final finalize finally的用法和区别

7 hashmap原理

8 static作用域

9 大型系统的架构:高可用,高性能,伸缩性,扩展性。

刚好之前看了《大型网站技术架构》这本书,把后端架构的基础理论搞懂了一些,所以面试官问起来也能比较好地回答。

10 算法 二维数组求最大图形面积

11 SQL语句  查找

12 spring的核心原理:ioc aop di

ioc:控制反转,松耦合,自动完成依赖注入。

注入方式:构造器,setter,接口。

实话说,当时对这块内容理解不深,主要靠刷面经来学习知识点

13 hashmap线程安全 stringbuffer 和 stringbuilder.

二面:

1 项目经验

2 简历内容确认

3 两个智力题

甲有一个王和另一张牌,乙有两张牌,问甲拥有两张王的概率和乙拥有两张王的概率

概率问题,不会做

一个圆桌,两人放棋子,谁没地方放旗子谁输,问有没有必胜办法。

先手放在圆桌中心则必胜

如果你是Java方向的同学,那么我打算向你安利我的另一个微信公众号【Java技术江湖】这是一位阿里Java工程师的技术小站,致力于分享Java后端技术文章,以及这几年学习Java的心得体会,偶尔也记录在阿里成长的点滴,和大家一起在Java学习道路上成长。

360 春招实习 电话面试**

一面

1 volatile  原理 使用 指令重排  内存屏障  保证内存可见性

2 项目

3 Java的特性   抽象类和接口区别

4 aop切面的功能 和继承的关系

二面:

1 Java的内存模型

2 Java gc 算法 垃圾收集器 分代 分区 参数配置

Java程序运行时与内存模型的关系,堆中有实例,永久代保存类的信息,加载类后自动初始化静态内容,然后虚拟机栈进行操作,对象引用指向堆中的实例,实例需要调用对应方法。

4 左移有序数组的二分查找

5 volatile的实现

6 cas操作的实现

底层硬件支持,cas为一条机器码指令

7 synchronize关键字的使用

8 lock的原理和实现,lock和synchronized的区别

9 写一个电梯需要用到的类和方法

一道面向对象设计问题,常见的题目我还见过“写一个地铁需要用到的类”、“写一个饭店要用到的类”

10 Java8新特性

明年你们可能要掌握Java9的新特性了吧

HR面挂:

1、自我介绍

2、项目的背景

3、实习遇到的困难和感受

HR面试开始时还跑去接了个电话。

问了不到10分钟的问题,问题还都是围绕实习经历的。

实习经历问完了直接说今天面试就到这里了。

她回复是挂在第三面,理由是问题理解不够深入。当时我就懵逼了,第一次被HR挂。

所以就算是HR面,大家也要好好准备,要不然就太可惜了。

此生与你,江湖相逢

东 日常实习生**

一面挂

1 mysql行级锁表级锁,sql语句写select * 时如何加行级索

2 项目中的上传功能。

3 sql优化方式

4 xss攻击

5 线程安全的实现方式

面试官也挺奇葩,让我自己打电话找他面试,然后说话快得我听不清,问问题感觉也是比较随意,没下文了。

搜狐(offer) 日常实习生

一面

1 hashmap

2 说一个集合类

3 说说java特性

4 说说js

5 说说jquery

6 项目

7 sql

这个面试明显很水了,一个女面试官,面了十分钟就说通过了。

所以有时候不要觉得实习面试过了就很开心,也要根据面试难度来评估对方公司和部分做的事情是否对你有帮助,否则过去之后可能就是完全在打杂,得不偿失。

团点评(offer) 春招实习**

一面

1 Java ArrayList如何排序

2 hashmap原理、冲突处理、优化

3 mysql索引使用

4 Java并发包的内容

5 Java方法栈的作用

6 分布式、soa、锁

那时候对这方面还不太清楚,答得比较水。

7 两个栈实现一个队列

8 n个人中挑选m个人

9 平时看什么书

10 spring的 ioc和aop

11 Java8新特性

12 负载均衡方式

随机、轮询、加群轮询、一致性哈希

二面

1 mysql引擎

2 项目难题

3 jvm优化,博客内容

当时博客写的还不太多,没什么拿得出手的内容,博客这种东西需要花时间积累,建议各位也写一些。

4 设计模式中的观察者模式,聚合和组合,组合和继承

5 hashmap优化

6 redis,分布式

二面答得不太好。

不过当天发了offer,没有HR面

CVTE(offer)春招实习**

一面

1 数据库设计

2 冗余

3 范式

4 反范式

比较少见的问题,但是不难,范式用于减少数据冗余,反范式则可以避免多表连接。

5 索引优缺点

6 索引实现

7 mysql引擎行级锁表级锁

8 数组中找到第k大的数。

剑指offer原题,不过我当时只想到了先快排再找第k大的数。实际上在快排过程中就可以找到第k大的数了。

二面

1 数据库设计

2 闲聊

hr面

面试官一对二面试,问了半个小时,听说挂人很多,不过最后我们两个一起面试的都通过了。

菇街(offer)春招实习  **

一面

1 JAVA的jvm:内存模型、分代的介绍、每个代的操作,gc算法。

2 类加载器、双亲委派模型、双亲实现,反双亲设计,类隔离。

这部分问的很深了,特别是最后两个问题,把我问懵了。当时面的应该是基础架构部门,所以做的技术偏底层,问题都比较有深度。

3 hashmap实现、concurrenthashmap实现。

4 volatile实现,锁分类介绍、AQS介绍、公平锁非公平锁介绍。

当时压根不懂AQS,对于锁的几种类型也不够熟悉(互斥锁,轻量级锁,偏向锁)。这部分内容强烈建议看《Java并发编程艺术》以及《深入理解JVM虚拟机进行学习》

5 并发、并发中的threadlocal原理。

6 tomcat介绍

7 三个任务,每个任务id都为long类型,如何用一个long来表示三个任务都已完成,要求不能用countdownlauch。

答案是:使用三个id相&,若为0则完成否则不完成。(位运算性质)

8 NIO和BIO的区别

当时对NIO和BIO的底层原理不了解,只会回答很浅显的区别,实际上需要更加深入去分析,BIO的本质是基于阻塞IO的socket完成通信,而NIO是基于IO多路复用来实现的,在Linux上的底层实现就是epoll。

9 Spring的AOP和IOC

10 使用一个数组实现map,可以用i存key,i+1存value。

11 使用一个数组实现一个链表,i存自己下标,i+1存下一个结点下标,i+2存值。面试官要求使用移位操作。没答上,转而提问了问题7.

二面

很水,问项目,问学习经验,问一些有的没的。

看什么书,学过哪些技术。

HR面:

已面完,问了半个小时问题,感觉还可以啦。

现在回想起来,当时蘑菇街和美团的offer也是不错的,不过因为笔者一对网易游戏有情怀,最后还是选择了它。

至此,我们找实习之旅也到了尾声。以上就是我全部的实习面经了,不知道大家看的过不过瘾呢。

如果你也有面经想要和大家分享,那不妨来找作者投稿吧。每一段找实习或者找工作的经历都是各不相同的,相信你的那一段经历也值得收藏。 


程序员黄小斜
947 声望123 粉丝