java基础面试题(九)

SpringBoot/SpringCloud

  1. 什么是SpringBoot?
    在Spring框架这个大家族中,产生了很多衍生框架,比如Spring、Springmvc框架等,Spring的核心内容在于控制反转(IOC)和依赖注入(DI),所谓控制反转并非是一种技术,而是一种思想,在操作方面是指在spring配置文件中创建,依赖注入即为由spring容器为应用程序的某个对象提供资源,比如引用对象、常量数据等。
    SpringBoot是一个框架,一种全新的编程规范,他的产生简化了框架的使用,所谓简化是指简化了Spring众多框架中所需的大量且繁琐的配置文件,所以SpringBoot是一个服务于框架的框架,服务范围是简化配置文件。
  2. 为什么要用SpringBoot?
    1)SpringBoot使编码简单
    2)SpringBoot使配置变简单
    3)SpringBoot使部署变简单
    4)SpringBoot使监控变简单
  3. SpringBoot的核心配置文件是什么?
    SpringBoot提供了两种配置文件:
    properties文件
    yml文件
  4. springboot配置文件有哪几种类型?它们有什么区别?
    springboott提供了两种常用的配置文件,分别是properties文件和yml文件。相对于properties文件,yml文件更年轻,但是也有更多的坑。可谓成也萧何败萧何,yml文件通过空格来确定层级关系,使配置文件结构更清晰,但是也会因为微不足道的空格破坏了层级关系。
  5. springboot有哪些方式可以实现热部署?
    SpringBoot实现热部署的方式有两种:
    ①使用spring loaded
    在项目中添加如下代码:
<build><plugins><plugin><!-- springBoot编译插件--><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><dependencies><!-- spring热部署 --><!-- 该依赖在此处下载不下来,可以放置在build标签外部下载完成后再粘贴进plugin中 --><dependency><groupId>org.springframework</groupId><artifactId>springloaded</artifactId><version>1.2.6.RELEASE</version></dependency></dependencies></plugin></plugins></build>

添加完毕后需要使用mvn指令运行:
首先找到IDEA中的Edit configurations ,然后进行如下操作:(点击左上角的"+",然后选择maven将出现右侧面板,在红色划线部位输入如图所示指令,你可以为该指令命名(此处命名为MvnSpringBootRun))

点击保存将会在IDEA项目运行部位出现,点击绿色箭头运行即可

②使用spring-boot-devtools
在项目的pom文件中添加依赖:

<!--热部署jar--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId></dependency>

然后:使用 shift+ctrl+alt+"/" (IDEA中的快捷键) 选择"Registry" 然后勾选 compiler.automake.allow.when.app.running
109. jpa和hibernate有什么区别?
JPA Java Persistence API,是Java EE5的标准ORM接口,也是ejb3规范的一部分。
Hibernate,当今很流行的ORM框架,是JPA的一个实现,但是其动能是JPA的超集。
JPA和Hibernate之间的关系,可以简单地理解为JPA是标准接口,Hibernate是实现。那么Hibernate是如何实现与JPA的这种关系的呢?
Hibernate主要通过三个组件来实现的,及hibernate-annotation、hibernate-entitymanager和hibernate-core。
hibernate-annotation是Hibernate支持annotation方式配置的基础,它包括了标准的JPA annotation以及Hibernate自身特殊功能的annotation。
hibernate-core是Hibernate的核心实现,提供了Hibernate所有的核心功能。
hibernate-entitymanager实现了标准的JPA,可以把它看成hibernate-core和JPA之间的适配器,它并不直接提供ORM的功能,而是对hibernate-core进行封装,使得Hibernate符合JPA的规范。
110. 什么是SpringCloud?
从字面理解,SpringCloud就是致力于分布式系统、云服务的框架。
SpringCloud是整个Spring家族中新的成员,是最近云服务火爆的必然产物。
SpringCloud为开发人员提供了快速构建分布式系统中一些常见模式的工具,例如:
配置管理
服务注册与发现
断路器
智能路由
服务间调用
负载均衡
为代理
控制总线
一次性令牌
全局锁
领导选举
分布式会话
集群状态
分布式消息
……
使用SpringCloud开发人员可以开箱即用的实现这些模式的服务和应用程序。这些服务可以在任何环境下运行,包括分布式环境,也包括开发人员自己的笔记本电脑以及各种托管平台。
111. SpringCloud断路器的作用是什么?
在SpringCloud中使用了Hystrix来实现断路器的功能,断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费CPU周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决,如果问题似乎已经得到纠正,应用程序可以尝试调用操作。
断路器增加了稳定性和灵活性,以一个系统,提供稳定性,而系统从故障中恢复,并尽量减少此故障对性能的影响。它可以帮助快速地拒绝一个操作,即很可能失败,而不是等待操作超时(或者不返回)的请求,以保持系统的响应时间。如果断路器提高每次改变状态的时间的事件,该信息可以被用来检测断路器保护系统的部件的健康状态,或以提醒管理员当断路器跳闸,以在打开状态。
112. SpringCloud的核心组件有哪些?
①. 服务发现——Netflix Eureka
一个RestFul服务,用来定位运行在AWS地区(Region)中的中间层服务。由两个组件组成:Eureka服务器和Eureka客户端。Eureka服务器用作服务注册服务器。Eureka客户端时一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供鼓舞的故障切换支持。Nitfix在其生产环境中使用的是另外的客户端,它提供基于流量、资源利用率以及出错状态的加权负载均衡。
②. 客服端负载均衡——Netflix Ribbon
Ribbon,主要提供客户侧的软件负载均衡算法。Ribbon客户端组件提供一系列完善的配置选项,比如连接超时、重试、重试算法等。Ribbon内置可插拔、可定制的负载均衡组件。
③. 断路器——Netflix Hystrix
断路器可以防止一个应用程序多次试图执行一个操作,即很可能失败,允许它继续而不等待故障恢复或者浪费 CPU 周期,而它确定该故障是持久的。断路器模式也使应用程序能够检测故障是否已经解决。如果问题似乎已经得到纠正,应用程序可以尝试调用操作。
④. 服务网关——Netflix Zuul
类似nginx,反向代理的功能,不过netflix自己增加了一些配合其他组件的特性。
⑤. 分布式配置——Spring Cloud Config
这个还是静态的,得配合Spring Cloud Bus实现动态的配置更新。

