写点什么

熬夜复习 90 天,4 面阿里 Java 研发成功上岸定级 P6,分享我的面试过程

用户头像
菜菜山
关注
发布于: 2021 年 06 月 23 日

秋招马上要来了,从 3 月中旬开始复习,5 月份开始投简历,一直到现在,简单记录一下,今天给大家分享的是我一位幸运拿到阿里 offer 的朋友的面试经历,疫情刚有好转,相信还有很多朋友是在线上办公的,我也闲来无事,问到了我朋友阿里面试的一些真题,以及我整理的一些真题分享给大家。


阿里一面(60 分钟):速度问的很快,基本涵盖了所有常考点

  • 项目的情况,redis,消息中间件,数据一致性,分布式 session,实现分布式 session 的方式(除了 redis 第三方),登录的过程

  • redis 作用,删除策略,集群,缓存击穿

  • spring 的循环依赖,spring bean 的生命周期,事务传播级别

  • 介绍常见的集合,Arrayslist,hashmap,hashset 等

  • 常见的并发包类

  • 常见的排序有哪些,说说希尔排序,为什么快?

  • 介绍红黑树,红黑树的特性,红黑树如何进行旋转

  • mysql,索引结构 B+树,hash 索引,怎么解决慢查询,什么情况使用不到索引,sql 语句的执行流程,覆盖索引的实现

  • 虚拟机,类加载机制,垃圾回收器,cms,ps 使用场景

  • int integer 区别(内存位置)

  • 计算机网络三次握手,四次挥手,ddos 攻击在哪一阶段

当天晚上加了笔试:1.给定一个字符串,请将字符串里的字符按照出现的频率降序排列。2.最长无重复字符串很简单半个小时都写出来了


阿里二面(70 分钟):和面试官聊的挺开心的,特别是最后聊学习方式,人生,我太能侃了

  • 计算机网络的五层,七层协议

  • udp/tcp 的区别,微信使用的是哪种

  • 介绍快速排序

  • 完了记不清了(都是基础知识,全部都回答出来了)很简单

  • 平时怎么学习的?(这里说一下,遇到这种大的问题,不要简单的回答,而是塑造一种类似英雄故事,你之前是什么样的,然后遇到什么困难很痛苦,寻求改变,最终升华,所以现在是这样,要说的绘声绘色,面试官好比在听一部英雄故事,让面试官也能感同身受,心想确实是这样,这种英雄故事的方法可以应用在项目介绍中,针对某一个技术点,说(bian)一段英雄故事,之前使用什么技术,后来遇到什么问题,寻求改变,改进过后达到什么效果等等,面试官不会在意你的项目深度,更多的是你怎么解决问题,怎么思考?不知道你们能不能 get 到我的点)


阿里三面(35 分钟左右):随便聊了聊,当场就给过,叫我好好准备后续面试

  • 自我介绍,项目介绍

  • 分布式 session,redis 怎么提高访问速率

  • 安全性 md5 加密流程

  • 说说 redis(介绍了单线程,多路复用,主从模式,哨兵模式,集群模式,rdb,aof 持久化流程)

  • 介绍快速排序,分析时间复杂度,如何改进?


阿里四面(40 分钟)

  • 职业规划

  • 你对 java 后续版本有什么建议?

  • 如果是你,你怎么设计一款垃圾回收器,怎么减少 fullGC 时间

  • 一段文章,我要将其 hash 到一段空间,可以使用指纹什么保存解密,你怎么设计?

需要准备的知识

以下为在近期面试中比较有印象的问题,也就不分公司了,因为没什么意义,大致分类记录一下,目前只想起这么多,不过一定要知道这些问题只是冰山一角,就算都会了也不能怎么样,最最重要的,还是坚实的基础,清醒的头脑。

说到这里顺便给大家整理了一份《Java 面试总结汇总,整理了包括 Java 基础知识,集合容器,并发编程,JVM,常用开源框架 Spring,MyBatis,数据库,中间件等,包含了作为一个 Java 工程师在面试中需要用到或者可能用到的绝大部分知识。由于字数的限制,有需要的朋友们可以添加上我的小助手 vx:bj070701 即可获取免费的领取方式!

