自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ThinkWon的博客

敏于观察,勤于思考,善于综合,勇于创新。

原创 一分钟了解约定优于配置

文章目录什么是约定优于配置Maven与Spring Boot项目的约定Maven项目的约定Spring Boot项目的约定约定优于配置是新的概念吗 什么是约定优于配置 约定优于配置(convention over configuration),也称作按约定编程,是一种软件设计范式,旨在减少软件开发...

2019-09-29 17:36:02 3465 3

原创 Java异常面试题

文章目录1. Error 和 Exception 区别是什么?2. 运行时异常和一般异常区别是什么?3.NoClassDefFoundError 和 ClassNotFoundException 区别?4. JVM 是如何处理异常的?5. throw 和 throws 的区别是什么?6. 常见的 ...

2019-09-29 11:56:29 5169 5

原创 如何选择异常类型

1. 如何选择异常 从个人开发经验来看,如果在一个应用中,需要开发一个方法(如某个功能的service方法),这个方法如果中间可能出现异常,那么你需要考虑这个异常出现之后是否调用者可以处理,并且你是否希望调用者进行处理。 如果调用者可以处理,并且你也希望调用者进行处理,那么就要抛出受检异常,提醒调...

2019-09-29 11:49:49 1327 3

原创 Java异常处理流程

在Java应用中,异常的处理机制分为抛出异常和捕获异常。 文章目录1. 抛出异常2. 捕获异常3. 异常的抛出与捕获3.1 直接抛出异常3.2 封装异常再抛出3.3 捕获异常3.4 自定义异常3.5 try-catch-finally3.6 try-with-resource 1. 抛出异常 当一...

2019-09-29 10:57:49 3671 7

原创 Java异常架构与异常关键字

文章目录1. Throwable2. Error(错误)3. Exception(异常)3.1 运行时异常3.2 编译时异常4. 受检异常与非受检异常4.1 受检异常4.2 非受检异常 1. Throwable Throwable 是 Java 语言中所有错误与异常的超类。 Th...

2019-09-29 10:50:07 4379 4

原创 Java数据类型

