话不多说,直上面试过程:
阿里一面
- 自我介绍
- TCP与UDP的区别
- TCP三次握手说一下(把流程说一遍,这里以为会继续问为什么不是两次或者四次,结果没有)
- 看你项目用到线程池,说一下线程池工作原理,任务拒接策略有哪几种
- 进程和线程的区别
- ArrayList与LinkedList的区别
- 线程安全与非线程安全集合说一下,底层怎么实现的(hashmap,concurrenthashmap)
- 数据库事务隔离级别说一下
- synchronized和lock区别,可重入锁与非可重入锁的区别
- 说说悲观锁和乐观锁的区别
- 手写进制转换算法,求出一个数的二进制数1的个数
- JAVA基础 equals和==
- 多线程方式、threadlocal,各种锁,synchronized和lock
- 设计模式、spring类加载方式、实例保存在哪、aop ioc、反射机制
- 类加载器,双亲委派模型,热部署
- jvm内存模型,内存结构、堆的分代算法、堆的分区、gc算法、gc过程。
- tcp ip 七层模型 rest接口规范 get和post区别,长度,安全。
- tcp ip的arp协议,两个同一网络的主机如何获得对方的mac地址。
- 负载均衡、高并发、高可用的架构
- mysql的引擎区别
- redis缓存,redis的集群部署,热备份,主从备份,主从数据库,hash映射找到知道指定点。
- 了解云计算么,了解云容器docker么,容器和虚拟机的区别
- 说一下你对哪个项目比较熟悉、为什么做这个项目
- 项目采用了什么架构,数据库如何设计的
- 数据库有哪些表,为什么有这些表
- 主要有哪些核心模块,模块之间如何通信的
- 如何保存会话状态,有哪些方式、区别如何
- 分布式session如何管理,你有哪些方案
- 学过数据结构和算法吗(当然),你说说二分搜索的过程
- 说一下快排的过程,写一下伪代码
- 了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式
- Hashmap的原理
- Hashmap如何变线程安全,每种方式的优缺点
- 垃圾回收机制
- 设计模式了解的说一下
- 手撕一个单例模式
- 工作中你觉得最不爽的事情是什么。
- 说下你的优缺点。
- 有没有想过去创业公司。
- 写个 strcpy 函数。
- 说说你自己的性格。
- 给你一个系统,后台的逻辑已经实现了,但是前端加载很慢,怎么检测。
- 以后可能要学习很多新技术,你怎么看。
- 项目中遇到的困难(提前想好,并且把实现或者优化方法说清楚)。
- 系统的量级、pv、uv 等。
- 应对高并发的解决办法(分布式)。
- 在项目中主要负责了哪些工作。
- nginx 的负载均衡。
- 分布式缓存的一致性,服务器如何扩容(哈希环)。
- 说下你平时看的一些技术博客,书籍。
- 平常怎么学习的
- 兴趣爱好
- 觉得自己前面几轮面试怎么样
- 除了Java还研究过其它什么技术(我说AI,区块链)
- 跟我介绍一下区块链~
- 怎么看待国内区块链的发展
- 跟我说一下你认为最具有挑战性的项目
文章图片
面试时表现从容,问题回答的还算是不错,没有出乎意料三天后收到了阿里发来的offer。总体来说面试难度没有想的那么难,都是基础加项目,主要是心态一定放松,放平就行。
此次拿到阿里offer后我并没有应邀,而是选择了继续面试字节跳动,朋友对我的做法也甚是不解,我只能说每个程序员都有大厂梦,有大部分心仪的是阿里,而我钟情的却是字节跳动,下面分享字节跳动现场三面,也有部分问题跟阿里四面问的基本差不多。
字节跳动一面(现场)
- 自我介绍
- Java中的多态
- 为什么要同时重写hashcode和equals
- Hashmap的原理
- Hashmap如何变线程安全,每种方式的优缺点
- 垃圾回收机制
- Jvm的参数你知道的说一下
- 设计模式了解的说一下
- 手撕一个单例模式
- 算法题目
- 手撕算法:反转单链表
- 手撕算法:实现类似微博子结构的数据结构,输入一系列父子关系,输出一个类似微博评论的父子结构图
- 手写java多线程
- 手写java的soeket编程,服务端和客户端
- 手撕算法:爬楼梯,写出状态转移方程
- 智力题:时针分针什么时候重合
- 自我介绍
- 项目介绍
- 服务器如何负载均衡,有哪些算法,哪个比较好,一致性哈希原理,怎么避免DDOS攻击请求打到少数机器?
- TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl?
- 数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决?
- Linux查看cpu占用率高的进程
- 手撕算法:给定一个数字三角形,找到从顶部到底部的最小路径和。每一步可以移动到下面一行的相邻数字上。
- 然后继续在这个问题上扩展
- 求出最短那条的路径
- 递归求出所有的路径
- 设计模式讲一下熟悉的
- 会不会滥用设计模式?
- 多线程条件变量为什么要在while体里?
- 你遇到什么挫折,怎么应对和处理?
- 自我介绍
- 项目介绍
- Redis的特点
- Redis的持久化怎么做,aof和rdb,有什么区别,有什么优缺点?
- Redis使用哨兵部署会有什么问题?【我说需要扩容的话还是得集群部署。】
- 说一下JVM内存模型把,有哪些区,分别干什么的?
- 说一下gc算法,分代回收说下
- MySQL的引擎讲一下,有什么区别,使用场景呢?
- 分布式事务了解么?
- 反爬虫的机制,有哪些方式?
1.项目介绍
2.平时看什么书,如何评价自己
3.随便聊一下你对公司的发展前景
文章图片
整个面试的感觉是很好的,可以看出内部工作比较高效,而且很尊重面试者,比如他们很守时,超过5分钟面试官没来就请你联系hr,我曾面过一家互联网整整delay45分钟!
就这样,在反复煎熬中等来了offer,拿到offer的第二天我就快乐的回老家了。
面试题及答案整理:(已整理成PDF文档)
文章图片
文章图片
面试前做了什么:
一,多刷各大互联网公司经典面试题:
文章图片
文章图片
二,阅读一些Java架构书籍:
文章图片
三,多看Java架构面试视频讲解:
【面试突击|Java岗四面拿到了阿里P6Offer,却选择了字节跳动(面试真题分享)】
文章图片
从金三银四面试视频中总结经验
最后分享一点点面试的心得:
1、一定用心做简历!粗制滥造的简历,真的,内推别人都懒得帮你推
2、想清楚自己的核心优势,复盘自己过去的工作经验,把最核心的内容呈现给面试官
3、面试时多去考虑面试官为什么问我这个问题,他希望通过这个问题得到什么?而不是只站在自己的角度去讲述
4、想清楚自己要什么,这个公司能否提供给你
5、放平心态
祝大家都能拿到自己钟意的offer,早日找到自己心仪的工作~
文末分享福利:朋友整理最新面试题:
文章内容中所有面试资料,和学习笔记都是免费分享的,需要这些PDF的小伙伴,点此处获得免费领取方式。
文章图片
文章图片
文章内容中所有面试资料,和学习笔记都是免费分享的,需要这些PDF的小伙伴,点通道即可直达领取方式。
推荐阅读
- 架构|架构师之路(二)程序员眼里的架构师
- 程序员|DevEcoStudio的及其传感器的使用,闭关在家37天“吃透”这份345页PDF
- java|阿里工作8年,肝到P8就剩这份学习笔记了,已助朋友拿到10个Offer