自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 IDEA导入之前的project发现没有run按钮,无法运行

背景用IDEA打开之前的项目,在main类中右击鼠标,发现没有run按钮,无法运行。而且发现项目结构和之前的不一样,如下图所示:解决方案**- 右击src找到 Mark Directory as 并右击找到 Sources Root,点击即可over,现在就发现项目已经正常了**注意在此之前,还需要设置好项目的JDK之类的,如下图File —> Project Structure ----> project...

2020-06-29 16:04:38 4289 2

原创 Could not get a resource from pool,Redis is running in protected mode because protected mod..

背景及异常信息使用 Jedis 客户端操作 Redis 的时候报如下异常:redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at.... at.............DENIED Redis is running in protected mode because protected mode is enabled, no bind addres

2020-06-05 20:52:50 349

原创 docker中启动Tomcat,指定了外部端口,访问的时候返回404

问题描述在 docker 中运行 Tomcat,并且通过 -p 指定外部端口 5555。但是在 火狐浏览器访问 localhost:5555,无法访问。出错原因一般我们在访问 localhost:8080 的时候,都是访问 webapps 下面的 ROOT 目录中的 index.jsp 文件,但是在这里webapps目录为空但是,webapps 的兄弟目录 webap.dist 中有 ROOT 目录,且 ROOT 目录下面还有 index.jsp 文件所以,访问 localhost:5

2020-05-31 12:06:52 604

原创 mysql中出现错误1138-Invalid use of NULL value

背景:使用mysql的可视化工具时,表中有个 id 字段,且某一行的 id 为(null),是因为在 insert 的时候就没有传入数据。后来试图修改 id 字段为 not null,出现如下图的错误:原因:表中某条数据的 id 为(null),又想修改 id 为 not null,两者冲突啦~解决:将(null)的 id 搞一个值,使其符合 not null,然后再修改 id 为 not null 即可。...

2020-05-22 17:30:57 14945 2

原创 mysql 8 忘记密码的解决方法,与mysql 5 不同!

之前mysql(8.0.16)忘记密码了,但是在网上找的方法依然无法解决,后来才发现是因为找到的方法是解决mysql 5 的问题的,有些命令并不适用于mysql 8 。现在写一下mysql 8 忘记密码的解决方法吧先停掉mysql的服务 命令: net stop mysql进入mysql的bin目录,使用命令mysqld --console --skip-grant-tables --shared-memory可以在没有密码的情况下进入mysql使用管理员身份另打开一个窗口,进

2020-05-21 13:19:16 191

原创 添加了lombok依赖,但是相关注解不生效

第一次使用 lombok,在pom.xml也添加了依赖,但是发现相关的注解(比如@Data、@AllArgsConstructor、@NoArgsConstructor、@ToString)等依然没法使用其实是因为没有安装lombok!!!IDEA安装lombok方法如下:打开settings找到plugins搜索lombok点击install然后重启IDEA附录:lombok的依赖 <dependency> <groupId>org.pr

2020-05-20 17:13:19 3107 1

原创 Java语言中StringBuffer扩容问题

