面试题1.27

1.Spring和SpringCloud有什么区别?
Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序,提供与外部系统的集
成。Spring cloud Task,一个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程
序。

2.Vue的生命周期
Vue 的生命周期总共分为8个阶段:创建前/后,载入前/后,更新前/后,销毁前/后。
1、beforeCreate(创建前)
表示实例完全被创建出来之前,vue 实例的挂载元素 e l 和 数 据 对 象 d a t a 都 为 u n d e f i n e d , 还 未 初 始 化 。 2 、 c r e a t e d ( 创 建 后 ) 数 据 对 象 d a t a 已 存 在 , 可 以 调 用 m e t h o d s 中 的 方 法 , 操 作 d a t a 中 的 数 据 , 但 d o m 未 生 成 , el和数据对象 data 都为 undefined,还未初始化。 2、created(创建后) 数据对象 data 已存在,可以调用 methods 中的方法,操作 data 中的数据,但 dom 未生成, eldataundefined2createddatamethodsdatadomel 未存在 。
3、beforeMount(挂载前)
vue 实例的 $el 和 data 都已初始化,挂载之前为虚拟的 dom节点,模板已经在内存中编辑完成了,但是尚未把模板渲染到页面中。data.message 未替换。
4、mounted(挂载后)
vue 实例挂载完成,data.message 成功渲染。内存中的模板,已经真实的挂载到了页面中,用户已经可以看到渲染好的页面了。实例创建期间的最后一个生命周期函数,当执行完 mounted 就表示,实例已经被完全创建好了,DOM 渲染在 mounted 中就已经完成了。
5、beforeUpdate(更新前)
当 data 变化时,会触发beforeUpdate方法 。data 数据尚未和最新的数据保持同步。
6、updated(更新后)
当 data 变化时,会触发 updated 方法。页面和 data 数据已经保持同步了。
7、beforeDestory(销毁前)
组件销毁之前调用 ,在这一步,实例仍然完全可用。
8、destoryed(销毁后)
组件销毁之后调用,对 data 的改变不会再触发周期函数,vue 实例已解除事件监听和 dom绑定,但 dom 结构依然存在。

3.spring事务配置的具体流程
第一步:配置Spring的事务管理器(需要用的dataSource)
第二步:配置事务(配置切入点,配置切面)
第三步:进行事务的测试

4.面向对象6大原则
1.单一职责:一个类只做它该做的事。面向对象中,如果只让一个类完成它该做的事,而不涉及与它无关的领域就是践行了高内聚的原则
2.开闭封闭:软件实体应当对扩展开放,对修改关闭
3.里氏替换:任何时候都可以用子类型替换父类
4.依赖倒置:面向接口编程(尽可能使用抽象类不使用具体类)
5.合成聚合复用:优先使用聚合或合成关系服用代码
6.接口隔离:接口要小而专,绝不能大而全

5.RabbitMQ的用途
优点上面已经说了,就是在特殊场景下有其对应的好处,解耦、异步、削峰。
1)解耦:A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果
C 系统现在不需要了呢?A 系统负责人几乎崩溃…A 系统跟其它各种乱七八糟的系统严重耦合,A 系统
产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。如果使用 MQ,A 系统产生一
条数据,发送到 MQ 里面去,哪个系统需要数据自己去 MQ 里面消费。如果新系统需要数据,直接从
MQ 里消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。这样下来,A 系统
压根儿不需要去考虑要给谁发送数据,不需要维护这个代码,也不需要考虑人家是否调用成功、失败超
时等情况。
就是一个系统或者一个模块,调用了多个系统或者模块,互相之间的调用很复杂,维护起来很麻烦。但
是其实这个调用是不需要直接同步调用接口的,如果用 MQ 给它异步化解耦。
(2)异步:A 系统接收一个请求,需要在自己本地写库,还需要在 BCD 三个系统写库,自己本地写库
要 3ms,BCD 三个系统分别写库要 300ms、450ms、200ms。最终请求总延时是 3 + 300 + 450 +
200 = 953ms,接近 1s,用户感觉搞个什么东西,慢死了慢死了。用户通过浏览器发起请求。如果使用
MQ,那么 A 系统连续发送 3 条消息到 MQ 队列中,假如耗时 5ms,A 系统从接受一个请求到返回响应
给用户,总时长是 3 + 5 = 8ms。
(3)削峰:减少高峰时期对服务器压力。

6.创建线程的三种方式
继承Thread类;
实现Runnable接口
实现Callable接口通过FutureTask包装器来创建Thread线程
使用ExecutorService、callable、Future实现有返回结果的多线程

7.线程中常用的方法
start():启动新创建的线程
run():在原来的线程中调用,没有启动新的线程
join():指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程。

  1. list set map集合特性
    List接口存储一组不唯一(可以有多个元素引用相同的对象),有序的
    对象
    set接口不允许重复的集合。不会有多个元素引用相同的对象。
    map使用键值对存储。Map会维护与Key有关联的值。两个Key可以引用相
    同的对象,但Key不能重复,典型的Key是String类型,但也可以是任何对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值