java高频考点 2 ~持续更新~

java高频考点 1
https://blog.csdn.net/weixin_49198221/article/details/121238886
java高频考点 3
https://blog.csdn.net/weixin_49198221/article/details/122179622

1.spring的事务隔离级别?

spring有五大隔离级别,
默认隔离级别:ISOLATION_DEFAULT(使用数据库的设置),
其他四个与和数据库的隔离级别一致,
读已提交 : 读未提交(Oracle) : 可重复度(MySQL) : 串行化

2.springMVC的五大组件?

1.前端控制器 DispatcherServlet
2.处理器映射器 HandlerMapping
3.处理器适配器 Controller
4.视图解析器 ModelAndView
5.视图渲染器 ViewResolver

3.spring MVC运行流程?

user将请求发给前端控制器,
前端控制器调用处理器映射器处理并返回数据,
前端处理器调用处理器适配器处理业务数据并返回,
前端控制器调用视图解析器并返回数据,
前端控制器调用视图渲染器返回给用户.

4. @RequestMapping作用是什么?

将http请求的映射到相应的类上和方法上

5. @Autowired作用是什么?

他可以对类成员变量,方法及构造方法进行标注,完成自动装配

6.什么是spring boot?

spring boot是为了spring的服务,是简化spring应用的初始化搭建以及开发过程

7.为什么要用spring boot?

1.配置简单
2.独立运行
3.自动装配
4.无代码生成和xml配置
5.提供应用监控
6.提升开发效率

8.spring boot 核心配置文件是什么?

两个核心配置文件
1.bootstrap.(yml / properties) 优先加载
2.application.(yml / properties)

9.spring boot配置文件有哪几种类型?

1 properties
2 yml

10.什么是spring cloud

1.spring cloud是一系列框架的集合
2.利用spring boot的开发风格,简化分布式系统的基础环境

11.spring cloud的核心组件?

  1. Eureka: 服务注册于发现
  2. Feign:基于基于动态代理机制,根据注解和选择的机器,拼接url地址,发起请求
  3. Ribbon:实现负载均衡,从一个服务的多态机器中选择一台
  4. Hystrix:提供线程池,不同的服务走不同的线程池,实现了不同服务调用的隔离避免了服务雪崩
  5. Zuul:网关管理,有Zuul网关转发请求给对应服务

12.什么是ORM框架?

1.是对象关系映射,是把数据库中的关系数据库映射成为程序对象
2.优点:提高开发效率,开发简单更对象化,可移植性强

13.mybatis中 # 和 $ 区别

  1. #有预编译,可以防止SQL注入,保证程序运行安全
  2. $没有预编译,可能发生SQL注入

14.mybatis有几种分页方式?

有两种:逻辑分页和物理分页
1.逻辑分页:是用mybatisRowBounds进行分页,他是一次查询很多数据,然后在数据中再进行检索
2.物理分页:自己手写SQL或分页插件PageHelper,q去数据库查询指定条数的分页数据的形式

15.RowBounds 是一次性查询全部结果吗?为什么?

RowBounds表面是所有的数据中检索数据,其实并非一次查询出所有的数据,因为mybatis是对jdbc的封装,在jdbc驱动中有一个Fetch Size的配置,他规定了每次最多从数据库中查询多少条数据,假如你要查询更多数据,他会在你执行next()的时候,去查询更多的数据,就好比你去ATM机取10000元,但ATM机每次最多去2500,所以你要取四次.对于jdbc来说,当你调用next()的时候会自动帮你完成查询工作.这样就有效防止内存溢出.
Fetch Size 官方相关文档:http://t. cn/EfSE2g3

16.mybatis逻辑分页和物理分页的区别?

1.逻辑分页:一次查询很多数据,然后在结果中检索分页的数据
弊端:消耗内存,存在内存溢出风险,对数据库压力较大
2.物理分页:从数据库查询指定条数的数据

17.mybatis和hibernate的区别?

1.灵活性:mybatis更加灵活,自己写SQL
2.可移植性:mybatis需要自己写SQL,应为数据库的SQL有不同的,所以可移植性较差
3.mybatis学习门槛较低

