某程序员吐槽能量攒满,推贴发泄:头条我都工作了3年之久,居然阿里一面就被刷了下来?凭什么
阿里一面
1、线程池(具体参数,拒绝策略,减少线程的机制,具体实现类及对应的阻塞队列,阻塞队列有什么特点,为什么用这个阻塞队列,线程复用的原理)
2、JVM(对象是否可回收的判断条件,怎么判断,回收算法,垃圾回收器的类别及特点,担保机制)
3、JAVA内存模型
4、线程之间的通信方式,通过volatile,synchronized,Lock的实现类那些,结合内存模型去讲。
5、MyBatis、spring、springboot相关(面试题较常见)
6、Linux常用命令
7、redis的数据结构那些,讲了skiplist、ziplist、sds等,结合使用场景说了下
一面总结:
面试时间35分钟左右吧。社招一面(生死面)容易挂的第一个点,就是刚开始的项目讲解的一般,没有亮点。项目中的技术难点和技术卡点无法表述出来,很容易给面试官一种“这人不行”的感觉。至于基础知识还是得靠我们平时多想想?怎么实现?这么实现?总之讲解一个优秀的项目,面试就通过了一半。
要注意的点
- 简历一到两页为最佳,将项目经历写2-3个左右就差不多了,一定要写最有亮点的项目工作经历的起始时间要写清楚,另外大公司都有背调, 不要合并或省略一些比较短的工作经历,影响的可能不只是这次面试,而是之后可能都无法进这家公司博客没什么好文章,github没好项目就不要写在简历中了
- 对于面试官的问题,想清楚再回答,如果觉得需要的时间可能比较长,可以跟面试官说我思考下、我整理下思路之类的遇到不会的问题直接说不会, 不要不懂装懂
- 遇到比较确定的问题,要有自信一点,有时候面试官可能会故意用怀疑的语气来考察你 面试的过程中 注意语速和吐字,本人在做面试官后,发现很多人说话语速很快,或吐字不清,导致原本会的问题也会让面试官觉得你没答到点上(尤其是电话面)面试过程中可以自信但不要与面试官争执面试完后不要直接问面试结果
- 面试保持自信而不自大,曾经问一位候选人说对hashmap是了如指掌,结果问到hashmap扩容时需不需要重新计算hash就懵逼了。对于很多人来说,面试官总有办法把你问倒的,每次面试后都 总结有哪些答得不好的地方,有哪些知识点的盲区,解决掉。
- 被问到为什么想跳槽的时候, 应该从自身发展等角度出发,而不是吐槽前公司。 另外,在求职的过程中也碰到过少数没有素质的面试官,比如一上来就一副很不屑的语气,话没说两句就开始diss你的项目,给人的体验很不好。所以也请各位面试官或将来要做面试官的同学,能在面试的过程中保持基本的礼貌和尊重,就像在阿里常说的: 你面试别人的时候,别人也在面试你。
- 最重要的一点,不要因为几次的面试失败就开始怀疑自己,永远记住,面试的结果=实力+运气。有时候你擅长的东西可能面试官根本不会,所以他也不可能花很多时间去问他不懂的东西;有时候可能他问你的你都会,但是可能因为对方提问方式、语气等原因,答的就是不顺畅。
接下来说技术相关的考察。
总的来说,技术相关的考察主要分为两大块,一是基础,二是经验。
- 基础包括java基础、数据库、中间件等,来自于日常的积累和面试前的准备。
- 经验包括以往做过的项目、解决的问题、以及一些场景题(比如你的项目如果流量大了十倍如何保证可用)。
下面小编讲经验,以及参考文档。主要是大厂资深面试官整理的高频面试合集+Java的学习进阶专用路线图,从基础→线程→JVM→算法→数据库→微服务→面试经验等全技术栈的面试题,小编免费分享给大家,如果大家可以啃完的话,对于咱们的大厂面试和跳槽涨薪升职会有很大的帮助!
因文档内容实在过多,小编下面会在不影响大家阅读的情况下,尽可能地为大家做更多的展示,有感兴趣想要获取学习的朋友,麻烦帮忙点赞转发下,后台私信【学习】,获取完整文档免费下载方式。
多线程并发编程:
- 线程池的构造参数及其含义,如何确定线程池中线程的个数等
- 定时线程池如何实现的?
- synchronized,volatile 关键字
- 原子性,可见性与有序性
- 可重入的锁 ReentrantLoc
- ThreadLocal 的实现原理
- AQS 底层实现,与 ReentrantLock 的关系
JVM 知识点:
- 内存区域划分
- OOM 介绍
- 对象分配与回收
- CMS 和 G1 垃圾收集器
- 对象的可达性分析
- 类加载机制
- JVM 调优参数
- Full GC,Minor GC
- 对象的栈上分配(JIT 编译器)
MySQL 知识点:
- MySQL 隔离级别
- 一致性视图
- 日志模块:undo log,redo log 和 binglog
- 索引结构,回表,最左前缀原则
- 间隙锁,幻读,MVCC
- SQL 优化实战
Java 基础:
- NIO 的实现原理
- HashMap,HashSet,LinkedHashMap 以及 ConcurrentHashMap
- hashcode 与 equals 方法的区别
- RuntimeException Exception Error
- 注解的使用
- 基本数据类型
- 五种常见的网络 IO 模型
Spring&MyBatis:
- Spring IOC 和 AOP 的原理
- SpringBoot 源码解读,启动方式,配置顺序等
- SpringMVC 和 Spring 父子容器的关系
- Spring 的事务实现方式
- 如何自定义实现 SpringBoot 中的 starter
- MyBatis 中 #和 $符号的区别
网络协议:
- TCP 与 UDP 区别
- TCP 可靠性如何保证呢
- TCP 网
网络包分片与重组
- 三次握手与四次挥手,状态转换
- SSL 握手协议使用的加密算法,是非对称加密的缺点
- XSS 和 CSRF 介绍
Redis&Kafka:
- redis 实现分布式锁
- redis 数据结构类型
- redis zset 实现延时队列
- 跳表如何维护
- redis 线程模型
- redis 的数据过期方式
- redis 持久化方式
- 缓存雪崩,缓存穿透,缓存击穿
- Kafka 主题,分区和日志文件的关系
- Kafka 日志压缩和删除
- 消息队列基本特性
算法题目:
- 找出多数元素(美团)
- 最长公共字串 (美团)
- 单例模式 (美团)
- 快速排序 (阿里)
- 查找链表中倒数第 N 个节点 (头条)
- 合并 k 个有序的链表 (快手)
- 蓄水池 (快手)
- 自定义实现 parseDouble 方法 (快手)
- a+b+c=0 (头条)
- 二叉树前序遍历 (快手)
- 二叉树按照前序遍历转换为只有右节点的树 (猿辅导)
- 按照之字形遍历二叉树 (头条)
- 保留有序链表中的重复元素,并且只保留一次 (阿里,这个很有意思,感兴趣的同学可以实现下) 给定一个有序链表,保留链表中重复出现的元素,并且只保留一次,如给定链表 1->1->1->2->3->3->4.
结果为1->3。请写出一个高效的算法
- 使用三个线程分别打印 A,B,C,按 ABC CBA ABC CBA …的顺序进行打印 (阿里) 还行,对于有准备的各位来说,这些算法都不太困难。会分享自己私藏多年的算法学习节奏,助你备战面试!
文章展示就到这里,全部资料已上传网盘,感兴趣想要获取的朋友,帮忙点赞转发下,后台私信【学习】,免费打包下载全部资料
最后希望大家都可通过文章中的资料,拿到自己心仪的offer,收到让自己满意的薪资!!!