阿⾥P7架构师⾯试题(总结)
常⽤设计模式
单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证⼀个类仅有⼀个实例,并提供⼀个访问它的全局访问点。
代理模式:动态代理和静态代理,什么时候使⽤动态代理。
适配器模式:将⼀个类的接⼝转换成客户希望的另外⼀个接⼝。适配器模式使得原本由于接⼝不兼容⽽不能⼀起⼯作的那些类可以⼀起⼯作。
装饰者模式:动态给类加功能。
观察者模式:有时被称作发布/订阅模式,观察者模式定义了⼀种⼀对多的依赖关系,让多个观察者对象同时监听某⼀个主题对象。这个主题对象在状态发⽣变化时,会通知所有观察者对象,使它们能够⾃动更新⾃⼰。
策略模式:定义⼀系列的算法,把它们⼀个个封装起来, 并且使它们可相互替换。
外观模式:为⼦系统中的⼀组接⼝提供⼀个⼀致的界⾯,外观模式定义了⼀个⾼层接⼝,这个接⼝使得这⼀⼦系统更加容易使⽤。
命令模式:将⼀个请求封装成⼀个对象,从⽽使您可以⽤不同的请求对客户进⾏参数化。
创建者模式:将⼀个复杂的构建与其表⽰相分离,使得同样的构建过程可以创建不同的表⽰。
抽象⼯⼚模式:提供⼀个创建⼀系列相关或相互依赖对象的接⼝,⽽⽆需指定它们具体的类。
2
基础知识
ava基本类型哪些,所占字节和范围
Set、List、Map的区别和联系
什么时候使⽤Hashmap
什么时候使⽤Linkedhashmap、Concurrenthashmap、Weakhashmap
哪些集合类是线程安全的
为什么Set、List、map不实现Cloneable和Serializable接⼝
Concurrenthashmap的实现,1.7和1.8的实现
Arrays.sort的实现
什么时候使⽤CopyOnArrayList
volatile的使⽤
synchronied的使⽤
reentrantlock的实现和Synchronied的区别
CAS的实现原理以及问题
AQS的实现原理
接⼝和抽象类的区别,什么时候使⽤
类加载机制的步骤,每⼀步做了什么,static和final修改的成员变量的加载时机
双亲委派模型
反射机制:反射动态擦除泛型、反射动态调⽤⽅法等
动态绑定:⽗类引⽤指向⼦类对象
歌曲internalJVM内存管理机制:有哪些区域,每个区域做了什么
JVM垃圾回收机制:垃圾回收算法 垃圾回收器 垃圾回收策略
jvm参数的设置和jvm调优
什么情况产⽣年轻代内存溢出、什么情况产⽣年⽼代内存溢出
内部类:静态内部类和匿名内部类的使⽤和区别
Redis和memcached:什么时候选择redis,什么时候选择memcached,内存模型和存储策略是什么样的
php从入门到精通在线阅读MySQL的基本操作 主从数据库⼀致性维护
mysql的优化策略有哪些
mysql索引的实现 B+树的实现原理
什么情况索引不会命中,会造成全表扫描
java中bio nio aio的区别和联系
为什么bio是阻塞的 nio是⾮阻塞的 nio是模型是什么样的
Java io的整体架构和使⽤的设计模式
Reactor模型和Proactor模型
http请求报⽂结构和内容
http三次握⼿和四次挥⼿
rpc相关:如何设计⼀个rpc框架,从io模型 传输协议 序列化⽅式综合考虑
Linux命令 统计,排序,前⼏问题等
StringBuff 和StringBuilder的实现,底层实现是通过byte数据,外加数组的拷贝来实现的
cas操作的使⽤
内存缓存和数据库的⼀致性同步实现
mysql面试题基础知识微服务的优缺点
线程池的参数问题
ip问题 如何判断ip是否在多个ip段中
判断数组两个中任意两个数之和是否为给定的值
乐观锁和悲观锁的实现
synchronized实现原理
你在项⽬中遇到的困难和怎么解决的
你在项⽬中完成的⽐较出⾊的亮点
消息队列⼴播模式和发布/订阅模式的区别
⽣产者消费者代码实现
死锁代码实现
线程池:参数,每个参数的作⽤,⼏种不同线程池的⽐较,阻塞队列的使⽤,拒绝策略
Future和ListenableFuture 异步回调相关
算法相关:判断能否从数组中出两个数字和为给定值,随机⽣成1~10000不重复并放⼊数组,求数组的⼦数组的最⼤和,⼆分查算法的实现及其时间复杂计算
3
其他
算法:常⽤排序算法,⼆分查,链表相关,数组相关,字符串相关,树相关等
常见序列化协议及其优缺点
memcached内存原理,为什么是基于块的存储
搭建⼀个rpc需要准备什么
如果线上服务器频繁地出现full gc ,如何去排查
数据库四舍五入取整如果某⼀时刻线上机器突然量变得很⼤,服务扛不住了,怎么解决
LUR算法的实现
LinkedHashMap实现LRU
定义栈的数据结构,请在该类型中实现⼀个能够到栈最⼩元素的min函数
海量数据处理的解决思路
reactor模型的演变
阻塞、⾮阻塞、同步、异步区别
Collection的⼦接⼝
jvm调优相关
zookeeper相关,节点类型,如何实现服务发现和服务注册
nginx负载均衡相关,让你去实现负载均衡,该怎么实现
linux命令,awk、cat、sort、cut、grep、uniq、wc、top等
压⼒测试相关,怎么分析,单接⼝压测和多情况下的压测
你觉得你的有点是什么,你的缺点是什么
spring mvc的实现原理
netty底层实现,IO模型,ChannelPipeline的实现和原理
缓存的设计和优化
缓存和数据库⼀致性同步解决⽅案
你所在项⽬的系统架构,谈谈整体实现
消息队列的使⽤场景
ActiveMQ、RabbitMQ、Kafka的区别
1、常⽤设计模式
单例模式:懒汉式、饿汉式、双重校验锁、静态加载,内部类加载、枚举类加载。保证⼀个类仅有⼀个实例,并提供⼀个访问它的全局访问点。
代理模式:动态代理和静态代理,什么时候使⽤动态代理。
适配器模式:将⼀个类的接⼝转换成客户希望的另外⼀个接⼝。适配器模式使得原本由于接⼝不兼容⽽不能⼀起⼯作的那些类可以⼀起⼯作。
装饰者模式:动态给类加功能。
观察者模式:有时被称作发布/订阅模式,观察者模式定义了⼀种⼀对多的依赖关系,让多个观察者对象同时监听某⼀个主题对象。这个主题对象在状态发⽣变化时,会通知所有观察者对象,使它们能够⾃动更新⾃⼰。
策略模式:定义⼀系列的算法,把它们⼀个个封装起来, 并且使它们可相互替换。
外观模式:为⼦系统中的⼀组接⼝提供⼀个⼀致的界⾯,外观模式定义了⼀个⾼层接⼝,这个接⼝使得这⼀⼦系统更加容易使⽤。
命令模式:将⼀个请求封装成⼀个对象,从⽽使您可以⽤不同的请求对客户进⾏参数化。
创建者模式:将⼀个复杂的构建与其表⽰相分离,使得同样的构建过程可以创建不同的表⽰。
抽象⼯⼚模式:提供⼀个创建⼀系列相关或相互依赖对象的接⼝,⽽⽆需指定它们具体的类。
2、基础知识
Java基本类型哪些,所占字节和范围
Set、List、Map的区别和联系
什么时候使⽤Hashmap
什么时候使⽤Linkedhashmap、Concurrenthashmap、Weakhashmap
哪些集合类是线程安全的
为什么Set、List、map不实现Cloneable和Serializable接⼝
Concurrenthashmap的实现,1.7和1.8的实现
Arrays.sort的实现
什么时候使⽤CopyOnArrayList
volatile的使⽤
synchronied的使⽤
reentrantlock的实现和Synchronied的区别
CAS的实现原理以及问题
AQS的实现原理
接⼝和抽象类的区别,什么时候使⽤
类加载机制的步骤,每⼀步做了什么,static和final修改的成员变量的加载时机
双亲委派模型
反射机制:反射动态擦除泛型、反射动态调⽤⽅法等
动态绑定:⽗类引⽤指向⼦类对象
JVM内存管理机制:有哪些区域,每个区域做了什么
JVM垃圾回收机制:垃圾回收算法 垃圾回收器 垃圾回收策略
jvm参数的设置和jvm调优
如何在下载mysql什么情况产⽣年轻代内存溢出、什么情况产⽣年⽼代内存溢出
内部类:静态内部类和匿名内部类的使⽤和区别
Redis和memcached:什么时候选择redis,什么时候选择memcached,内存模型和存储策略是什么样的
MySQL的基本操作 主从数据库⼀致性维护
mysql的优化策略有哪些
mysql索引的实现 B+树的实现原理
什么情况索引不会命中,会造成全表扫描
java中bio nio aio的区别和联系
为什么bio是阻塞的 nio是⾮阻塞的 nio是模型是什么样的
Java io的整体架构和使⽤的设计模式
Reactor模型和Proactor模型
http请求报⽂结构和内容
http三次握⼿和四次挥⼿
rpc相关:如何设计⼀个rpc框架,从io模型 传输协议 序列化⽅式综合考虑
Linux命令 统计,排序,前⼏问题等
StringBuff 和StringBuilder的实现,底层实现是通过byte数据,外加数组的拷贝来实现的
cas操作的使⽤
内存缓存和数据库的⼀致性同步实现
微服务的优缺点
线程池的参数问题
ip问题 如何判断ip是否在多个ip段中
判断数组两个中任意两个数之和是否为给定的值
乐观锁和悲观锁的实现
synchronized实现原理
你在项⽬中遇到的困难和怎么解决的
你在项⽬中完成的⽐较出⾊的亮点
消息队列⼴播模式和发布/订阅模式的区别
⽣产者消费者代码实现
死锁代码实现
线程池:参数,每个参数的作⽤,⼏种不同线程池的⽐较,阻塞队列的使⽤,拒绝策略
Future和ListenableFuture 异步回调相关
算法相关:判断能否从数组中出两个数字和为给定值,随机⽣成1~10000不重复并放⼊数组,求数组的⼦数组的最⼤和,⼆分查算法的实现及其时间复杂计算
3、其它
算法:常⽤排序算法,⼆分查,链表相关,数组相关,字符串相关,树相关等
常见序列化协议及其优缺点
memcached内存原理,为什么是基于块的存储
搭建⼀个rpc需要准备什么
如果线上服务器频繁地出现full gc ,如何去排查
如果某⼀时刻线上机器突然量变得很⼤,服务扛不住了,怎么解决
LUR算法的实现
LinkedHashMap实现LRU
定义栈的数据结构,请在该类型中实现⼀个能够到栈最⼩元素的min函数
海量数据处理的解决思路
reactor模型的演变
阻塞、⾮阻塞、同步、异步区别
Collection的⼦接⼝
jvm调优相关
zookeeper相关,节点类型,如何实现服务发现和服务注册
switchcase菜鸟nginx负载均衡相关,让你去实现负载均衡,该怎么实现
linux命令,awk、cat、sort、cut、grep、uniq、wc、top等
压⼒测试相关,怎么分析,单接⼝压测和多情况下的压测
你觉得你的有点是什么,你的缺点是什么
spring mvc的实现原理
netty底层实现,IO模型,ChannelPipeline的实现和原理
缓存的设计和优化
缓存和数据库⼀致性同步解决⽅案
你所在项⽬的系统架构,谈谈整体实现
消息队列的使⽤场景
ActiveMQ、RabbitMQ、Kafka的区别
想要学习Dubbo框架、zookeper基本原理、redis分布式缓存、JVM性能优化,Nginx+apache+Tomcat集部署、⼤数据hadoop,Hbase实时计算spark、storm、数据分析分词和权重等核⼼技术;需要的可以关注之后私信哈,记得要点赞转发噢
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论