自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小志的博客

随笔笔记仅供参考

原创 java数据结构和算法——平均时间复杂度、最坏时间复杂度及空间复杂度介绍

一、平均时间复杂度指所有可能的输入实例均以等概率出现的情况下,该算法的运行时间。二、最坏时间复杂度最坏情况下的时间复杂度称最坏时间复杂度。一般讨论的时间复杂度均是最坏情况下的时间复杂度。这样做的原因是:最坏情况下的时间复杂度是算法在任何输入实例上运行时间的界限,这就保证了算法的运行时间不会比最坏情况更长。三、平均时间复杂度和最坏时间复杂度是否一致,和算法有关,如下图四、空间复杂度类似于时间复杂度的讨论,一个算法的空间复杂度(Space Complexity)定义为该算法所耗费的存储

2020-08-03 21:38:52 3

原创 java数据结构和算法——时间复杂度

目录一、时间复杂度介绍二、时间复杂度的计算方法三、常见的时间复杂度四、常见的时间复杂度对应的曲线图五、常数阶 O(1) 的介绍六、对数阶 O(log2n) 的介绍七、线性阶 O(n) 的介绍八、线性对数阶 O(nlogN) 的介绍九、平方阶 O(n²) 的介绍十、立方阶 O(n³) 、K次方阶 O(n^k) 的介绍一、时间复杂度介绍一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f(n)的极限值为不等于零

2020-08-03 20:54:53 5

原创 java数据结构和算法——时间频度介绍和特点

一、时间频度基本介绍时间频度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。二、时间频度特点1、举例说明-忽略常数项示例如下图结论1)、2n+20 和 2n 随着n 变大,执行曲线无限接近, 20可以忽略2)、3n+10 和 3n 随着n 变大,执行曲线无限接近, 10可以忽略2、举例说明-忽略低次项示例如下图结论1)、 2n^2+3n+10 和 2n^2 随

2020-08-02 22:51:24 15

原创 java数据结构和算法——排序算法的介绍及分类

一、排序算法的介绍排序也称排序算法 (Sort Algorithm),排序是将一 组数据,依指定的顺序进行排列 的过程。二、排序算法的分类:1、内部排序指将需要处理的所有数据都加载 到内部存储器中进行排序。2、外部排序数据量过大,无法全部加载到内 存中,需要借助外部存储进行排序。三、常见的排序算法分类四、算法的时间复杂度度量一个程序(算法)执行时间的两种方法事后统计的方法 这种方法可行, 但是有两个问题:一是要想对设计的算法的运行性能进行评测,需要实际运行该程序;二是

2020-08-02 22:17:34 7

原创 java数据结构和算法——八皇后问题分析与代码示例