public AbstractStringBuilder append(StringBuffer sb) { if (sb == null) return appendNull(); int len = sb.length(); ensureCapacityInternal(count + len); ...

2020-04-20 11:45:25 1476 2

原创 java语言HashMap中的getOrDefault()方法

首先看一下方法的源码 @Override public V getOrDefault(Object key, V defaultValue) { Node<K,V> e; return (e = getNode(hash(key), key)) == null ? defaultValue : e.value; }也就是说,如果...

2020-04-16 22:11:50 1010

原创 Java语言String、StringBuilder、StringBuffer的区别

StringString声明的是不可变的对象,先看一段代码: String a = "abc"; a = a+"de";第一行代码,首先会在内存分配一块空间存放"abc",并且有一个引用a指向这块内存空间。但是第二行代码,首先会将"abc"和"de"进行计算,存放到另一块内存空间,然后将引用a指向新的内存空间。所谓“不可变”,说的就是之前的内存空间存放的内容并没有发生变化,只是之前...

2020-04-10 20:10:24 149

原创 equals() 与 hashcode()的关系

hashcode()hashcode 是通过hash函数得到的,hashcode的值也就是在hash表中的位置。对于每个具体的对象来说,在内存中都是有物理地址的,先将物理地址转换成一个整数,再通过 hash 函数,就得到了hashcode使用hashcode,查找非常方便快捷equals()与hashcode()当对象的hashcode值相同的时候,会用equals()方法来判断...

2020-04-10 17:50:30 146

原创 java语言中 == 与 equals() 的区别

==对于基本类型和引用类型,基本类型:比较的是值是否相同引用类型:比较的是引用是否相同,也就是比较的是引用指向的地址值。equals()其实最本质上,equals() 与 == 是一样的,比较的是引用是否相等。只是String类将equals()重写了,才比较的是“内容”。 equals()源码如下:public boolean equals(Object obj) { ...

2020-04-10 16:40:56 173

原创 使用IDEA创建maven项目一直停留在Generating project in Batch mode的解决方案

<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>

2020-04-06 23:40:07 6446 3

原创 java语言实现汉诺塔问题(分治算法)

大致描述汉诺塔问题:有三根柱子A、B、C,在柱子A上有很多按顺序摆放的圆盘,且最大的圆盘放在最下面,最小的圆盘放在最上面。要求将这些圆盘移动到柱子C上,并且移动过程中可以借助柱子B,但是每一步都要求满足小圆盘在大圆盘上面。思路如果柱子A上只有一个圆盘,直接移动到柱子C即可如果柱子A上的圆盘数量为 n,且 n 大于等于 2 ,就将这些盘子看成两个盘。一个是最下面的圆盘,一个是上面的...

2020-03-27 21:25:09 337

原创 java语言实现图的广度优先遍历和深度优先遍历

图的遍历深度优先遍历广度优先遍历深度优先遍历介绍从初始访问顶点出发,初始访问顶点可能会有很多个邻接顶点,深度优先遍历的方法是先访问第一个未被访问过的邻接顶点,然后以这个邻接顶点作为初始顶点,再访问它的第一个未被访问过的邻接顶点,以此类推。如果访问到某一个顶点,发现它的邻接顶点都被访问过,就访问它上一个顶点的其他未被访问过的邻接顶点。如果这样回退到最初始的顶点,发现所有的...

2020-03-26 23:15:36 398

原创 java语言实现平衡二叉树的左旋转、右旋转和双旋转

平衡二叉树又叫平衡二叉搜索树,或者AVL树,有如下特点:可以是一棵空树或者它的左右子树的高度差的绝对值不大于1,并且左右子树也是平衡二叉树当二叉树不平衡的时候,可以通过“旋转”来使它平衡左旋转(适用于右子树高度 - 左子树高度 > 1)右旋转(适用于左子树高度 - 右子树高度 > 1)双旋转左旋转思路分析创建一个新的节点,且其值等于二叉树根节点的...

2020-03-25 22:46:44 661

原创 Java语言实现二叉排序树的创建和删除节点

二叉排序树二叉排序树中任意一个非叶子节点的值,大于其左子节点的值,小于其右子节点的值。如果有相等的值,可以放在左子节点或者右子节点。删除节点删除节点分为三种情况删除的节点是叶子结点删除的节点是非叶子节点,但是只有一棵子树,左子树或者右子树删除的节点是非叶子节点,有两棵子树1.删除叶子结点先找到待删除节点再找到它的父节点确定待删除节点是父节点的左子节点还是右子节点如...

2020-03-25 10:27:38 192

原创 java语言构建哈夫曼树

哈夫曼树给定 n 个权值,作为 n 个叶子结点,构造一个二叉树,如果该树的带权路径长度最小,就称该二叉树为最优二叉树,也称为哈夫曼树。构建步骤将权值序列从小到大排序,每个权值都看作是一个简单的二叉树。取出根节点权值最小的两棵二叉树,组成一棵新的二叉树,新二叉树的根节点的值为它左右子节点的值之和。注意:对某个节点,构建过程中,使其右子节点权值不小于左子节点权值以现有的二叉树的根节点的值,...

2020-03-24 18:59:23 1150

原创 java语言实现堆排序

1.堆堆,其实是一个完全二叉树,分为大顶堆和小顶堆。大顶堆:每个节点的值都大于或者等于其左右子节点的值小顶堆:每个节点的值都小于或者等于其左右子节点的值注意:堆中某个节点的左右子节点的值的大小关系没有要求,即左子节点的值可以大于、可以等于、也可以小于右子节点的值。升序采用大顶堆、降序采用小顶堆。2.堆排序首先将 n 个元素的待排序序列构建成一个大顶堆,这样待...

2020-03-23 13:14:32 181

原创 java语言实现线索二叉树

有如下一棵二叉树:我们发现,有一部分节点(3,4,5,6号节点)的左右指针域为空,比较浪费空间。**且 n 个节点的二叉树含有 n+1 个空指针域。**但是没有这些左右指针域又不行,如果能够充分利用他们,那再好不过了。我们可以将他们用来指向自己的某种遍历方式的前序或者后序节点,方便遍历。这就是线索化二叉树,附加的指针称为“线索”。以中序遍历为例,线索化二叉树如下图:如何实现呢?1....

2020-03-20 23:25:18 282

原创 java语言实现顺序存储二叉树的遍历

将二叉树顺序存储到数组中,有如下特点:(1)节点编号从 0 开始,因为数组下标也是从 0 开始(2)顺序存储二叉树通常指考虑完全二叉树(3)第 n 个节点的左子节点的编号(或者在数组中的下标)为 2n+1(4)第 n 个节点的右子节点的编号(或者在数组中的下标)为 2n+2(3)第 n 个节点的父节点的编号(或者在数组中的下标)为 (n-1)/2有一个二叉树,顺序存储到数组...

2020-03-19 22:08:44 238

原创 java语言实现二叉树的遍历和查找(前序、中序、后序)

首先,创建节点类,并在节点中定义前序、中序、后序的相关方法public class Node { private int id; private String name; private Node left; private Node right; public Node(int id, String name) { this.id ...

2020-03-19 20:51:52 352

原创 java语言中final关键字的具体用法

final修饰类final 修饰的类,表示该类不能被继承。而且,该类中的方法都会自动地定义为 final,但是属性(变量)不会自动地定义为 final。final修饰方法final 修饰的方法,表示该方法不能被重写。但是有一点,如果该方法被 final 修饰的同时,还被 private 修饰了,在子类中有一个同名的方法,这不是重写,而是在子类中重新定义的一个新方法。final修...

2020-03-17 23:23:00 314

原创 Math类中round(), ceil(), floor()方法

1.round()简单讲,四舍五入。但是要注意对于负数的情况Math.round(-5.6) = - 6Math.round(-5.4) = - 5Math.round(5.6) = 6Math.round(5.4) = 52.ceil()3.floor()

2020-03-17 11:35:23 528

原创 java语言实现基数排序

基数排序将所有的待排序的元素通过高位补0的方式统一长度,然后比较他们的个位进行排序,得到一个序列之后,再比较十位,以此类推,一直比较到最高位。就得到一个有序序列。具体过程如下图:代码如下public class RadixSort { public static void main(String[] args) { int[] array = {1...

2020-03-17 10:29:09 153

原创 java语言实现归并排序

分治策略分治策略就是将一个问题分解成很多小问题,递归求解,然后将每个小问题的解“组合”在一起,问题就被解决了。归并排序归并排序就是利用了分治策略。思想如下图所示:代码如下:public class MergeSort { public static void main(String[] args) { int[] array = {8,4,5,7,1}; ...

2020-03-16 22:10:21 148

原创 java语言实现快速排序

快速排序快速排序是对冒泡排序的一种改进。首先,找出一个基准值,然后将元素中比这个基准值小的放在基准值左边,比基准值大的元素放在基准值右边。这样一趟排序下来,基准值左边的元素都比基准值小,基准值右边的元素都比基准值大。然后在用同样的方法,分别对左边元素和右边元素递归地进行排序,最终使整个序列有序。这里,我选中间元素为基准值,我将从序列两端进行遍历,从左边遇到一个比基准值大的元素便停下...

2020-03-16 19:27:12 186

原创 java语言中switch(x)语句括号中的表达式 x 的类型

今天复习的时候,发现了一个一直忽略的问题,就是java语言中switch(x)语句括号中的表达式 x 的类型可以是哪些呢?现在就来详细记录一下:JDK 1.5以前:x 只能是byte, short, char, intJDK 1.5之后:x 的类型也可以是枚举类型啦!JDK 1.7之后:x 的类型又多了一个String类型~其实,x 准确的说,数值型的只可以是 int 类型,但是 by...

2020-03-15 23:07:08 3943

原创 java语言实现希尔排序

为什么提出希尔排序之前讲到过插入排序,我们的算法是从当前元素,向前移动,比较元素的大小的。如果当前元素是1,而有序列表中的元素是[2,3,4,5,6],那么需要比较和移动的次数就有点多,对效率有影响。而希尔排序是也是插入排序的一种,只不过是插入排序改进之后的更高效的版本。希尔排序的思想希尔排序是将元素按下标的一定增量进行分组,每一组元素使用插入排序;所有的组都排序完成之后,再把增量...

2020-03-15 09:56:17 128

原创 java语言实现插入排序

插入排序的基本思想把含有n个待排序的元素看成是由一个有序表和无序表;在初始状态下,有序表中只有一个元素,即数组的第一个元素,无序表中有剩下的 n-1 个元素;排序过程中,把无序表的第一个元素按某个顺序插入到有序表的合适位置中,使它们分别成为新的有序表和无序表;再继续插入排序,直到完全有序。代码实现...

2020-03-13 22:45:49 191

原创 java语言实现选择排序

选择排序的思路给定一个数组a,第 1 趟从 a[0]~a[n-1] 中选出最小的元素与 a[0] 交换;第 2 趟从 a[1]~a[n-1] 中选出最小的元素与 a[1] 交换;第 i 趟从 a[i-1]~a[n-1] 中选出最小的元素与 a[i-1] 交换;第 n-1 趟从 a[n-2]~a[n-1] 中选出最小的元素与 a[n-2] 交换;总共经历 n-1 趟选择,就能够完成选...

2020-03-12 22:45:47 176 1

原创 java语言实现冒泡排序

冒泡排序的思想通过对待排序的序列从前往后,依次比较相邻元素的值。如果发现逆序,就交换两个元素的值,使值较大的元素从前向后移动。冒泡排序的规则1.一共会进行(数组大小 减 1)趟排序 2.每一趟排序的次数会减少。因为每一趟都会确定一个元素的最终位置,之后就只用比较其他元素即可。3.(优化)如果我们发现在某一趟排序中没有发生一次交换,冒泡排序就可以提前结束。代码如下p...

2020-03-11 22:54:22 237 1

原创 java语言实现八皇后问题(回溯加递归)

八皇后问题:在8X8的国际象棋棋盘上摆放八个皇后,使她们不能互相攻击,也就是任意两个皇后不能位于同一行、同一列、同一条斜线上。求出有多少种摆法?...

2020-03-05 23:03:39 301 1

原创 递归的调用规则

递归调用在内存中的步骤:首先看一段代码:public class Test { public static void main(String[] args) { test(4); } public static void test(int n){ if (n>2){ test(n-1); ...

2020-03-04 22:43:06 532 1

原创 java语言中缀表达式转后缀表达式

仅用于 + - * / ( ) 的中缀表达式思路:因为在输入表达式的时候,表达式是字符串。为例遍历字符串方便,可以考虑将其转化成为ArrayList类型的。由于表达式中可能会出现多位数的情况(比如20*3,遍历的时候先遍历2再遍历0,但是20才是一个数),所以定义一个变量numString用来拼接数字。所以代码如下:public static List<String> infix...

2020-03-04 11:22:21 394 2

原创 java语言使用链表实现栈(入栈出栈)

刚开始学习栈的时候,使用数组来实现的。但是,用链表也可以实现,所以就试一下。栈的特性就是 后进先出,如果用链表来实现的话,将新入栈的元素作为链表的最后一个元素,在出栈的时候就不是很好操作。那这样吧,栈顶对链头,栈底对链尾。这样就好操作了。所以在入栈的时候,将新入栈元素的next指向原来的栈顶元素就可以了。先创建链表节点类吧public class Node<T> { ...

2020-03-02 16:42:51 1669

原创 java语言用循环单链表实现约瑟夫问题(丢手绢问题)

Josephu 问题:假设有 n 个小孩围坐在一起(编号为 1, 2, …, n)。约定从编号为 k (1<=k<=n)的小孩从1开始报数,报数为 m 的那个小孩出列。他的下一位又从1开始报数,报数为 m 的那个小孩出列。以此类推,直到所有的小孩都出列。这样就会产生一个出列编号。这里,我们可以使用单向循环链表 来解决这个问题。将这个 n 个小孩构成一个有 n 个节点单向循环链表,然...

2020-03-01 22:45:48 518 2

原创 SSM框架整合

SSM框架整合后端开发分为3层,其中SpringMVC框架对应的是表现层、MyBatis框架对应的是持久层,Spring框架对应的是表现层、业务层和持久层。从这一点来看,SSM的整合,其实是Spring整合SpringMVC以及MyBatis。我们需要先编写配置文件或者以注解的方式来使三个框架能够单独使用,然后再来整合。先来说说搭建环境吧。1.数据库。创建数据库ssm,创建表account...

2020-03-01 13:29:51 315 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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