秋招结束,从5月中旬开始复习,7月份开始投简历,一直到现在,简单记录一下,今天给大家分享的是我一位幸运拿到阿里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的区别,微信使用的是哪种
- 介绍快速排序
- 完了记不清了(都是基础知识,全部都回答出来了)很简单
- 平时怎么学习的?
阿里三面(35分钟左右):随便聊了聊,当场就给过,叫我好好准备后续面试
- 自我介绍,项目介绍
- 分布式session,redis怎么提高访问速率
- 安全性md5加密流程
- 说说redis(介绍了单线程,多路复用,主从模式,哨兵模式,集群模式,rdb,aof持久化流程)
- 介绍快速排序,分析时间复杂度,如何改进?
阿里四面(40分钟)
- 职业规划
- 你对java后续版本有什么建议?
- 如果是你,你怎么设计一款垃圾回收器,怎么减少fullGC时间
- 一段文章,我要将其hash到一段空间,可以使用指纹什么保存解密,你怎么设计?
需要准备的知识
以下为在近期面试中比较有印象的问题,也就不分公司了,因为没什么意义,大致分类记录一下,目前只想起这么多,不过一定要知道这些问题只是冰山一角,就算都会了也不能怎么样,最最重要的,还是坚实的基础,清醒的头脑。
说到这里顺便给大家整理了一份《Java面试总结汇总》,整理了包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等,包含了作为一个Java工程师在面试中需要用到或者可能用到的绝大部分知识。点击领取;
Java架构师笔记
架构设计面试题:
- 请列举出在JDK中几个常用的设计模式?
- 什么是设计模式?你是否在你的代码里面使用过任何设计模式?
- 静态代理。JDK动态代理以及CGUB动态代理
- 静态代理
- 动杰代理
- cglib代t理
- 单例模式
- 工厂模式
- 观察者模式
- 装饰器模式
- 秒杀系统设计
- 分布式
- 分布式概述
- 分布式
- 集群
- 微服务
- 多线程
- 高并发
- 分布式系统设计理念
- 分布式系统的目标与要素
- 分布式系统设计两大思路:中心化和去中心化
- 分布式与集群的区别是什么?
- CAP定理
- CAP定理的证明
- BASE理论
- BASE理论的核心思想
- BASE理论三要素
- 1.基本可用
- 2.软状态
- 3.量终一致性
- 数据结构与算法
- 冒泡排序
- 选择排序
- 快速排序
- 递归
- 二分查找
- 一致性Hash算法
Java基础知识面试题:
- Java有没有goto
- final有什么用?
- final finally finalize区别
- this关键字的用法
- super关键字的用法
- this与super的区别
- static存在的主要意义
- static的独特之处
- static应用场景
- static注意事项
- 流程控制语句
- break ,continue ,return的区别及作用
- 在Java中,如何跳出当前的多重嵌套循环
- 面向对象
- 面向对象概述
- 面向对象和面向过程的区别
- 面向对象三大特性
- 面向对象的特征有哪些方面
- 什么是多态机制? Java语言是如何实现多态的?
- 面向对象五大基本原则是什么(可选)
- 抽象类和接口的对比
- 普通类和抽象类有哪些区别?
- 抽象类能使用final 修饰吗?
Spring面试题(2020最新版)
- Spring框架的设计目标,设计理念,和核心是什么
- Spring的优缺点是什么?
- Spring有哪些应用场景
- Spring由哪些模块组成?
- Spring框架中都用到了哪些设计模式?
- 详细讲解一下核心容器 (spring context应用上下文)模块
- Spring框架中有哪些不同类型的事件
- Spring应用程序有哪些不同组件?
- 使用Spring有哪些方式?
- Spring控制反转(IOC) (13)
- 什么是Spring I0C容器?
- 控制反转(loC)有什么作用
- I0C的优点是什么?
- Spring loC的实现机制
- Spring的IoC支持哪些功能
- BeanFactory和ApplicationContext有什么区别?
- Spring如何设计容器的,BeanFactory和AplicationContext的关 系详解
- ApplicationContext通常的实现是什么?
- 什么是Spring的依赖注入?
- 依赖注入的基本原则
- 依赖注入有什么优势
- 有哪些不同类型的依赖注,如实现方式?
- 构造器依赖注入和Setter方法注入的区别
- Spring Beans (19)
- 什么是Spring beans?
- -个Spring Bean定义包含什么?
- 如何给Spring容器提供配置元数据? Spring有几种配置方式
消息中间件MQ与RabbitMQ面试题(2020最新版)
- 为什么使用MQ? MQ的优点
- 消息队列有什么优缺点? RabbitMQ有什么优缺点?
- 你们公司生产环境用的是什么消息中间件?
- Kafka、ActiveMQ、 RabbitMQ、 RocketMQ 有什么优缺点?
- MQ有哪些常见问题?如何解决这些问题?
- 什么是RabbitMQ?
- rabbitmq的使用场景
- RabbitMQ基本概念
- RabbitMQ的工作模式
- 如何保证RabbitMQ消息的顺序性?
- 消息如何分发?
- 消息怎么路由?
- 消息基于什么传输?
- 如何保证消息不被重复消费?或者说,如何保证消息消费时的幂等性?
- 如何确保消息正确地发送至RabbitMQ?如何确保消息接收方消费了消息?
- 如何保证RabbitMQ消息的可靠传输?
- 为什么不应该对所有的message都使用持久化机制?
- 如何保证高可用的? RabbitMQ的集群
- 如何解决消息队列的延时以及过期失效问题?消息队列满了以后该怎么处理?有几百万消息持续积压几小时,说说怎么解决?
- 设计MQ思路
Java虚拟机(JVM)面试题(2020最新版)
- Java内存区域
- 说一下JVM的主要组成部分及其作用?
- 说一下JVM运行时数据区
- 深拷贝和浅拷贝
- 说一下堆栈的区别?
- 队列和栈是什么?有什么区别?
- HotSpot虚拟机对象探秘
- 对象的创建
- 为对象分配内存
- 处理并发安全问题
- 对象的访问定位
- 句柄访问
- 直接指针
- 内存溢出异常
- Java会存在内存泄漏吗?请简单描述
- 垃圾收集器
- 简述Java垃圾回收机制
- GC是什么?为什么要GC
- 垃圾回收的优点和原理。并考虑2种回收机制
- 垃圾回收器的基本原理是什么?垃圾回收器可以马.上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
- Java中都有哪些引用类型?
- 怎么判断对象是否可以被回收?
- 在Java中,对象什么时候可以被垃圾回收
- JVM中的永久代码会发生垃圾回收吗
- 说一下JVM有哪些垃圾回收算法?
Spring面试题(2020最新版)
- Java内存区域
- 说一下JVM的主要组成部分及其作用?
- 说一下JVM运行时数据区
- 深拷贝和浅拷贝
- 说一下堆栈的区别?
- 队列和栈是什么?有什么区别?
- HotSpot虚拟机对象探秘
- 对象的创建
- 为对象分配内存
- 处理并发安全问题
- 对象的访问定位
- 句柄访问.
- 直接指针
- 内存溢出异常
- Java会存在内存泄漏吗?请简单描述
- 垃圾收集器
- 简述Java垃圾回收机制
- GC是什么?为什么要GC
- 垃圾回收的优点和原理。并考虑2种回收机制
- 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
- Java中都有哪些引|用类型?
- 怎么判断对象是否可以被回收?
- 在Java中,对象什么时候可以被垃圾回收
- JVM中的永久代码会发生垃圾回收吗
- 说一下JVM有哪些垃圾回收算法?
- 标记-清除算法
- 复制算法
面试刷题宝典
包括Java基础知识,集合容器,并发编程,JVM,常用开源框架Spring,MyBatis,数据库,中间件等
文章中涉及到的技术点我都分享在这份石墨文档里。点击领取;
Java架构师笔记
并且录制成视频供大家免费下载学习,希望可以帮助在这个行业发展的朋友和童鞋们,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上
部分视频截图
JVM调优实战部分视频;
多线程与高并发部分视频;
spring源码部分视频;
············
BAT 面试攻略
需要这些架构资料的可以点赞领取。
点击领取;Java架构师笔记