文章目录定义分类计算机存储单元Java基本数据类型图数据类型转换 定义 Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。 分类 基本数据类型 数值型 整数类型(byte,short,int,long) 浮点类型(float,doub...

2019-09-29 00:14:25 5048 10

原创 Java常量

定义 常量定义:在程序执行的过程中,其值不可以发生改变的量。常量不同于常量值,它可以在程序中用符号来代替常量值使用,因此在使用前必须先定义。 常量值定义:常量和常量值是不同的概念,常量值又称为字面常量,它是通过数据直接表示的。 关系:常量值是常量的具体和直观的表现形式,常量是形式化的表现。通常在...

2019-09-29 00:09:54 3968 5

原创 Java变量

文章目录定义分类按被声明的位置划分成员变量局部变量成员变量和局部变量的区别使用原则按所属的数据类型划分基本数据类型变量引用数据类型变量定义格式注意事项 定义 在程序执行的过程中,在某个范围内其值可以发生改变的量。 从本质上讲,变量其实是内存中的一小块区域 分类 按被声明的位置划分 成员变量 方...

2019-09-29 00:07:56 4425 4

原创 Java运算符

文章目录定义分类算术运算符比较运算符(关系运算符)赋值运算符逻辑运算符(符号的两端都是boolean类型)位运算符(两端都是数值型的数据)三元运算符(三目运算符)运算符的优先级 定义 运算符指明对操作数的运算方式。 分类 算术运算符 + - + - * / % ++ -- + 注意事项 1...

2019-09-28 23:59:31 4161 6

原创 Java表达式

定义 用运算符把常量或者变量连接起来符号java语法的式子就可以称为表达式。 类型和值 表达式值的数据类型即为表达式的类型。 对表达式中操作数进行运算得到的结果是表达式的值。 运算顺序 应按照运算符的优先级从高到低的顺序进行; 优先级相同的运算符按照事先约定的结合方向进行; 举例 a...

2019-09-28 23:44:00 4775 6

原创 Java流程控制语句

定义 流程是指程序运行时,各语句的执行顺序。流程控制语句就是用来控制程序中各语句执行的顺序。 分类 顺序结构 Java流程控制语句-顺序结构 分支结构(选择结构) Java流程控制语句-分支结构(选择结构) 循环结构 Java流程控制语句-循环结构 ...

2019-09-28 23:05:39 4948 3

原创 Java流程控制语句-循环结构

定义 循环语句就是在满足一定条件的情况下反复执行某一个操作。包括while循环语句、do···while循环语句和for循环语句。 分类 for循环语句 执行流程 执行流程图 执行流程说明 A:执行初始化语句 B:执行判断条件语句,看其结果是true还是false 如果是false,循环结束。 ...

2019-09-28 23:02:38 4606 2

原创 Java流程控制语句-分支结构(选择结构)

文章目录定义分类if分支结构第一种格式格式执行流程举例第二种格式格式执行流程举例第三种格式格式执行流程举例注意事项switch分支结构执行流程举例注意事项 定义 条件语句可根据不同的条件执行不同的语句。包括if条件语句与switch多分支语句。 分类 if分支结构 第一种格式 格式 if(条件表达...

2019-09-28 22:54:25 5255 4

原创 Java流程控制语句-顺序结构

定义 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的 举例 /* * 顺序结构:从上往下,依次执行 */ public class OrderDemo { public static void main(String...

2019-09-28 22:48:58 4946 2

原创 Java进制

定义 进制也就是进位计数制,是人为定义的带进位的计数方法。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。 常用进制类型 二进制 计算机底层都是使用二进制进行存储以及运算 0b****;(以0b或者0B开始,*表示0或1)比如:010101 原码...

2019-09-28 22:36:38 4807 5

原创 Java转义字符

定义 转义字符是一种特殊的字符常量。转义字符以反斜线""开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。 常见转义字符表 Java中需要转义的字符 在Java中,不管是String.split(),还是正则表达式,有一些特殊字符...

2019-09-28 22:33:54 5111 2

原创 Java分隔符

定义 空格、逗号、分号以及行结束符都被称为分隔符,规定任意两个相邻标识符、数字、保留字或语句之间必须至少有一个分隔符,以便程序编译时能够识别。 分类 ; 分号 用来终止一个语句 {} 花括号、大括号 用来包括自动初始化的数组的值,也用来定义程序块、类、方法以及局部范围 [] 方括号、中括号...

2019-09-28 22:31:50 5811 3

原创 Java访问修饰符

定义 Java中,可以使用访问修饰符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。 分类 private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类) default (即缺省,什么也不写,不使用任何关键字): 在同一包内可见,不使用...

2019-09-28 22:27:52 5446 2

原创 Java注释

定义 用于解释说明程序的文字 分类 单行注释 格式: // 注释文字 多行注释 格式: /* 注释文字 */ 文档注释 格式:/** 注释文字 */ 作用 在程序中,尤其是复杂的程序中,适当地加入注释可以增加程序的可读性,有利于程序的修改、调试和交流。注释的内容在程序编译的时候会被忽...

2019-09-28 22:24:38 5072 3

原创 Java关键字(Java 8版本)

定义 被Java语言赋予了特殊含义,用作专门用途的字符串(单词),这些关键字不能用于常量、变量、和任何标识符的名称。 Java关键字(Java 8版本) Java关键字(Java 8 以后版本) 注意事项 true,false和,null看起来像关键字,但它们实际上是文字; 您不能在程序...

2019-09-28 22:11:38 6929 4

原创 Java标识符

文章目录定义组成规则命名原则:见名知意注意事项 定义 给包,类,方法,变量起名字的符号。 组成规则 标识符由字母、数字、下划线、美元符号组成。 命名原则:见名知意 包名:全部小写,多级包用.隔开。 举例:com.jourwon 类、接口:一个单词首字母大写,多个单词每个单词的首字母大写。...

2019-09-28 20:44:38 8650 5

原创 Log4j2配置文件详解

文章目录ConfigurationPropertiesAppendersFiltersPatternLayoutPolicy & StrategyLoggers Configuration 根节点,有status和monitorInterval等多个属性 status的值有 “trace”...

2019-09-28 18:30:11 3383 2

原创 Log4j2的Loggers配置详解

Loggers节点,常见的有两种:Root和Logger。 Root节点用来指定项目的根日志,如果没有单独指定Logger,那么就会默认使用该Root日志输出 Root 每个配置都必须有一个根记录器Root。如果未配置,则将使用默认根LoggerConfig,其级别为ERROR且附加了Consol...

2019-09-28 18:21:55 4356 2

原创 Log4j2的Policy触发策略与Strategy滚动策略配置详解

文章目录Policy触发策略SizeBasedTriggeringPolicyCronTriggeringPolicyTimeBasedTriggeringPolicyStrategy滚动策略 Policy是用来控制日志文件何时(When)进行滚动的;Strategy是用来控制日志文件如何(How...

2019-09-28 18:13:24 4223 4

原创 Log4j2的Filters配置详解

Filters决定日志事件能否被输出。过滤条件有三个值:ACCEPT(接受),DENY(拒绝),NEUTRAL(中立)。 ThresholdFilter 输出warn级别一下的日志 <Filters> <!--如果是error级别拒绝,设置 onMismatch=&quo...

2019-09-28 17:52:19 3094 3

原创 Log4j2的Appenders配置详解

Appenders是输出源,用于定义日志输出的地方。 log4j2支持的输出源有很多,有控制台ConsoleAppender、文件FileAppender、AsyncAppender、RandomAccessFileAppender、RollingFileAppender、RollingRando...

2019-09-28 17:47:47 3583 4

原创 Log4j2同步日志,混合日志和异步日志配置详解

Log4j 2中记录日志的方式有同步日志和异步日志两种方式,其中异步日志又可分为使用AsyncAppender和使用AsyncLogger两种方式。 文章目录同步日志混合同步和异步日志异步日志(性能最好,推荐使用) 同步日志 所谓同步日志,即当输出日志时,必须等待日志输出语句执行完毕后,才能执行后...

2019-09-28 17:20:43 3925 2

原创 常用日志框架Log4j,Logback,Log4j2性能比较与日志门面SLF4J简介

文章目录常用日志框架Log4jLogbackLog4j 2Log4j1/Logback/Log4j2性能比较日志门面SLF4J 常用日志框架 Log4j Log4j是Apache的一个Java的日志库,通过使用Log4j,我们可以控制日志信息输送的目的地(控制台、文件、数据库等);我们也可以控制每...

2019-09-28 16:17:20 4420 2

原创 日志作用

不管是在开发环境还是线上生产环境的程序,我们都会进行日志的记录,因为日志非常重要,不但可以进行调试,还有错位定位和数据分析的作用。 调试 在Java项目调试时,查看栈信息可以方便地知道当前程序的运行状态,输出的日志便于记录程序在之前的运行结果。如果你大量使用System.out或者System.e...

2019-09-28 15:49:47 3564 4

原创 Java基础语法

标识符 定义 给包,类,方法,变量起名字的符号。 组成规则 标识符由字母、数字、下划线、美元符号组成。 命名原则:见名知意 包名:全部小写,多级包用.隔开。 举例:com.jourwon 类、接口:一个单词首字母大写,多个单词每个单词的首字母大写。 举例:Student,Car,Hell...

2019-09-28 00:05:08 4576 3

原创 基数排序(Radix Sort)

基数排序也是非比较的排序算法,对每一位进行排序,从最低位开始排序,复杂度为O(kn),为数组长度,k为数组中的数的最大的位数; 基数排序是按照低位先排序,然后收集;再按照高位排序,然后再收集;依次类推,直到最高位。有时候有些属性是有优先级顺序的,先按低优先级排序,再按高优先级排序。最后的次序就是高...

2019-09-27 17:10:47 2807 3

原创 桶排序(Bucket Sort)

桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。 桶排序 (Bucket sort)的工作的原理:假设输入数据服从均匀分布,将数据分到有限数量的桶里,每个桶再分别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排 算法描述 人为设置一个Bu...

2019-09-27 16:56:01 2708 2

原创 计数排序(Counting Sort)

计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。 作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。 计数排序(Counting sort)是一种稳定的排序算法。计数排序使用一个额外的数组C,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据...

2019-09-27 16:53:10 3180 2

原创 堆排序(Heap Sort)

堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。 算法描述 将初始待排序关键字序列(R1,R2….Rn)构建成大顶堆,此堆为初始的无序区; 将堆顶元素R[1]与最后一个...

2019-09-27 16:50:25 2853 2

原创 快速排序(Quick Sort)

快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。 算法描述 快速排序使用分治法来把一个串(list)分为两个子串(sub-lists)。具体算法描述如下: 从数列中挑出一个元素,称...

2019-09-27 16:45:34 3595 2

原创 归并排序(Merge Sort)

和选择排序一样,归并排序的性能不受输入数据的影响,但表现比选择排序好的多,因为始终都是O(n log n)的时间复杂度。代价是需要额外的内存空间。 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。归并排序是一种稳定的排...

2019-09-27 15:38:54 3165 2

原创 希尔排序(Shell Sort)

希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。它与插入排序的不同之处在于,它会优先比较距离较远的元素。希尔排序又叫缩小增量排序。 希...

2019-09-27 15:30:46 3238 3

原创 插入排序(Insertion Sort)

插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反复把已排...

2019-09-27 15:26:28 3400 2

原创 选择排序(Selection Sort)

表现最稳定的排序算法之一,因为无论什么数据进去都是O(n2)的时间复杂度,所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。理论上讲,选择排序可能也是平时排序一般人想到的最多的排序方法了吧。 选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原...

2019-09-27 14:46:00 4102 2

原创 冒泡排序(Bubble Sort)

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 算法描述 比较相邻的元素。如果第一个比第...

2019-09-27 14:41:37 4839 5

提示
确定要删除当前文章?
取消 删除