一、八皇后问题介绍二、八皇后问题思路分析三、八皇后问题代码示例1、代码package com.rf.springboot01.dataStructure.recursion;/** * @description: 使用递归实现八皇后问题 * @author: xiaozhi * @create: 2020-08-02 21:13 */public class LabyrinthTest { int max =8;//定义一个max表示一共有多少个皇后 int[] a

2020-08-02 21:35:16 26

原创 java数据结构和算法——递归实现迷宫回溯问题的应用示例

一、迷宫回溯示例要求:定义一个8行7列的迷宫地图,得到小球从起始位置到结束位置的路径需求示意图如下二、使用递归回溯来给小球找路,按照 下->右->上->左 的策略(方法)的示例1、按照 下->右->上->左 的策略,小球行走的路径示意图如下:2、按照 下->右->上->左 的策略,示例代码package com.rf.springboot01.dataStructure.recursion;/** * @description:

2020-08-01 22:24:05 18

原创 java数据结构和算法——完整版的逆波兰计算器的应用示例

一、完整版的逆波兰计算器的支持支持+ - * / ( )支持多位数及小数兼容处理,过滤任何空白字符,包括空格、制表符、换页符二、完整版的逆波兰计算器代码示例1、代码如下:package com.rf.springboot01.dataStructure.stack.reversePolishNotation;import java.util.ArrayList;import java.util.Collections;import java.util.List;import jav

2020-07-30 22:14:53 30

原创 java数据结构和算法——递归(Recursion)的介绍

一、递归(Recursion)的概念递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。二、递归(Recursion)的调用机制1、递归的调用机制示例图解如下:2、递归的调用机制简单的示例代码如下:package com.rf.springboot01.dataStructure.recursion;/** * @description: 递归调用示例 * @author: xiaozhi * @create: 2020-07

2020-07-30 22:14:42 22

原创 java数据结构和算法——中缀转后缀表达式代码示例

一、中缀转后缀表达式思路示意图二、中缀转后缀表达式代码示例示例需求:中缀表达式:1+((2+3)×4)-5 转换成后缀表达式:1 2 3 + 4 × + 5 –1、代码package com.rf.springboot01.dataStructure.stack.reversePolishNotation;import java.util.ArrayList;import java.util.List;import java.util.Stack;/** * @descript

2020-07-29 22:21:53 31

原创 java数据结构和算法——后缀表达式(即逆波兰表达式)计算器(即求值)

一、逆波兰表达式求值思路分析定义一个逆波兰表达式,例如:(3+4)*5-6的逆波兰表达式为 3 4 + 5 * 6 -将一个逆波兰表达式, 依次将数据和运算符 放入到 ArrayList中完成对逆波兰表达式的运算步骤如下:1)、从左至右扫描,将3和4压入堆栈;2)、遇到+运算符,因此弹出4和3(4为栈顶元素,3为次顶元素),计算出3+4的值,得7,再将7入栈;3)、将5入栈;4)、接下来是×运算符,因此弹出5和7,计算出7×5=35,将35入栈;5)、将6入栈;6)、最后是-运

2020-07-29 09:29:06 13

原创 java数据结构和算法——前缀表达式(即波兰表达式)、中缀表达式及后缀表达式(即逆波兰表达式)介绍

一、前缀表达式(即波兰表达式)1、概念前缀表达式是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操作数写在后面。2、举例说明(3+4)×5-6 对应的前缀表达式就是 - × + 3 4 5 63、前缀表达式的计算机求值从右至左扫描表达式,遇到数字时,将数字压入堆栈,遇到运算符时,弹出栈顶的两个数,用运算符对它们做相应的计算(栈顶元素 和 次顶元素),并将结果入栈;重复上述过程直到表达式最左端,最后运算得出的值即为表达式的结果4、前缀表达式求值步骤示例(3+

2020-07-28 14:57:35 39

转载 windows server由于没有远程桌面授权服务器可以提供许可证,远程会话被中断。请跟服务器管理员联系(亲测有效)

1、问题如下:2、解决方式显示屏直连服务器登陆服务器后,修改注册表,先导出HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM目录下的GracePeriod文件夹。作为备份再删除 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM目录下的GracePeriod文件夹,如果无法删除,是因为没有权限,修改这个条目的所有者

2020-07-28 11:12:51 73

原创 Windows Server 开启远程连接并延长过期时间(亲测有效)

参考:https://www.cnblogs.com/wintertone/p/12370235.html一、服务器设置多用户同时远程桌面,需要先添加远程桌面授权服务1、服务器管理 - 添加角色和功能打开添加角色和功能向导窗口,选择基于角色或给予功能安装:2、添加远程桌面会话主机和远程桌面授权功能:3、以上配置完成后即可使用多于2用户同时登陆,但使用期限为120天,再次登陆会有如下提示:二、服务器开启远程连接后设置延长过期时间,需要添加远程桌面授权许可1、将服务器系统时间调至未来的一个时间(可

2020-07-28 11:12:14 57

原创 java数据结构和算法——栈(stack)实现综合计算器的应用示例

一、栈(stack)实现综合计算器的思路分析二、栈(stack)实现综合计算器的代码示例1、代码package com.rf.springboot01.dataStructure.stack.calculatorStack;/** * @description: 栈(stack)实现综合计算器 * @author: xiaozhi * @create: 2020-07-27 13:45 */public class Calculator { public static voi

2020-07-27 22:45:44 35

原创 java数据结构和算法——数组模拟 栈(stack) 的应用示例

一、数组模拟栈的实现思路示意图二、数组模拟栈的代码实现示例1、代码package com.rf.springboot01.dataStructure.stack.arrayStack;/** * @description: 数组模拟栈 * @author: xiaozhi * @create: 2020-07-26 22:13 */public class ArrayStackDemo { public static void main(String[] args) {

2020-07-26 22:39:40 31

原创 java数据结构和算法——栈(stack)的介绍

一、栈的介绍栈的英文为(stack)栈是一个先入后出(FILO-First In Last Out)的有序列表。栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称为栈底(Bottom)。根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除二、出栈(pop)和入栈(push)的示意图1、入栈(push)

2020-07-26 21:39:32 31

原创 java数据结构和算法——环形链表(Circle Linked List)Josephu(约瑟夫、约瑟夫环) 问题解决示例

一、Josephu(约瑟夫、约瑟夫环) 问题Josephu 问题为:设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。二、Josephu(约瑟夫、约瑟夫环) 问题示意图三、Josephu(约瑟夫、约瑟夫环) 问题解决思路四、Josephu(约瑟夫、约瑟夫环) 问题代码示例1、代码package com.rf.spr

2020-07-25 23:18:04 22

原创 java数据结构和算法——环形链表(Circle Linked List)的创建、遍历应用示例

一、环形链表(Circle Linked List)示意图二、构建环境链表思路图解三、环形链表(Circle Linked List)的创建、遍历的代码示例1、代码package com.rf.springboot01.dataStructure.circleLinkedList;/** * @description: 定义一个测试类 * @author: xiaozhi * @create: 2020-07-23 23:22 */public class CircleLinked

2020-07-25 21:52:34 35

原创 java数据结构和算法——双向链表(Double Linked List)的修改、删除、查询及按编号顺序添加节点到双向链表的应用示例

一、双向链表(Double Linked List)的修改、删除、查询及按编号顺序添加节点到双向链表的代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.doubleLinkedList2;/** * @description: 定义一个人员节点类,每一个PersonNode对象就是一个节点 * @author: xiaozhi * @create: 2020-07-22 21:22 *

2020-07-22 22:43:19 47

原创 java数据结构和算法——双向链表(Double Linked List)的修改、删除、查询及在双向链表尾部添加节点的应用示例

一、在双向链表的尾部添加节点数据的思路分析示意图二、删除双向链表节点数据的思路分析示意图三、双向链表(Double Linked List)的修改、删除、查询及在双向链表尾部添加节点的代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.doubleLinkedList;/** * @description: 定义一个人员节点类,每一个PersonNode对象就是一个节点 * @aut

2020-07-22 22:14:14 52

原创 java数据结构和算法——单链表(Linked List)合并两个单链表,合并之后的链表依然有序

一、单链表合并,合并之后的链表依然有序的代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.singleLinkedList2;/** * @description: 定义一个人员节点类,每一个PersonNode对象就是一个节点 * @author: xiaozhi * @create: 2020-07-15 16:44 */public class PersonNode {

2020-07-22 20:31:52 61

原创 java数据结构和算法——单链表(Linked List)单链表反转(反转后链表的结构是原始链表顺序的倒序)的应用示例

实现单链表反转的目录一、单链表反转的思路分析示意图二、单链表反转的实现步骤的分解图三、单链表反转的代码示例一、单链表反转的思路分析示意图二、单链表反转的实现步骤的分解图三、单链表反转的代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.singleLinkedList;/** * @description: 定义一个人员节点类,每一个PersonNode对象就是一个节点 * @au

2020-07-22 08:40:04 31

原创 java数据结构和算法——单链表(Linked List)逆序打印单链表(即从尾到头打印单链表,原始链表结构没有变化)的应用示例

一、逆序打印单链表的思路分析示意图:二、逆序打印单链表的代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.singleLinkedList;/** * @description: 定义一个人员节点类,每一个PersonNode对象就是一个节点 * @author: xiaozhi * @create: 2020-07-15 16:44 */public class PersonNo

2020-07-21 22:33:16 33

原创 java数据结构和算法——单链表(Linked List)查找单链表中的倒数第k个节点的应用示例

一、查找单链表中的倒数第k个节点的代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.singleLinkedList;/** * @description: 定义一个人员节点类,每一个PersonNode对象就是一个节点 * @author: xiaozhi * @create: 2020-07-15 16:44 */public class PersonNode { pu

2020-07-20 21:45:50 31

原创 在window服务中关闭了oracle监听和服务实例在重启监听和服务实例后,提示监听程序当前无法识别连接描述符中请求的服务

参考:https://blog.csdn.net/hfdgjjg/article/details/86693131目录一、报错如下二、解决方式三、报错原因一、报错如下1、在window服务中关闭oracle监听和服务实例如下图:2、再次重启oracle监听和服务实例,客户端连接oracle时报错:RACLE11g ORA-12514 TNS 监听程序当前无法识别连接描述符中请求的服务,如下图:二、解决方式1、首先查看本地TNSPING1)、查看本地的tns配置:ORCL = (DE

2020-07-20 15:21:57 102

原创 java数据结构和算法——单链表(Linked List)获取有效节点个数的应用示例

一、获取单链表有效节点个数的代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.singleLinkedList;/** * @description: 定义一个人员节点类,每一个PersonNode对象就是一个节点 * @author: xiaozhi * @create: 2020-07-15 16:44 */public class PersonNode { public

2020-07-16 23:00:10 50

原创 java数据结构和算法——单链表(Linked List)的修改、删除、查询及在指定位置添加节点的应用示例

一、单链表添加节点数据的方式添加节点数据时,直接添加到链表的尾部根据节点数据的编号排名,将节点数据添加到指定位置二、在链表的指定位置添加节点数据的思路分析示意图三、在链表的指定位置添加节点数据代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.singleLinkedList;/** * @description: 定义一个人员节点类,每一个PersonNode对象就是一个节点

2020-07-16 09:46:05 57

原创 java数据结构和算法——单链表(Linked List)的修改、删除、查询及在链表尾部添加节点的应用示例

目录一、单链表添加节点数据的方式二、在链表的尾部添加节点数据的思路分析示意图三、在链表的尾部添加节点数据代码示例一、单链表添加节点数据的方式添加节点数据时,直接添加到链表的尾部根据节点数据的编号排名,将节点数据添加到指定位置二、在链表的尾部添加节点数据的思路分析示意图三、在链表的尾部添加节点数据代码示例1、定义一个人员节点类,每一个PersonNode对象就是一个节点package com.rf.springboot01.dataStructure.singleLinkedList;/

2020-07-15 22:44:56 76

原创 java数据结构和算法——单链表(Linked List)介绍和内存布局

一、链表(Linked List)介绍1、链表(Linked List)在内存中的存储结构,如图2、链表(Linked List)特点链表是有序的列表链表是以节点的方式来存储,是链式存储每一个节点包含data域和next域,next域指向下一个节点。链表的各个节点不一定是连续存储链表分带头节点的链表和没有头节点的链表二、单链表(带头节点)介绍1、单链表(带头节点)逻辑结构,如图2、单链表(Linked List)特点以“结点的序列”表示线性表称作线性链表(单链表)单链表是链式

2020-07-15 15:44:46 48

原创 java数据结构和算法——数组模拟环形队列(queue)

摘要:由于数组模拟队列,数组无法复用,下面讲解了用数组模拟环形队列的方法,采用取模的方式,使得数组可以重复使用。一、数组模拟队列的图解数组模拟队列具体示例参考:https://wwwxz.blog.csdn.net/article/details/107348409二、使用数组模拟环形队列的图解对前面的数组模拟队列的优化,充分利用数组. 因此将数组看做是一个环形的。(通过取模的方 式来实现即可)三、数组模拟环形队列的思路分析在数组模拟队列的基础上做出如下调整:front 变量.

2020-07-15 14:17:10 48

原创 java数据结构和算法——数组模拟队列(queue)

一、队列介绍队列是一个有序列表,可以用数组或是链表来实现。遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出二、数组模拟队列介绍队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如上图图, 其中 maxSize 是该队列的最大容量。因为队列的输出、输入是分别从前后端来处理,因此需要两个变量 front及 rear分别记录队列前后端的下标,front 会随着数据输出而改变,而 rear则是随着数据输入而改变。front 指向队列头部,分析出front是

2020-07-14 23:31:47 52

原创 java数据结构和算法——稀疏数组(sparsearray)

目录一、稀疏数组基本介绍二、稀疏数组的处理方法三、稀疏数组举例说明四、示例需求五、示例代码五、输出结果一、稀疏数组基本介绍当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。二、稀疏数组的处理方法记录数组一共有几行几列,有多少个不同的值把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模三、稀疏数组举例说明四、示例需求下图中左侧的五子棋程序可以看做右侧的一个1111(11行11列)的二维数组,其中,黑色棋子用1表示,蓝色棋子用2表示

2020-07-14 16:19:22 47

原创 Exception in thread “main“ java.util.UnknownFormatConversionException: Conversion = ‘ ‘

1、解决该问题之前,先看下列表中lz整理的几个转换符转 换 符说 明%s字符串类型%c字符类型%b布尔类型%d整数类型(十进制)%n换行符2、使用printf函数输出报错的代码如下:3、报错如下:4、解决方式:lz是因为把正确的占位符号%d写成了d%,所以造成上图报错,只需要把占位符号写正确即可,如下:5、无报错的效果图如下:...

2020-07-14 15:00:08 45

原创 线性结构和非线性结构的理解

数据结构包括:线性结构和非线性结构一、线性结构线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系线性结构有两种不同的存储结构,即顺序存储结构(数组)和链式存储结构(链表)。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息线性结构常见的有:数组、队列、链表和栈二、非线性结构非线性结构包括:二维数组,多维数组,广义表,树结构,图结构...

2020-07-14 08:44:25 67

原创 脏读、不可重复读、幻读

参考:https://blog.csdn.net/baidu_35103892/article/details/82915692目录一、脏读二、不可重复读三、幻读四、总结一、脏读1、概念脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。2、示例:1)如下图:2)示例解释:例如上图示例中,事

2020-07-09 22:24:56 66

原创 java设计模式——组合模式

一、组合模式的定义与类型1、定义将对象组合成树形结构以表示“部分-整体”的层次结构组合模式使客户端对单个对象和组合对象保持一致的方式处理2、类型结构型二、组合模式的适用场景希望客户端可以忽略组合对象与单个对象的差异时处理一个树形结构时三、组合模式的优点清楚的定义分层次的复杂对象,表示对象的全部或部分层次让客户端忽略了层次的差异,方便对整个层次结构进行控制简化客户端代码符合开闭原则四、组合模式的缺点限制类型时会较为复杂使设计变得更加抽象五、组合模式相关的

2020-07-09 17:18:25 35

原创 创建线程的8种方式

目录一、继承Thread类的方式二、实现Runnable接口的方式三、匿名内部类的方式四、带返回值的方式五、定时器方式六、线程池的方式七、Spring实现多线程(Spring的异步任务)八、lambda表达式方式(jdk1.8提供的lambda表达式进行并行计算)一、继承Thread类的方式1、模拟示例代码如下:package com.rf.springboot01.concurrentAndThread.t2;/** * @description: 创建多线程的方式:1、继承Thread类的方式

2020-07-09 08:48:10 70

原创 创建spring异步任务,报错No qualifying bean of type ‘org.springframework.core.task.TaskExecutor‘ available

1、报错时的配置类和报错结果如下图:2、解决方式:在配置类中实现AsyncConfigurer接口,注册taskExecutor执行任务,即可,图和代码如下:package com.rf.springboot01.concurrentAndThread.t3;import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;import org.springframework.context.annotation.

2020-07-08 14:40:03 79

原创 如何查看java编译后的.class文件

一、查看java编译后的.class文件工具(Binary Viewer中文破解版)下载地址如下:链接:https://pan.baidu.com/s/14qV-vAfVVbv8vNlj3E4DxQ 提取码:vn0p二、Binary Viewer安装及汉化配置1、安装步骤解压后,傻瓜式安装,此安装步骤略过。。。。2、汉化配置1)打开安装后的Binary Viewer,如下图:2)、依次点击【Tools】–>【Select Language】—>【中文】,如下图菜单名称等选项显示的是

2020-07-02 17:00:02 136

原创 java设计模式——享元模式

一、享元模式的定义与类型1、定义提供了减少对象数量从而改善应用所需的对象结构的方式运用共享技术有效的支持大量细粒度的对象2、类型结构型二、享元模式的适用场景常常应用于系统底层的开发,以便解决系统的性能问题系统有大量相似对象、需要缓冲池的场景三、享元模式的优点减少对象的创建,降低内存中对象的数量,降低系统的内存,提高效率减少内存之外的其他资源占用四、享元模式的缺点关注内/外部状态、关注线程安全问题使系统、程序的逻辑复杂化五、享元模式的扩展1、内部状态在享

2020-07-01 17:18:08 63

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