18.RabbitMQ的使用场景有哪些?

  1. 抢购活动 削峰填谷 方式系统崩塌.
  2. 延迟信息处理,比如给10分钟之后下单未付款的用户发送提醒
  3. 解耦系统 对于新增用户可以单独写模块扩展,比如用户评价之后,新增了给用户反积分的功能,这个时候不用在业务代码中添加新增积分的功能,只需要把新增积分的接口订阅确认评价的消息队列即可,后面再添加任何功能只需要订阅对应的消息队列即可

19.RabbitMQ有哪些重要的角色?

1.生产者:消息的创建者,负责创建和推送数据消息服务器
2.消费者:消费的接收方,用于处理数据和确认消息
3.代理:用于扮演快递的角色,本身不生产消息,只是扮演快递的角色

20.RabbitMQ有哪些重要的组件?

1.连接器(ConnectionFactory):应用程序与rabbit之间建立连接的管理器
2.信道(Channel):消息推送使用的通道
3.交换机(Exchange):用于接受,分配消息
4.队列(Queue):用于存储生产者的消息
5.路由键(RoutingKey):用于把生产者的数据分配到交换机上
6.绑定建(BindingKey):用于交换机的信息绑定到队列中

21.RabbitMQ怎么保障消息的稳定性?

通过事务的功能

22.RabbitMQ要保证消息持久化的条件有哪些?

1.声明队列必须要持久化durable的设置为true
2.消息推送投递模式必须设置持久化deliveryMode设置为 2
3.消息已经到持久化交换机
4.消息已经到达持久化队列
以上的个条件都满足才能保障消息的持久化成功

23.数据库的三范式是什么?

1.第一范式:强调的是列的原子性,即数据库表的每一列都是不可分割的原子数据项
2.第二范式:要求实体属性万千依赖关键字.所谓完全依赖关键字是指不能存在仅依赖主关键字一部分的属性
3.第三范式:任何非主属性不依赖于其他非主属性

24.MySQL数据库的四大特性(ACID)?

1.原子性(Atomicity):在一个事务中要么全执行成功,要么全执行失败
2.一致性(Consistency):在事务开始之前或结束之后,数据库的完整性没有被破坏
3.隔离性(Isolation):数据库允许多个并发事务同时进行读写的能力,此时各个线程之间的事务是相互独立影响的
4.持久性(Durability):事务结束之后,对数据的修改可以是永久的.

25.MySQL数据库的四大隔离级别?

1.读未提交(Read uncommitted)
2.读已提交(Read committed)
3.可重复读(Repeatable read)
4.串行化(Serializable)

脏读:表示一个事务能够读取另一个事务还未提交的数:比如某个事务尝试插入记录A,此时事务还未提交,然后另一个事务尝试读取到记录A
不可重复度:是指在一个事务内,多次出现同一条数据
幻读:指同一个事务内多次查询返回的结果集不一样

26.MySQL的内连接 左连接 右连接有什么区别?

1.内连接是把匹配的关联数据显示出来(取两张表的交集)
2.左连接是左边的表权限是出来,右边的表显示出符合条件的数据
3.右连接和左连接相反

27.MySQL 是如何实现索引的?

索引是满足特定找查算法的数据结构,而这些数据结构会以某种方式指向数据,从而实现高效查找.

28.如何验证MySQL的索引是否满足需求?

使用explain查看SQL是如何执行查询语句的,从而分析索引是否满足需求
explain语法:explain select * from table where type=1;

29.乐观锁和悲观锁?

1.乐观锁:每次去哪数据的时候都认为别人不会修改,所以不会上锁,但是在提交更新的时候会判断一下在此期间别人有没有去更新这个数据
2.悲观锁:每次去那数据的时候都认为别人会修改,所以每次在那数据的时候都会上锁,这样别人想拿这个数据都会阻止,知道这个锁被释放

30.如何做MySQL的性能优化?

1.为搜索的字段创建索引
2.避免使用 * 号列出所有的字段
3.垂直分割表
4.选择正确的存储引擎
4.使用Redis

java高频考点 1
https://blog.csdn.net/weixin_49198221/article/details/121238886

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨天行舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值