一只菜鸡的秋招记录
自提前批以来遵循海投盲投狂投的原则,投了大大小小好几家公司,其中简历投完没消息的好几家,笔试完没消息的好几家,只剩下几家是勉强进入面试流程能够写下面经的
因为面试过程中,从牛客网中获取了很多面经,因此也想拿点东西回馈牛客。
下面就是我这两三个月来的卑微血泪史😭
字节跳动-抖音-后端:
2020·07·18 一面:
- 算法题:给定一个没有重复数字的序列,返回其所有可能的全排列,以及时间复杂度,非递归解法
- 问项目(数据库相关)
- MySQL的联合索引的底层实现
- Linux的虚拟内存的概念
- Linux的默认分页大小及原因
- 事务的概念
- MySQL中事务的实现
- MySQL什么时候会用到间隙锁
阿里巴巴-蚂蚁金服-后端
2020-07-21 电话面:
- 题外话:昨天的笔试题你预测自己能过多少,现在写的话能写出来吗
- Spring AOP是什么,Spring是怎么应用AOP的
- 介绍一下拦截器filter和interceptor,其区别是什么
- 介绍一下MVC架构模式,优缺点是什么
- 怎么样实现一个线程同步的hashmap,如何避免HashMap死锁
- JAVA的堆和栈的区别是什么
- 产生死锁的四个必要条件是什么?什么样的情况下算是死锁
- 数据库的事务隔离级别分别是什么
- 介绍一下Spring的事务同步管理器
- 分别介绍一下悲观锁和乐观锁
- MySQL是如何实现悲观锁的
- JAVA新建一个线程有哪几种方式
- JAVA创建线程池的核心参数是什么
- 在线程数量很多的情况下JAVA线程池的核心参数会发生什么变化
- 你的项目里向外提供的api接口怎么保证其并发性
- 你在项目中(平时的学习里)有没有遇到硬骨头或想放弃的时候,是怎么克服的
小米--南京--后端--实习
这个投实习纯属偶然,不过也就这一次我是通过hr邮箱投递的。成功的进入了面试流程,避免了暑期实习以及正式批秋招时莫名其妙简历被挂的惨剧2020·07·29 一面
- ArrayList和LinkedList的区别
- ArrayList的源码相关
- LinkedList的源码相关
- HashMap的底层数据结构
- HashMap的并发问题
- ConcurrentHashMap怎么解决HashMap的并发问题
- ConcurrentHashMap加锁是在读时还是写时
- static关键字的作用
- 接口和抽象类的区别
- JVM的内存模型
- JVM中栈的实现
- 栈帧了解吗
- JVM中本地方法栈的作用
- JVM中栈会导致怎么样的内存泄露,分别在什么情况下
- 程序计数器会导致内存溢出吗
- JVM中堆是怎么分区的
- new一个对象是一定存放在堆中吗
- JVM中堆会导致怎么样的内存泄露,分别在什么情况下
- Java如何保证线程安全
- synchronized和ReentrantLock的区别
- synchronized和ReentrantLock的使用,何时释放锁
- volatile关键字
- 介绍一下Spring的IOC和AOP
- Spring AOP的实现
- Spring boot和Spring的区别
- Spring boot自动配置的实现
- 反射中如何调用类的私有方法
- MySQL如何查找性能问题,优化
- 项目如何自动部署的
- 手写快速排序代码
2020·08·03 二面
- 介绍项目
- 数据库索引的最左前缀原则
- 三个关键字的联合索引,最左用了模糊匹配,后两个还能用索引吗
- 删除一个表的数据有什么方法
- truncate和delete的区别,性能上哪个快
- truncate的实现原理
- 内连接和外连接的区别,左外连接和右外连接的区别
- JAVA上熟悉什么内容
- hashmap如何解决冲突
- 解决冲突一共有哪几种方法
- Java类的加载过程
- 为什么要有线程池
- 还有哪些地方用了池化思想
- 什么是死锁
- 介绍一下Synchronized和Lock
- Synchronized的加锁和释放锁的过程(锁粗化等内容)
- 在对象第一次被创建后首先会进入哪个分区
- 在新生代经历了n次major gc后对象会进入哪个分区
- 老年代在什么情况下会进行full gc
- 了解担保机制吗
- osi分层架构和tcp/ip分层架构的区别
- http属于哪一层
- tcp为什么断开连接时是四次挥手而建立连接时是三次握手
- http1.0和http1.1的区别
- 状态码(200,400,401分别是什么)
- Spring事务是怎么实现的
- Spring事务如何手动回滚
- 介绍一下session和cookie
- session的应用
- 算法题:容器盛水问题:给定一个整形数组arr,已知其中所有的值都是非负的,将这个数组看作一个容器,请返回容器能装多少水。
2020·08·05 三面
- 网络的分层模型
- tcp的握手协议
- tcp为什么需要第三次握手
- java申请创建数组时内存空间不够会怎么样
- java数组如何获知需要的空间
- 介绍一下JAVA的集合家族树
- 讲一下栈和队列的应用
- 非递归深度遍历,广度遍历二叉树
- vector为什么是线程安全的
- copyonwritelist为什么是线程安全的
- copyonwritelist有没有可能出现读着指针指向新数组的情况
- set为什么要用map来实现,有什么优缺点
- map有什么线程安全的类
- jvm的内存模型
- 虚拟内存是什么
- 虚拟内存的实质是什么
- Spring bean存放在jvm的哪块内存区域
- Spring bean为什么不会被GC回收
- 创建的bean的线程是哪一个
- java线程的基类是哪一个
- java线程的属性是什么
- 说出三个java的运行时异常
- 说出三个java的error
- 写一个双重校验锁的单例
- 24为什么需要volatile
- 验证一下自己写的单例是对的
华为--公共开发部--通用软件开发工程师
2020·08·31 一面
- 项目中采用了什么技术,框架,操作系统
- 项目代码量
- java抽象类和接口的区别
- jvm的内存模型
- GC的内存分区
- java有哪些需要注意垃圾回收的情况
- 多线程开发的注意事项
- 多线程调试定位的工具(jvm)
- Spring的优缺点
- 了解哪些操作系统
- idea用过的插件
- 编程题:数字转excel列表项
- 项目的小组分工
2020·08·31 二面
- 介绍项目
- mysql的索引使用经验
- mysql的外键选用原则
- 联合索引
- sql的注入问题
- spring事务的原理
- java常用的容器和应用场景
- Java arraylist如何修改为线程安全的
- Java map的键的选用原则
- 编程题:数组中0元素移至数组末尾,在原数组中操作,非零元素相对顺序不可改变
2020·08·31 主管面
家庭情况,兴趣爱好,社团经历,班级人缘,加班想法,华为看法
Bigo
2020·09·01 一面
这场面试里被面试官教育说回答问题回答的不够完整
- tcp,udp的区别
- tcp的三次握手过程以及原因
- http和https的区别
- java重写和重载的区别
- java接口和抽象类的区别
- 项目里哪里用了接口
- java如何实现线程安全
- 介绍各排序算法以及时间复杂度
- 手撕快排
- java反射如何实例化一个类
- Spring boot架构
- mysql表连接的关键字
- 项目里如何和mysql交互
美团--上海--后台开发
2020·09·02 一面
- 问项目
- 操作系统的虚拟内存是如何映射到物理内存的
- 内存分页和内存分段的区别
- 有哪些页面调度算法
- OSI七层模型
- 负责数据解密,压缩等工作的是第几层
- 数据链路层负责什么
- tcp协议在第几层
- tcp协议建立,断开连接的过程
- 输入URL到浏览器上到浏览器显示页面的过程发生了什么
- 从请求发到服务器的这一部分发生了什么
- http请求的内容
- http响应的内容
- 浏览器根据响应的什么来渲染页面
- http协议的幂等性
- http状态码的分类,405表示什么
- 为什么重写equal就要重写hashcode
- hashcode和equal方法的关系是什么
- map的实现原理
- 双亲委派模型是什么
- 可以重写String类吗
- 线程池是什么
- GC的过程
- 线程池的基本参数以及相应变化
- 数据库事务的四大特性
- 数据库的隔离级别以及分别解决了什么问题
- 不可重复读和幻读的区别
- 悲观锁和乐观锁
- 写SQL
- 算法题:
假设有m个男孩,n个女孩,要求每个男孩前面(包含自己在内)的男孩数量必须小于等于这个男孩前面的女孩数量,
比如:
1个男1个女,则仅有一种排列
2个男1个女,这种排列是不存在的
2个男2个女,则有,两种排列
如此类推
求m个男孩,n个女孩的排列情况
31. Integer类型的list在移除元素时如何判断参数是位移还是元素
比如:
1个男1个女,则仅有一种排列
2个男1个女,这种排列是不存在的
2个男2个女,则有,两种排列
如此类推
求m个男孩,n个女孩的排列情况
31. Integer类型的list在移除元素时如何判断参数是位移还是元素
2020·09·08 二面
- java集合类家族树
- arrayList的底层,扩容,相关操作时间复杂度
- arraylist删除元素时需要注意什么,可能会抛出什么异常
- hashmap的底层,为什么线程不安全
- concurrenthashmap为什么线程安全
- final关键字作用,final对对象的作用
- String为什么是final
- java有什么锁的实现
- synchronize和reentranlock的区别
- aqs是什么,在哪个包里
- aqs的核心思想是什么java创建线程的方式
- 线程池的核心参数及对应关系
- 常用的阻塞队列是什么
- 多线程时变量的可见性问题
- volatile关键字,什么是指令重排序,什么时候发生指令重排序
- java异常体系
- 自定义异常通常继承什么类
- 类加载的机制
- 双亲委派模型中什么叫父类加载器加载不了
- 如果要判断两个对象是否相等需要重写什么方法
- 为什么要重写hashcode()
- java为什么可以一次编译多处运行
- jvm的内存模型
- 内存泄露和内存溢出的区别
- java靠什么管理对象的生命周期
- Java 中对象的生命周期
- Java 对象的生命周期
- gc的流程,full gc后也无法分配足够的空间会怎么样
- 对象怎么样会进入老年区
- java反射的原理
- java如何通过反射实例化一个类,可以访问其私有属性吗
- Linux 输入文本文件中包含某字符串的数据,统计行数(grep -c只输出匹配行的计数)
- 算法:翻转二叉树,前序遍历
2020·09·11 三面
- 项目介绍
- 学校里最有挑战/最有成就感的事情
- Spring controller是线程安全的吗
- 怎么理解线程安全
- 什么样的代码是好代码
- 外键有什么优缺点
- mysql外键和普通键在底层实现上有什么不同
- 唯一性索引适合用哈希索引还是B树索引
- 一二面有什么问题是没答好的
- 怎么理解分布式
- 怎么理解缓存穿透
- 你近期的学习计划是什么
- 在网页显示上除了MVC还有什么架构
- MVC的缺点
- spring上有什么设计模式是你觉得比较好
- 开闭原则有什么好处
- 自动化测试能解决所有的质量问题吗
- 连续运行一个月可能会有什么隐患
2020·09·18 四面
- 自我介绍
- 项目介绍
- 项目学习到了什么
- 有无其他公司
- 工作地意向
- 工作意向
- 是否了解美团
- 是否了解部门业务
- 学习规划/职业规划
- 为什么喜欢2B呢
- 2B和2C的区别是否研究过
- 平时的兴趣爱好
腾讯--上海
2020·09·02 一面
- 代码题:单链表反转
- ArrayList和LinkedList的区别
- map的实现原理
- arrayList和vector的线程安全性的区别
- 如何写一段线程安全的代码
- 进程和线程的区别
- 线程和进程通信
- tcp解除连接的过程
- tcp解除连接为什么要发送ack
- tcp和udp的区别,应用场景
- tcp的拥塞控制
- TCP流量控制、拥塞控制
- 直播时为什么会卡顿
- 详解直播卡顿原因及解决方法
- 系统调用的实现
滴滴--CTO
2020·09·06 一面
- 项目架构
- java集合类
- map的实现原理
- map的实现类及实现原理
- 计算机网络常用的重要协议
- 一些重要的计算机网络协议(IP、TCP、UDP、HTTP)
- 介绍mysql
- 联合索引
- 输入sql到数据库返回结果的具体过程
- 当我们输入一条 SQL 查询语句时,发生了什么?
- B+树的数据结构
- 数据库大数据量的解决办法
- 程序设计时需求经常变更怎么办
- 写策略模式
- linux的基本命令有什么
- linux管道
- Linux 管道pipe的实现原理
- 列举排序算法
- 大文件中ip地址频率的排序Top10
- map统计频率再堆排序
- 常见的数据结构算法
- 算法:二维数组转二叉树(迷宫问题改编)
- sychorinize和lock
- 其他线程安全辅助类
- 线程池核心参数
- 线程池核心参数变更趋势
2020·09·06 二面
- map哈希冲突的解决办法
- JUC包
- volatile关键字,底层实现
- volatile关键字修饰对象时能保证对象属性的可见性吗
- Synchronized对类的锁会影响实例吗
- reentrantlock的底层实现
- BIO和NIO的实现
- tcp的timewait状态
- mysql的索引类型
- mysql联合索引的应用场景和注意事项
- Mysql where和having的区别
- linux如何查看磁盘io负载
- 造成死锁的原因,死锁的解决方式
- 知道的设计模式
- 装饰者模式具体实现
字节跳动--商业变现--后端
2020·09·07 一面
- 算法:给定一个字符串返回其最长无重复子串的长度
- mysql联合索引的注意事项
- mysql索引可以范围查询吗
- 聚簇索引与非聚簇索引的区别
- 数据库死锁原因及解决办法(原因是加锁顺序不一致)
- 快照读和当前读的区别
- redo log,undo log, bin log
- Redo log和bin log的区别
- synchronize的底层实现
- synchronize的优化,能不能降级(不能)
- 可重入锁和不可重入锁的区别
- 可重入锁的实现
- 线程池的重要参数
- hashmap的实现
- concurrentHashMap的实现
- Spring aop的实现
- Spring ioc为什么能够允许循环依赖
2020·09·09 二面
- 用一个骰子组成9种情况
- 怎么理解mysql的索引
- mysql为什么不用B-树做索引
- http和https的区别
- 最长公共子串
奇安信
一个喜欢让被面试者排队然后咕咕咕的公司
2020·09·13 一面
- mysql的字段类型
- mysql查询指令的执行顺序
- mysql查询的优化事项
- mysql函数
- java的数据类型
- Java string常用的函数
- static关键字
- final关键字
- java数组和集合的区别
- Java file类
- java创建线程的方式
- spring controller是多线程的吗
- spring是怎么和前端交互的
- get和post的区别
快手--北京
一个投上海秒挂,换北京后hr筛半个月,用人部门再筛半个月的公司
2020·09·15 一面
- 项目相关
- 设计模式
- 介绍一下模板方法模式
- 介绍一下代理模式和应用场景
- 适配器模式应用场景
- 装饰器模式应用场景
- 写单例模式
- 代码的this指的是什么
- 双重校验锁里为什么要volatile关键字
- Mysql innodb的事务是怎么实现的
- RR和RC的一致性视图的区别
- 聚簇索引和非聚簇索引
- 聚簇索引怎么避免页的频繁分裂
- innodb什么时候加行锁,什么时候间隙锁,什么时候表锁
- 辅助索引为什么存的是主键值
- 算法题:给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有满足条件且不重复的三元组。
- ArrayList的hashcode,equals是怎么样的
- Set是如何去重的
海康威视--杭州
一个不晓得15分钟电话面有什么用但还是因为这15分钟挂了的公司2020·09·17 15分钟电话面
小红书--上海
唯一线下面的公司
2020·09·16 一面
- 排序算法,时间复杂度
- 快排的最坏时间复杂度,什么情况下
- 堆排序的步骤
- 算法题:按字典序输出1-n的整数
- mysql索引使用的注意事项
- 知道什么是覆盖索引吗
- linux怎么创建一个进程
- linux怎么kill一个进程
- synchronized和lock的区别
- 什么时候需要用lock
- mysql的高可用性架构
- mysql主从复制的具体方式
- tcp怎么保证可靠性
- 介绍一下拥塞控制的流程
2020·09·16 二面
- 项目
- 继续介绍堆排序
- 在软件学院里收获最大的是什么
- 成绩
- 有无其他面试流程
- mysql大数据量的优化方法
- 分库,分表,临时表,缓存
- spring解决的是什么层次的问题
- 算法题:反转链表
2020·09·16 三面
- 各种设计题:影院锁票,爬虫,种菜游戏
- 算法:全排列
2020·09·16 四面
- 有无其他面试
- 为什么不实习
- 性格的优缺点
- 兴趣爱好
- 工作的城市
- 成绩
汇添富基金
2020·09·18 一面
- 自我介绍(其实其他公司也会要求自我介绍,但我为什么这里要写出来,因为这个自我介绍面试官表达了我的自我介绍的不满意以及建议)
- 为什么本科就出来找工作
- 找工作最重要的时候
- 给自己JAVA能力打分
- Spring aop的相关问题
- 动态代理的实现
- 类加载时为什么出现no such a method
- 输入URL后的整个流程
- 面试官给简历的建议
恒生
2020·09·23 一面
- 谈谈对spring boot的理解
- 404,401状态码
- http协议栈
- 项目相关(图是怎么构造的)
- Spring boot实例初始化后和销毁前执行方法的注解是什么
字节跳动--抖音--客户端
没错,又是抖音,这次换客户端了哈哈哈2020·09·23 一面
- 进程和线程的区别
- 进程间通信
- 线程间通信
- http底层是什么协议
- http的请求头字段
- Http1.0 1.1 2.0的区别
- 浏览器输入URL到显示页面发生了什么
- java的多态
- java类型擦除
- 还有什么点是没问到的
- 这半年有学什么新技术
- 算法题:寻找 k 值:k 值为无序数组中的一项:所有左值都比它更小,所有右值都比它更大
拼多多
2020·10·11 一面
- 介绍一下项目
- 平时是怎么学习技术的
- 线程和进程的区别
- concurrentHashMap如何保证并发安全,与hashTable有什么不同
- Java 创建线程的方式,有什么区别
- Java 线程同步的方式
- JVM的垃圾回收器有哪些
- Synchronized 的底层实现以及锁升级的过程
- 操作系统页面置换算法
- 手撕LRUCache算法题
2020·10·11 二面
- 介绍一下java的集合类
- hashmap怎么解决哈希冲突
- jdk1.8有什么改进
- 静态代码块和构造方法分别在什么时候执行
- 归并排序的思想(分治)
- Spring ioc的概念
- Spring aop的原理
- Spring运用了什么设计模式
- 线程池的应用场景
- 线程池什么时候会到达最大线程数
- ThreadLocal的应用
- JVM的内存模型,堆存放什么,栈存放什么
- 手写一个线程安全的单例
- B+树的特点
- B+树的时间复杂度
- tcp和udp的区别
- http有什么状态码
- 504状态码表示什么(网关超时)
- cpu是怎样进行上下文切换的
- mysql什么时候会用到联合索引
- 联合索引的优缺点是什么
- 数据库的隔离级别有哪些
- innodb的默认隔离级别是什么
- 数据库的主从复制
- 算法题:给定一无序数组,其可能包含正整数,0,负整数,要求返回数组中任意三个数的最大乘积,时间复杂度O(n)
- 还有什么你擅长的我没问到吗
青颖飞帆
2020·10·12 一面
- map如何保证查询的时间复杂度是O(1)
- 数组的访问为什么是O(1)
- 二维数组先遍历行再遍历列和先遍历列再遍历行哪个更快,为什么
- 中断是什么
- 什么时候会发生中断
- 什么是缺页中断
- 操作系统重要的模块有哪些
- linux的page cache了解吗
- java为什么能够做到跨平台
- 如何选择合理的线程数
- 线程安全性指的是什么
- java如何保证线程安全性
- java为降低锁的性能消耗做了什么
- Java的servlet了解吗
- tcp如何保证可靠连接
- tcp的拥塞控制是什么,为什么需要慢启动和快重传
- Mysql select某一行的时候加的是什么锁
- Mysql insect一个主键值在已存在的主键值中间的行的时候加什么锁
- 算法题:校验ip地址的合法性并输出合法ip地址的二进制表示所代表的整数值(位运算)
- 设计模式题:设计能判断Request(包含uType和URL)是否合理的方法,其中每一个uType只能访问特定的某些URL,要求符合开闭原则
- 思维题:两人报数范围为1-4,轮流报数,谁先能报到23谁就赢,问怎么能保证自己一定会赢
好了,不管最后的结果怎么样,我的秋招就这样结束了。希望看到帖子的各位最后都能拿到满意的offer!春招不要再见了!