架构设计面试题:

  1. 请列举出在 JDK 中几个常用的设计模式?

  2. 什么是设计模式?你是否在你的代码里面使用过任何设计模式?

  3. 静态代理。JDK 动态代理以及 CGUB 动态代理

  4. 静态代理

  5. 动杰代理

  6. cglib 代 t 理

  7. 单例模式

  8. 工厂模式

  9. 观察者模式

  10. 装饰器模式

  11. 秒杀系统设计

  12. 分布式

  13. 分布式概述

  14. 分布式

  15. 業群

  16. 微服务

  17. 多线程

  18. 高并发

  19. 分布式系统设计理念

  20. 分布式系统的目标与要素

  21. 分布式系统设计两大思路:中心化和去中心化

  22. 分布式与集群的区别是什么?

  23. CAP 定理

  24. CAP 定理的证明

  25. BASE 理论

  26. BASE 理论的核心思想

  27. BASE 理论三要素

  28. 1.基本可用

  29. 2.软状态

  30. 3.量终一致性

  31. 数据结构与算法

  32. 冒泡排序

  33. 选择排序

  34. 快速排序

  35. 递归

  36. 二分查找

  37. 一致性 Hash 算法

Java 基础知识面试题:

  1. Java 有没有 goto

  2. final 有什么用?

  3. final finally finalize 区别

  4. this 关键字的用法

  5. super 关键字的用法

  6. this 与 super 的区别

  7. static 存在的主要意义

  8. static 的独特之处

  9. static 应用场景

  10. static 注意事项

  11. 流程控制语句

  12. break ,continue ,return 的区别及作用

  13. 在 Java 中,如何跳出当前的多重嵌套循环

  14. 面向对象

  15. 面向对象概述

  16. 面向对象和面向过程的区别

  17. 面向对象三大特性

  18. 面向对象的特征有哪些方面

  19. 什么是多态机制? Java 语言是如何实现多态的?

  20. 面向对象五大基本原则是什么(可选)

  21. 抽象类和接口的对比

  22. 普通类和抽象类有哪些区别?

  23. 抽象类能使用 final 修饰吗?

Spring 面试题(2020 最新版)

  1. Spring 框架的设计目标,设计理念,和核心是什么

  2. Spring 的优缺点是什么?

  3. Spring 有哪些应用场景

  4. Spring 由哪些模块组成?

  5. Spring 框架中都用到了哪些设计模式?

  6. 详细讲解一下核心容器 (spring context 应用上下文)模块

  7. Spring 框架中有哪些不同类型的事件

  8. Spring 应用程序有哪些不同组件?

  9. 使用 Spring 有哪些方式?

  10. Spring 控制反转(IOC) (13)

  11. 什么是 Spring I0C 容器?

  12. 控制反转(loC)有什么作用

  13. I0C 的优点是什么?

  14. Spring loC 的实现机制

  15. Spring 的 IoC 支持哪些功能

  16. BeanFactory 和 ApplicationContext 有什么区别?

  17. Spring 如何设计容器的,BeanFactory 和 AplicationContext 的关 系详解

  18. ApplicationContext 通常的实现是什么?

  19. 什么是 Spring 的依赖注入?

  20. 依赖注入的基本原则

  21. 依赖注入有什么优势

  22. 有哪些不同类型的依赖注,如实现方式?

  23. 构造器依赖注入和 Setter 方法注入的区别

  24. Spring Beans (19)

  25. 什么是 Spring beans?

  26. -个 Spring Bean 定义包含什么?

  27. 如何给 Spring 容器提供配置元数据? Spring 有几种配置方式

