前言
消息中间件作为分布式系统的重要成员,各大公司及开源均有许多解决方案。目前主流的开源解决方案包括RabbitMQ、RocketMQ、Kafka、ActiveMQ等。消息这个东西说简单也简单,说难也难。简单之处在于好用方便,接入简单使用简单,异步操作能够解耦系统间的依赖,同时失败后也能够追溯重试。难的地方在于,设计一套可以支撑业务的消息机制,并提供高可用架构,解决消息存储、消息重试、消息队列的负载均衡等一系列问题。然而难也不代表没有方法或者“套路”,熟悉一下原理与实现,多看几个框架的源码后多总结势必能找出一些共性。
消息框架大同小异,熟练掌握其原理、工作机制是必要的。就拿用的比较多的RocketMQ为引,来说说消息引擎的设计与实现。阿里的消息引擎经过了从Notify到Napoli、再到MetaQ三代的发展,现在已经非常成熟,在不同部门的代码中现在没准都还可以从代码里看到这一系列演进过程。当前的Apache RocketMQ 就是阿里将MetaQ项目捐赠给了Apache基金会,而内部还是沿用MetaQ的名称。
Java基础
1.Java语言的三大特性
2.Java语言主要特性
3. JDK和JRE有什么区别
4.Java基本数据类型及其封装类
5.如果main方法被声明为private会怎样?
6.说明- -下public static void main(String argsQ])这段声明里每个关键字的作用
7.==与equals的区别
8.Object有哪些公用方法
9.为什么Java里没有全局变量?
10.while循环和do循环有什么不同?
11.char型变量中能不能存储一个中文汉字?为什么?
12.public, private, protected的区别, 继承方法与访问权限
13.float f=3.4;是否正确?
14.shorts1 = 1;s1 = s1 + 1;有错吗? shorts1 = 1;s1 += 1;有错吗
15.8u和&:&的区别?
16.IntegerCache
17.Locale类是什么?
18Java中final. finally. finalize的区别与用法
19.hashCode0和equals0的区别
20.深拷贝和浅拷贝的区别是什么?
21Java中操作字符串都有哪些类?它们之间有什么区别?
22.String str= "a"与String str=new String(“a”)-样吗?
23.抽象类能使用final 修饰吗?
24.static关键字5连问
25.重载(Overload) 和重写(Override) 的区别。重载的方法能否根据返回类型进行区分?
26.Java的四种引用
27.Java中Comparator与Comparable有什么不同?
28. Java序列化,反序列化?
29.什么情况需要Java序列化?
30.序列化的实现?
31.如果某些数据不想序列化,如何处理?
IO&NIO
1.什么是I0流?
2java中有几种类型的流?
3.字节流和字符流哪个好?怎么选择?
4.读取数据量大的文件时,速度会很慢,如何选择流?
5.1O模型有几种?
6.阻塞1O (blocking 10)
7.非阻塞I/O (nonblocking 10)
8.I/O多路复用模型(I0 multiplexing)
9.信号驱动I/O模型
10.异步/O(asynchronous 10)
11.NIO与10的区别?
12.NIO和IO适用场景
13.NIO核心组件
14.什么是channel
15.Java NIO中最常用的通道实现?
16.Buffer是什么?
多线程面试题
1.什么是进程?
2.什么是线程?
3.线程的实现方式?
4.Thread类中的start0和run0方法有什么区别?
5.线程NEW状态
6.线程RUNNABLE状态
7.线程的RUNNING状态
8.线程的BLOCKED状态
9.线程的TERMINATED状态
10.线程状态转化图
11.i——与System.out.printIn0的异常
12.如何知道代码段被哪个线程调用?
13.线程活动状态?
14.sleep0方法
15.如何优雅的设置睡民时间?
16.停止线程
17.interrupted和isInterrupted
18.yield
19.线程的优先级
20.优先级继承特性
21.谁跑的更快?
22.线程种类
23.守护线程的特点
24.Java中典型的守护线程
25.如何设置守护线程
25Java虚拟机退出时Daemon线程中的finally块一定会执行?
26.设置线程上下文类加载器
27.join
28.什么是synchronized?
29.synchronized包括哪两个jvm重要的指令?
30.synchronized关键字用法?
31.synchronized锁的是什么?
32.Java对象头
还有很多,这里就不一一例举了
JVM
1JDK. JRE、 JVM关系?
2.启动程序如何查看加载了哪些类,以及加载顺序? ’
3. class字节码文件10个主要组成部分?
4.画一下jvm内存结构图?
5.程序计数器
6Java虚拟机栈
7.本地方法栈
8Java堆
9.方法区
10.运行时常量池?
11.什么时候抛出StackOverflowError?
12.Java7和Java8在内存模型上有什么区别?
13.程序员最关注的两个内存区域?
14.直接内存是什么?
15.除了哪个区域外,虚拟机内存其他运行时区域都会发生OutOfMeoryError?
16.什么情况下会出现堆内存溢出?
17如何实现一个堆内存溢出?
18.空间什么情况下会抛出OutOfMemoryError?
19.如何实现StrackOverflowError?
20.如何设置直接内存容量?
21.Java堆内存组成?
22. Edem : from : to默认比例是?
23.垃圾标记阶段?
24.引用计数法?
25.根搜索算法?
26.JVM中三种常见的垃圾收集算法?
27.标记-清除算法?
28.复制算法?
29.标记-整理算法?
30.分代收集算法?
31.垃圾收集器?
32.Stop The World?
Mysql
1.什么是数据库?
2.如何查看某个操作的语法?
3.MySql的存储弓擎有哪些?
4.常用的2种存储引擎?
6.可以针对表设置引擎吗?如何设置?
6.选择合适的存储引擎?
7.选择合适的数据类型
8.char & varchar
9.Mysq|字符集
10.如何选择字符集?
11.什么是索引?
12.索引设计原则?
13.MySq|有哪些索引?
14.Hash索引和B+树索引的底层实现原理:
15.非聚簇索引-定会回表查询吗?
16.如何查询最后一 行记录?
17.MySQL自增id不连续问题?
18.sq注入问题?
19.什么是3NF (范式) ?
20. NULL和空串判断?
21.什么是事务?
22.事务4个特性?
23.事务隔离级别分别是?
24.InnoDB默认事务隔离级别?如何查看当前隔离级别
25.什么是锁?
26.死锁?
27.如何处理死锁?
28.如何创建用户?授权?
29.如何查看表结构?
30.Mysq删除表的几种方式?区别?
31.like走索引吗?
Spring
1.Spring框架?
2.Spring的整体架构?
3.Spring可以做什么?
4.Spring的优点?缺点?
5.你能说几个Spring5的新特性吗?
6.IOC?
7.什么是依赖注入?
8.IOC注入哪几种方式?
9.10C优点?缺点?
10.bean的生命周期?
11.Spring有几种配置方式?
12.Spring中的bean有几种scope?
13.什么是AOP(面向切面编程)?
14.切面有几种类型的通知?分别是?
15.什么是连接点(Join point)?
16.什么是切点(Pointcut)?
17.什么是切面(Aspect)?
18.织入(Weaving)?
19.引入(Introduction) ?
20.在目标对象的生命周期里有多个点可以进行织入?
21.AOP动态代理策略?
22.什么是MVC框架?
23.什么是SpringMVC?
24.SpringMVC的核心?
25.SpringMVC的几个组件?
26.SpringMVC工作流程?
27.SpringMVC的优点?
28.单例bean是线程安全的吗?
29.Spring从哪两个角度实现自动装配?
30.自动装配有几种方式?分别是?
31.说几个声明Bean的注解?
Mybatis
1.什么是Mybatis?
2.Hibernate优点?
3.Hibernate缺点?
4.Mybatis优点?
5.Mybatis缺点?
6.什么时候用Mybatis?
7.Mybatis的核心组件有哪些?分别是?
8.#0和$0的区别是什么?
9.Mybatis中9个动态标签是?
8.#0和$0的区别是什
10.xml映射文件中,有哪些标签?
11.Mybatis支持注解吗?优点?缺点?
12.Mybatis动态sq|?
13.Mybatis是如何进行分页的分页播件的原理是什么?
14.,如何获取自增主键?
15.为什么Mapper接口没有实现类,却能被正常调用?
16.用注解好还是xml好?
17.如果不想手动指定别名,如何用驼峰的形式自动映射?
18.当实体属性名和表中字段不一致,怎么办?
19.嵌套查询用什么标签?
20.like模糊查询怎么写?
21.Mybatis支持枚举吗?
22.SqlSessionFactoryBuilder生命周期?
23.-级缓存的结构?如何开启一级缓存? 如何不使用一-级缓存?
24.二级缓存如何配置?
25.简述Mybatis的插件运行原理,以及如何编写-个插件?
26.二级缓存的回收策略有哪些?
27.Mybatis的Xml文件中id可以重复吗?
28.和Mybatis措配java框架中比较好用的缓存框架?有哪些特点?
Redis
1.Redis是什么?
2.Redis特性?
3.Redis合适的应用场景?
4.除了Redis你还知道哪些NoSQL数据库?
5.Redis和Memcache区别?
6.Redis的有几种数据类型?
7.Redis有哪些高级功能?
8.安装过Redis吗,简单说下步骤?
9.redis几个比较主要的可执行文件?分别是?
10.启动Redis的几种方式?
11.Redis配置需要自己写?如何配置?
12.Redis客户端命令执行的方式?
13.如何停止redis服务?
14.如何查看当前键是否存在?
15.如何删除数据?
16.redis为什么快?单线程?
17.字符串最大不能超过多少?
18.redis默认分多少个数据库?
19.redis持久化的几种方式?
20.RDB持久化?
21.RDB的持久化是如何触发的?
22.RDB的优点?
23.RDB的缺点?
24.如何禁用持久化?
25.AOF持久化?
26.如何查询AOF是否开启?
27如何开启AOF?
28.AOF工作流程?
29.为什么AOF要先把命令追加到缓存区(aof _buf)中?
30.AOF持久化如何触发的?
31.AOF优点?
32.AOF缺点?
SpringBoot
1.什么是SpringBoot?
2.SpringBoot的特征?
3.如何快速构建一个SpringBoot项目?
4.SpringBoot启动类注解?它是由哪些注解组成?
5.什么是yaml?
6.SpringBoot支持配置文件的格式?
7.SpringBoot启动方式?
8.SpringBoot需要独立的容器运行?
9.SpringBoot配置途径?
10.application.properties和application.yml文件可放位置?优先级?
11.SpringBoot自动配置原理?
12.SpringBoot热部署方式?
13.bootstrap.yml和application.yml?
14.SpringBoot如何修改端口号?
15.开启SpringBoot特性的几种方式?
16.SpringBoot如何兼容Spring项目?
17.SpringBoot配置监控?
18.获得Bean装配报告信息访问哪个端点?
19.关闭应用程序访问哪个端点?
20.查看发布应用信息访问哪个端点?
21.针对请求访问的几个组合注解?
22.SpringBoot中的starter?
23.SpringBoot集成Mybatis?
24.什么是SpringProfiles?
25.不同的环境的配置文件?
26.如何激活某个环境的配置?
27编写测试用例的注解?
28.SpringBoot异常处理相关注解?
29.SpringBoot 1.x和2.x区别…
30.SpringBoot读取配置相关注解有?
SpringCloud
1.什么是SpringCloud?
2.什么是微服务?
3.SpringCloud有哪些特征?
4.SpringCloud核心组件?
5.SpringCloud基于什么协议?
6.SpringCloud和Dubbo区别?
7.Eureka是什么?
8.服务治理的基础角色?
9.什么是服务续约?
10.什么是服务下线?
11.什么是失效剔除?
12.什么是自我保护机制?
13.Ribbon是什么?
14.Ribbon负载均衡的注解是?
15.Ribbon负载均衡策略有哪些?
16.什么是服务熔断?
17.什么是服务降级?
18.什么是Hystrix?
19.断路器Hystrix的有哪些功能?
20.Hystrix将远程调用封装到?
21.启动熔断降级服务的注解?
22.什么是Feign?
23.Feign优点?
24.什么是Config?
23…Feign优点?
25.Config组件中的两个角色?
26.什么是Zuul?
27.使用Zuul的优点?
28.Zuul的核心是?
29.Zuul有几种过滤器类型?分别是?
30.什么是Sleuth?
31.Sleuth帮助我们做了哪些工作?
Kafka
1.什么是kafka?
2.kafka的3个关键功能?
3.kafka通常用于两大类应用?
4.kafka特性?
5.kafka的5个核心Api?
6.什么是Broker (代理) ?
7.什么是Producer (生产者) ?
8.什么是Consumer (消费者) ?
9.什么是Topic (主题) ?
10.什么是Partition (分区) ?
11.分区和代理节点的关系?
12.什么是副本(Replication)?
13.什么是记录(Record)?
14.kafka适合哪些场景?
15.kafka磁盘选用上?
16.使用RAID的优势?
17.磁盘容量规划需要考虑到几个因素?
18.Broker使用单个?多个文件目录路径参数?
19.-般来说选择哪个参数配置路径?好处?
20.自动创建主题的相关参数是?
21解决kafka消息丢失问题?
22.如何自定分区策略?
23.kafka压缩消息可能发生的地方?
24.kafka消息重复问题?
25.你知道的kafka监控工具?
最后分享一波,Java核心架构进阶知识点
面试成功其实都是必然发生的事情,因为在此之前我做足了充分的准备工作,不单单是纯粹的刷题,更多的还会去刷一些Java核心架构进阶知识点,比如:JVM、高并发、多线程、缓存、Spring相关、分布式、微服务、RPC、网络、设计模式、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补,不过这份《Java核心架构进阶知识点整理pdf》以及前面P8整理的全套系列大厂面试题皆可免费分享给有需要的你,点击这里即可免费领取文中所有资料
、MQ、Redis、MySQL、设计模式、负载均衡、算法、数据结构、kafka、ZK、集群等。而这些也全被整理浓缩到了一份pdf——《Java核心架构进阶知识点整理》,全部都是精华中的精华,本着共赢的心态,好东西自然也是要分享的
[外链图片转存中…(img-VvkZvoJ6-1624465854449)]
[外链图片转存中…(img-ECXDOZ0U-1624465854449)]
[外链图片转存中…(img-9DM1dOvq-1624465854450)]
内容颇多,篇幅却有限,这就不在过多的介绍了,大家可根据以上截图自行脑补,不过这份《Java核心架构进阶知识点整理pdf》以及前面P8整理的全套系列大厂面试题皆可免费分享给有需要的你,点击这里即可免费领取文中所有资料