艰难的度过金九!字节、蚂蚁金服、小米、华为面试题总结,国庆也不能闲着
前言
随着各大企业校园招聘的开启,一大波儿应届生忙碌在找工作的战场上,不少同学表示自己明明做好了充分准备可面试时还是有问题没准备到,以至面试官提问后自己不是半天答不上就是回答的毫无逻辑,感觉自己面试好失败呀。
所以小编给大家整理了各位找到工作同学的面经,赶紧在国庆的时候学起来吧!
字节跳动-后端(一面):
- 算法题:给定一个没有重复数字的序列,返回其所有可能的全排列,以及时间复杂度,非递归解法
- 问项目(数据库相关)
- MySQL的联合索引的底层实现
- Linux的虚拟内存的概念
- Linux的默认分页大小及原因
- 事务的概念
- MySQL中事务的实现
- MySQL什么时候会用到间隙锁
从这些问题不难看出,字节更看重于数据库这一块,所以各位小伙伴,赶紧学起来呀!
蚂蚁金服-后端(电话面)
- Spring AOP是什么,Spring是怎么应用AOP的
- 介绍一下拦截器filter和interceptor,其区别是什么
- 介绍一下MVC架构模式,优缺点是什么
- 怎么样实现一个线程同步的hashmap,如何避免HashMap死锁
- JAVA的堆和栈的区别是什么
- 产生死锁的四个必要条件是什么?什么样的情况下算是死锁
- 数据库的事务隔离级别分别是什么
- 介绍一下Spring的事务同步管理器
- 分别介绍一下悲观锁和乐观锁
- MySQL是如何实现悲观锁的
- JAVA新建一个线程有哪几种方式
- JAVA创建线程池的核心参数是什么
- 在线程数量很多的情况下JAVA线程池的核心参数会发生什么变化
- 你的项目里向外提供的api接口怎么保证其并发性
- 你在项目中(平时的学习里)有没有遇到硬骨头或想放弃的时候,是怎么克服的
因为是电话面试,准备的不够全面,部分问题回答的并不是很完善。面试官问的最主要的还是事务锁和线程这一块,好在投简历之前做了相对应的准备。
小米-后端
一面
- ArrayList和LinkedList的区别
- HashMap的底层数据结构
- HashMap的并发问题
- ConcurrentHashMap怎么解决HashMap的并发问题
- ConcurrentHashMap加锁是在读时还是写时
- static关键字的作用
- 接口和抽象类的区别
- JVM的内存模型
- JVM中栈的实现
- JVM中本地方法栈的作用
- JVM中栈会导致怎么样的内存泄露,分别在什么情况下
- 程序计数器会导致内存溢出吗
- JVM中堆是怎么分区的
- new一个对象是一定存放在堆中吗
- JVM中堆会导致怎么样的内存泄露,分别在什么情况下
- Java如何保证线程安全
- synchronized和ReentrantLock的区别
- synchronized和ReentrantLock的使用,何时释放锁
- volatile关键字
- Spring AOP的实现
- Spring boot和Spring的区别
- Spring boot自动配置的实现
- 反射中如何调用类的私有方法
- MySQL如何查找性能问题,优化
- 项目如何自动部署的
二面
- 数据库索引的最左前缀原则
- 三个关键字的联合索引,最左用了模糊匹配,后两个还能用索引吗
- 删除一个表的数据有什么方法
- truncate和delete的区别,性能上哪个快
- truncate的实现原理
- 内连接和外连接的区别,左外连接和右外连接的区别
- JAVA上熟悉什么内容
- hashmap如何解决冲突
- 解决冲突一共有哪几种方法
- Java类的加载过程
- 为什么要有线程池
- 介绍一下Synchronized和Lock
- Synchronized的加锁和释放锁的过程(锁粗化等内容)
- 在对象第一次被创建后首先会进入哪个分区
- 在新生代经历了n次major gc后对象会进入哪个分区
- 老年代在什么情况下会进行full gc
- osi分层架构和tcp/ip分层架构的区别
- tcp为什么断开连接时是四次挥手而建立连接时是三次握手
- http1.0和http1.1的区别
- 状态码(200,400,401分别是什么)
- 算法题:容器盛水问题:给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。
看到小米的面试题慌了吗,所以准备去面小米的小伙伴,一定要做足准备,也不要担心面不上,就当是认清自己的不足点。
华为-通用软件开发工程师
一面
- 项目中采用了什么技术,框架,操作系统
- 项目代码量
- java抽象类和接口的区别
- jvm的内存模型
- java有哪些需要注意垃圾回收的情况
- 多线程开发的注意事项
- 多线程调试定位的工具(jvm)
- 了解哪些操作系统
- idea用过的插件
- 编程题:数字转excel列表项
- 项目的小组分工
二面
- 介绍项目
- mysql的索引使用经验
- mysql的外键选用原则
- 联合索引
- sql的注入问题
- spring事务的原理
- java常用的容器和应用场景
- Java arraylist如何修改为线程安全的
- Java map的键的选用原则
- 编程题:数组中0元素移至数组末尾,在原数组中操作,非零元素相对顺序不可改变
总结
总的来说,华为的面试在我看来相对简单,因为在之前也面试过了很多公司,每天都有做总结。但是也有可能是我比较幸运。
每次面试都要去总结,总结的问题多了,下次遇到的问题就少了。
还有每天给自己打气,保持好自己的心态。只有在品尝过胜利与失败,仓皇逃窜痛哭流涕的滋味之后,才会真正长大。哭也没有关系,要跨越过去。
小编也为大家整理好了更多面试题和答案:戳这里免费领取,暗号:****,还有更多大厂面试专题资料和视频哦!