【基础】JAVA学习简单总结(2)

1、Spring could和Spring boot

答:

Spring Could:

Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。

我所理解的Spring Cloud就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等操作,而Spring Cloud为我们提供了一套简易的编程模型,使我们能在Spring Boot的基础上轻松地实现微服务项目的构建。

Spring Boot:

Spring Boot的设计是为了让你尽可能快的跑起来Spring 应用程序并且尽可能减少你的配置文件。目的是用来简化新Spring 应用的初始搭建以及开发过程。

Spring Boot总结一下以下几点:

(1)为所有 Spring 开发提供一个更快更广泛的入门体验。

(2)零配置。无冗余代码生成和XML 强制配置,遵循“约定大于配置” 。

(3)集成了大量常用的第三方库的配置, Spring Boot 应用为这些第三方库提供了几乎可以零配置的开箱即用的能力。

(4)提供一系列大型项目常用的非功能性特征,如嵌入式服务器、安全性、度量、运行状况检查、外部化配置等。

(5)Spring Boot 不是Spring 的替代者,Spring 框架是通过 IOC 机制来管理 Bean 的。Spring Boot 依赖 Spring 框架来管理对象的依赖。Spring Boot 并不是Spring 的精简版本,而是为使用 Spring 做好各种产品级准备。

2、Spring

答:Spring是一个开源框架,Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架。

https://blog.csdn.net/qq_22583741/article/details/79589910

https://blog.csdn.net/weixin_44207403/article/details/106736102?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522162083323016780261954592%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=162083323016780261954592&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-106736102.pc_search_result_before_js&utm_term=Spring

3、Spring的注解

答:https://www.cnblogs.com/xiaoxi/p/5935009.html

4、Spring的IOC

答:IOC控制反转,把创建对象的权利交给框架来,用于削减程序的耦合,即降低程序中的依赖关系。

https://www.cnblogs.com/xdp-gacl/p/4249939.html

5、Spring的AOP

答:面向切面编程。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

https://blog.csdn.net/q982151756/article/details/80513340

6、Mybatis

答:MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。

https://blog.csdn.net/lj1314ailj/article/details/79712305?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160443994819215646552585%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160443994819215646552585&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_click~default-3-79712305.first_rank_ecpm_v3_pc_rank_v2&utm_term=mybatis&spm=1018.2118.3001.4449

7、线程的建立

答:使用Thread类或者使用Runnable接口

8、线程死锁

答:产生死锁必须同时满足以下四个条件,只要其中任一条件不成立,死锁就不会发生。

(1)互斥条件:进程要求对所分配的资源(如打印机)进行排他性控制,即在一段时间内某资源仅为一个进程所占有。此时若有其他进程请求该资源,则请求进程只能等待。

(2)不剥夺条件:进程所获得的资源在未使用完毕之前,不能被其他进程强行夺走,即只能由获得该资源的进程自己来释放(只能是主动释放)。

(3)请求和保持条件:进程已经保持了至少一个资源,但又提出了新的资源请求,而该资源已被其他进程占有,此时请求进程被阻塞,但对自己已获得的资源保持不放。

(4)循环等待条件:存在一种进程资源的循环等待链,链中每一个进程已获得的资源同时被链中下一个进程所请求。

9、如何避免线程死锁

答:(1)加锁顺序(线程按照一定的顺序加锁)

(2)加锁时限(线程尝试获取锁的时候加上一定的时限,超过时限则放弃对该锁的请求,并释放自己占有的锁)

(3)死锁检测

10、String、StringBuffer和StringBuilder的区别

答:(1)运行速度:StringBuilder > StringBuffer > String。String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。

(2)在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的。

(3)String:适用于少量的字符串操作的情况。StringBuilder:适用于单线程下在字符缓冲区进行大量操作的情况。StringBuffer:适用多线程下在字符缓冲区进行大量操作的情况。

https://www.cnblogs.com/su-feng/p/6659064.html

13、=和==和===的区别
答:Java中=是赋值运算,而==判断值是否相等,===是判断的是值及类型是否完全相等,而===只在JavaScript中有。

https://blog.csdn.net/qq_42244874/article/details/80786949

14、String A = “hello”和String B = new String(“hello”)是否一样

答:不一样

String A="hello" 是声明一个String类型的 变量,变量的值是hello

String B = new String("hello") 是声明一个String类型的对象,对象的内容是hello

15、索引类型有哪些

答:单例索引,唯一索引,主键索引,组合索引,全文索引

https://www.cnblogs.com/little-orangeaaa/p/9707850.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值