消息中间件 MQ 与 RabbitMQ 面试题(2020 最新版)

  1. 为什么使用 MQ? MQ 的优点

  2. 消息队列有什么优缺点? RabbitMQ 有什么优缺点?

  3. 你们公司生产环境用的是什么消息中间件?

  4. Kafka、ActiveMQ、 RabbitMQ、 RocketMQ 有什么优缺点?

  5. MQ 有哪些常见问题?如何解决这些问题?

  6. 什么是 RabbitMQ?

  7. rabbitmq 的使用场景

  8. RabbitMQ 基本概念

  9. RabbitMQ 的工作模式

  10. 如何保证 RabbitMQ 消息的顺序性?

  11. 消息如何分发?

  12. 消息怎么路由?

  13. 消息基于什么传输?

  14. 如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?

  15. 如何确保消息正确地发送至 RabbitMQ?如何确保消息接收方消费了消息?

  16. 如何保证 RabbitMQ 消息的可靠传输?

  17. 为什么不应该对所有的 message 都使用持久化机制?

  18. 如何保证高可用的? RabbitMQ 的集群

  19. 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?

  20. 设计 MQ 思路

Java 虚拟机(JVM)面试题(2021 最新版)

  1. Java 内存区域

  2. 说一下 JVM 的主要组成部分及其作用?

  3. 说一下 JVM 运行时数据区

  4. 深拷贝和浅拷贝

  5. 说一下堆栈的区别?

  6. 队列和栈是什么?有什么区别?

  7. HotSpot 虚拟机对象探秘

  8. 对象的创建

  9. 为对象分配内存

  10. 处理并发安全问题

  11. 对象的访问定位

  12. 句柄访问

  13. 直接指针

  14. 内存溢出异常

  15. Java 会存在内存泄漏吗?请简单描述

  16. 垃圾收集器

  17. 简述 Java 垃圾回收机制

  18. GC 是什么?为什么要 GC

  19. 垃圾回收的优点和原理。并考虑 2 种回收机制

  20. 垃圾回收器的基本原理是什么?垃圾回收器可以马.上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

  21. Java 中都有哪些引用类型?

  22. 怎么判断对象是否可以被回收?

  23. 在 Java 中,对象什么时候可以被垃圾回收

  24. JVM 中的永久代码会发生垃圾回收吗

  25. 说一下 JVM 有哪些垃圾回收算法?

Spring 面试题(2021 最新版)

  1. Java 内存区域

  2. 说一下 JVM 的主要组成部分及其作用?

  3. 说一下 JVM 运行时数据区

  4. 深拷贝和浅拷贝

  5. 说一下堆栈的区别?

  6. 队列和栈是什么?有什么区别?

  7. HotSpot 虚拟机对象探秘

  8. 对象的创建

  9. 为对象分配内存

  10. 处理并发安全问题

  11. 对象的访问定位

  12. 句柄访问.

  13. 直接指针

  14. 内存溢出异常

  15. Java 会存在内存泄漏吗?请简单描述

  16. 垃圾收集器

  17. 简述 Java 垃圾回收机制

  18. GC 是什么?为什么要 GC

  19. 垃圾回收的优点和原理。并考虑 2 种回收机制

  20. 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

  21. Java 中都有哪些引|用类型?

  22. 怎么判断对象是否可以被回收?

  23. 在 Java 中,对象什么时候可以被垃圾回收

  24. JVM 中的永久代码会发生垃圾回收吗

  25. 说一下 JVM 有哪些垃圾回收算法?

  26. 标记-清除算法

  27. 复制算法

面试刷题宝典

包括 Java 基础知识,集合容器,并发编程,JVM,常用开源框架 Spring,MyBatis,数据库,中间件等

这几份 1000 道面试宝典、Java 核心知识、复盘面试宝典有感兴趣的工程师朋友们可以添加上我的小助手 vx:bj070701 免费领取

1、阿里 P8 大牛写出来的 283 页 Java 核心知识



2、面试宝典

面试复习宝典、面试前刷一遍对你帮助非凡!


3、更多架构专题及视频资料展示如下:


由于篇幅限制,《Java 面试总结汇总》(PDF)的详细资料太全面,细节内容实在太多啦,所以只编辑了部分模块的章节简单的介绍下,每个章节的节点里面都有更精细的内容!


用户头像

菜菜山

关注

还未添加个人签名 2021.05.07 加入

还未添加个人简介

评论

发布
暂无评论
熬夜复习90天,4面阿里Java研发成功上岸定级P6,分享我的面试过程