归并排序
1.基本思想
归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。
归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。
冒泡排序是一种交换排序,核心是冒泡,把数组中最小的那个往上冒,冒的过程就是和他相邻的元素交换。
重复走访要排序的数列,通过两两比较相邻记录的排序码。排序过程中每次从后往前冒一个最小值,且每次能确定一个数在序列中的最终位置。若发生逆序,则交换;有俩种方式进行冒泡,一种是先把小的冒泡到前边去,另一种是把大的元素冒泡到后边。
日志的使用包括日志门面(抽象层)和日志实现。我们在使用的时候只需要调用日志门面即可。我们这里选用日志门面(抽象层):slf4j和日志实现:logback来进行讲解。在日志使用的时候不用考虑日志实现,只需要考虑日志的实现就可以了。
一个实际的工程可能在开发,测试,生产时的环境有所不同,这时可以使用profile来设置不同的配置文件。profile支持properties和yaml两种格式,不过yaml还特殊支持代码块的方式进行调用。
在properties格式下或者yaml格式
格式:application-(profies).properties/yml
eg:application-dev.properties/yml【在开发环境下】
eg:application-prod.properties/yml【生产环境下】
上一章介绍了使用@ConfigurationProperties和@value,他们从全局配置文件中获取值并映射到实体类中所对应的属性里。但是全部默认值都放在全局配置变量中将非常臃肿功能,所以本章将介绍三种不同的方法来加载外部指定的配置文件来放在环境中。
再次强调,上一章讲的是从全局配置文件中获取值并映射到实体类中所对应的属性,这一章讲的是加载指定的配置文件来放在环境,两者不是冲突的关系,即你可以不加载外部指定的配置文件来放在文件中,直接使用@ConfigurationProperties或者@value映射,也可以加载外部指定的配置文件再来使用映射功能。
配置文件有分yaml格式和properties和两种格式,可以作为配置文件值注入。映射值的方式有ConfigurationProperties和value两种。同时本章介绍要介绍idea在springboot上的自动单元测试。
有时候我们在网上看到优秀的关于springboot的开源代码,就想着下载下来跑一下尝试一下效果,但是发现项目各处都出现了报错的地方,本节想要尽可能提供一些解决方法。
相对对前面的spring boot创建hello world的应用的方法,spring boot还支持使用Spring Initializer快速创建Spring Boot项目,会比前者更快捷方便很多。
下面使用IDEA来使用Spring Initializer这个功能,当然官方推荐的STS也支持这个功能。