java基础面试题(九)相关推荐

  1. 100道Java基础面试题收集整理(附答案)

    不积跬步无以至千里,这里会不断收集和更新Java基础相关的面试题,目前已收集100题. 1.什么是B/S架构?什么是C/S架构 B/S(Browser/Server),浏览器/服务器程序 C/S(Cl ...

  2. 判断一个java对象中的属性是否都未赋值_100道Java基础面试题(一)

    100道Java基础面试题(一)未来大家将步入职场,面试的时候面试官还会问大家一些Java相关的问题.小编整理出100道非常实用的面试题目,可以帮助双体的小伙伴应对面试,我们一起来看看都有哪些吧! 1 ...

  3. Java继承_30道最常问的Java基础面试题

    30道最常问的Java基础面试题 1. 面向对象和面向过程的区别面向过程优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机.嵌入式开发.Linux/Unix等一般采 ...

  4. Java 基础面试题,java基础面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  5. Java进阶篇(六)——Swing程序设计(上),java面试题,java基础笔试题,BAT

    写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. Sw ...

  6. Java基础知识面试题(2021最新版)

    转载自:https://thinkwon.blog.csdn.net/article/details/104390612 文章目录 Java概述 何为编程 什么是Java jdk1.5之后的三大版本 ...

  7. Java基础-面试题精华(2021最新)

    Java基础-面试题精华 提示:本人已经成功帮助20多位面试者斩获BAT大厂offer,现在把自己的笔记分享出来,提炼出高频java面试题目,都是干货,觉得有用的话,记得点赞收藏哦,后期会上sprin ...

  8. Java基础语法(九)——String类

    文章目录 Java基础语法(九)--String类 一.定义方式 二.内存 三.字符串比较相等 四.字符串常量池 (1) 直接赋值 (2)采用构造方法 (3)intern 的使用 五.理解字符串不可变 ...

  9. 人类高质量Java基础面试题大全,又是一篇三万字的总结!

    点击主页访问更多精彩文章:https://blog.csdn.net/weixin_45692705?spm=1001.2101.3001.5343 Java基础面试题目录 共勉 ! Java概述 1 ...

最新文章

  1. python 自动填充表单,如何在Django / Python中自动填充PDF表单?
  2. cocos2dx--cocos2dx3.1.1执行报无法解析的外部符号
  3. 人工智能已经迫在眉睫_创意计算机已经迫在眉睫
  4. 如何编写数据库可视化界面_编写用于数据可视化的替代文本
  5. ReactiveCocoa源码拆分解析(四)
  6. 性能调优必备利器之 JMH
  7. QCon思考之通过Quora和Spotify案例,直击数据处理背后的魅影
  8. Latex 合并pdf文档
  9. AppStore编年史 iOS游戏开发者的变迁路
  10. go任务调度2(linux的cron调用)
  11. 怎么彻底卸载趋势杀毒软件
  12. 中国智慧建造投资前景预测与十四五战略规划建议报告2022年版
  13. 粒子群matlab工具箱,Matlab粒子群算法工具箱使用方法及实例演示
  14. R语言ggplot2可视化(细节优化)
  15. sql查询语句中分组添加小计,GROUPING的使用
  16. 红豆薏米的祛湿效果到底好不好?
  17. 你知道哪些出身最奇特的程序员?
  18. 素数个数求解与素数的判定
  19. 内容算法解读:提高内容摘要与原文的一致性(Faithfulness)
  20. 进销存管理软件排行榜

热门文章

  1. 【计蒜客模拟赛系列】-计蒜客2021年8月普及组模拟赛
  2. 获取每个品类中销量最高的商品
  3. ios 百度地图指定区域_iOS 一步一步实现百度地图范围搜索
  4. 【CodeForces】893 - D Credit Card (贪心)
  5. 恒星物联 管网流量监测系统方案 管网流量监测
  6. 如何开始做自媒体?做自媒体的步骤总结
  7. QT(C++)游戏之坦克大战(一)
  8. 特征选择过滤器 - f_classif(计算提样本的ANOVA F值)
  9. 我的linux一万小时
  10. react 环境 全家桶