SpringCloud Interview Questions
# SpringCloud 面试题(总结最全面的面试题!!!)
Java 面试总结汇总,整理了包括 Java 重点知识,以及常用开源框架,欢迎大家阅读。文章可能有错误的地方,因为个人知识有限,欢迎各位大佬指出!文章持续更新中…
ID
标题
地址
1
设计模式面试题(总结最全面的面试题)
juejin.cn/post/684490…
2
Java 基础知识面试题(总结最全面的面试题)
juejin.cn/post/684490…
3
Java 集合面试题(总结最全面的面试题)
juejin.cn/post/684490…
4
JavaIO、BIO、NIO、AIO、Netty 面试题(总结最全面的面试题)
juejin.cn/post/684490…
5
Java 并发编程面试题(总结最全面的面试题)
juejin.cn/post/684490…
6
Java 异常面试题(总结最全面的面试题)
juejin.cn/post/684490…
7
Java 虚拟机(JVM)面试题(总结最全面的面试题)
juejin.cn/post/684490…
...
My SpringMVC notes
# 一、SpringMVC 简介
# 1、什么是 MVC
MVC 是一种软件架构的思想,将软件按照模型、视图、控制器来划分
M:Model,模型层,指工程中的 JavaBean,作用是处理数据
JavaBean 分为两类:
一类称为实体类 Bean:专门存储业务数据的,如 Student、User 等
一类称为业务处理 Bean:指 Service 或 Dao 对象,专门用于处理业务逻辑和数据访问。
V:View,视图层,指工程中的 html 或 jsp 等页面,作用是与用户进行交互,展示数据
C:Controller,控制层,指工程中的 servlet,作用是接收请求和响应浏览器
MVC 的工作流程:
用户通过视图层发送请求到服务器,在服务器中请求被 Controller 接收,Controller 调用相应的 Model 层处理请求,处理完毕将结果返回到 Controller,Controller 再根据请求处理的结果找到相应的 View 视图,渲染数据后最终响应给浏览器
# 2、什么是 SpringMVC
SpringMVC 是 Spring 的一个后续产品,是 Spring ...
My SpringCloud notes
# 认识微服务
# 单体架构
单体架构:将业务的所有功能集中在一个项目中开发,打成一个包部署。
优点: 架构简单,部署成本低
缺点: 耦合度高(维护困难、升级困难)
# 分布式架构
分布式架构:根据业务功能对系统做拆分,每个业务功能模块作为独立项目开发,称为一个服务。
优点: 降低服务耦合,有利于服务升级和拓展
缺点: 服务调用关系错综复杂
分布式架构虽然降低了服务耦合,但是服务拆分时也有很多问题需要思考:
服务拆分的粒度如何界定?
服务之间如何调用?
服务的调用关系如何管理?
人们需要制定一套行之有效的标准来约束分布式架构。
# 微服务
微服务的架构特征:
单一职责:微服务拆分粒度更小,每一个服务都对应唯一的业务能力,做到单一职责
自治:团队独立、技术独立、数据独立,独立部署和交付
面向服务:服务提供统一标准的接口,与语言和技术无关
隔离性强:服务调用做好隔离、容错、降级,避免出现级联问题
微服务的上述特性其实是在给分布式架构制定一个标准,进一步降低服务之间的耦合度,提供服务的独立性和灵活性。做到高内聚,低耦合。
因此,可以认为微服务是一种经过良好架构设计的分布式架构方 ...
My SpringBoot2 notes
# 基础入门 - SpringBoot2 课程介绍
Spring Boot 2 核心技术
Spring Boot 2 响应式编程
学习要求
- 熟悉 Spring 基础
- 熟悉 Maven 使用
环境要求
Java8 及以上
Maven 3.3 及以上
学习资料
Spring Boot 官网
Spring Boot 官方文档
本课程文档地址
视频地址 1、视频地址 2
源码地址
# 基础入门 - Spring 生态圈
Spring 官网
# Spring 能做什么
# Spring 的能力
# Spring 的生态
覆盖了:
web 开发
数据访问
安全控制
分布式
消息服务
移动开发
批处理
…
# Spring5 重大升级
响应式编程
内部源码设计
基于 Java8 的一些新特性,如:接口默认实现。重新设计源码架构。
# 为什么用 SpringBoot
Spring Boot makes it easy to create stand-alone, production-grade Spring based Applicatio ...
My Spring notes
# 一、Spring 框架概述
Spring 是轻量级的开源的 JavaEE 框架。
Spring 可以解决企业应用开发的复杂
Spring 有两个核心部分:IOC 和 Aop
(1)IOC:控制反转,把创建对象过程交给 Spring 进行管理
(2)Aop:面向切面,不修改源代码进行功能增强
Spring 特点 :
(1)方便解耦,简化开发
(2)Aop 编程支持
(3)方便程序测试
(4)方便和其他框架进行整合
(5)方便进行事务操作
(6)降低 API 开发难度
# 二、IOC 容器
# 1. IOC 概念和原理
(1)概念:
控制反转,把_对象创建_和_对象的调用_过程交给 spring 进行管理。
目的:降低耦合度。
底层原理:xml,反射,工厂模式
# 原理讲解:
一个类里面要用到另外一个类里面的方法,我们原始方式只能 new 然后调用,这么做这两个类的耦合度太高了
所以我们可以试着用工厂模式 (不是真正的工厂模式,而是说的简单了些) 稍微解决这个耦合度
这里我们创建了个工厂类,而我们需要 userDao 的对象调用方法时,就调用这个工厂类的方 ...
SpringBoot2 notes 黑马
# 01 - 开发环境
学习要求
熟悉 Spring 基础
熟悉 Maven 使用
环境要求
Java8 及以上
Maven 3.5 及以上:https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-system-requirements
学习资料
Spring Boot 官网:https://spring.io/projects/spring-boot
Spring Boot 官方文档:https://docs.spring.io/spring-boot/docs/current/reference/html/
Spring Boot 中文文档:http://felord.cn/_doc/_springboot/2.1.5.RELEASE/_book/
视频地址:https://www.bilibili.com/video/BV15b4y1a7yG?p=24&share_source=copy_web
源码地址:https:/ ...
Spring notes
# 1. 前言
本文是在看了 b 站的尚硅谷视频
总结出来的笔记以及见解
视频如下:
尚硅谷 Spring5 框架教程(idea 版)
或者
2020 最新 Spring 框架教程【IDEA 版】-Spring 框架从入门到精通
源代码如下:
spring 从入门到精通的实例代码.rar
轻量级开源的 JAVAEE 框架
可以解决企业复杂的应用
拥有 IOC,AOP 两个核心部分
可结合这篇文章进行大概的了解这篇文章主要的框架
不容易遗忘,有个 spring 的思路点以及启发点
Spring 框架梳理总结(适合多刷)
# 2.Spring
# 2.1 Spring 的优点
IOC 方便解耦,简便开发
AOP 不改变源代码,增加其功能
方便程序测试
方便其他程序的整合
降低 API 的开发难度
# 2.2 Spring 下载配置
下载 Spring5 下载 GA 版本(稳定版本)
下载的网址为:https://repo.spring.io/release/org/springframework/spring/
下载之后压缩
libs 内是 jar 包
导入 spring ...
Socket Notes
# Socket
Socket
一、I/O 模型
阻塞式 I/O
非阻塞式 I/O
I/O 复用
信号驱动 I/O
异步 I/O
五大 I/O 模型比较
二、I/O 复用
select
poll
比较
epoll
工作模式
应用场景
参考资料
# 一、I/O 模型
一个输入操作通常包括两个阶段:
等待数据准备好
从内核向进程复制数据
对于一个套接字上的输入操作,第一步通常涉及等待数据从网络中到达。当所等待数据到达时,它被复制到内核中的某个缓冲区。第二步就是把数据从内核缓冲区复制到应用进程缓冲区。
Unix 有五种 I/O 模型:
阻塞式 I/O
非阻塞式 I/O
I/O 复用(select 和 poll)
信号驱动式 I/O(SIGIO)
异步 I/O(AIO)
# 阻塞式 I/O
应用进程被阻塞,直到数据从内核缓冲区复制到应用进程缓冲区中才返回。
应该注意到,在阻塞的过程中,其它应用进程还可以执行,因此阻塞不意味着整个操作系统都被阻塞。因为其它应用进程还可以执行,所以不消耗 CPU 时间,这种模型的 CPU 利用率会比较高。
下图中,recvfr ...
Redis CS Notes
# Redis
Redis
一、概述
二、数据类型
STRING
LIST
SET
HASH
ZSET
三、数据结构
字典
跳跃表
四、使用场景
计数器
缓存
查找表
消息队列
会话缓存
分布式锁实现
其它
五、Redis 与 Memcached
数据类型
数据持久化
分布式
内存管理机制
六、键的过期时间
七、数据淘汰策略
八、持久化
RDB 持久化
AOF 持久化
九、事务
十、事件
文件事件
时间事件
事件的调度与执行
十一、复制
连接过程
主从链
十二、Sentinel
十三、分片
十四、一个简单的论坛系统分析
文章信息
点赞功能
对文章进行排序
参考资料
# 一、概述
Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。
键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。
Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能,使用分片来扩展写性能。
# 二、数据类型
数据类型
可以存储的值
操作
...
Rabbitmq notes
# RabbitMQ
# 1 MQ 引言
# 1.1 什么是 MQ
MQ(Message Quene) : 翻译为消息队列,通过典型的生产者
和消费者模型,生产者不断向消息队列中生产消息,消费者
不断的从队列中获取消息。因为消息的生产和消费都是异
步的,而且只关心消息的发送和接收,没有业务逻辑的侵
入,轻松的实现系统间解耦。别名为 消息中间件通过利用
高效可靠的消息传递机制进行平台无关的数据交流,并
基于数据通信来进行分布式系统的集成。
# 1.2 MQ 有哪些
当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、
RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。
# 1.3 不同 MQ 特点
1.ActiveMQ
ActiveMQ 是Apache出品,最流行的,能力强劲的开源
消息总线。它是一个完全支持JMS规范的的消息中间件。
丰富的API,多种集群架构模式让ActiveMQ在业界成为老
牌的消息中间件,在中小型企业 颇受欢迎!
2.Kafka
Kafka是LinkedIn开源的分布式发布-订阅消息系统,目
前归属于 ...