自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

三千炼心的博客

心如海,便是无敌

  • 博客(122)
  • 资源 (1)
  • 收藏
  • 关注

原创 list集合删除元素遇到的坑

在使用list删除元素时,如果出现重复元素的话,直接使用for循环会导致删除不干净的问题,所以可以使用迭代器Iterator进行删除。package com.java.base.list;import java.util.ArrayList;import java.util.Iterator;import java.util.List;public class RemoveList ...

2020-05-08 16:15:40 633

原创 ReentrantLock公平锁与非公平锁的区别及源码解析

一、获取锁对比FairLock:判断当前锁状态state是否为0.为0表示锁空闲,判断当前线程之前是否已经有线程在等待获取锁了,没有才能获取;所有线程都在排队,有序的等待获取锁,不会出现饥饿现象;因为所有线程都在等待获取锁,因此都产生阻塞,唤醒阻塞消耗资源。 final void lock() { acquire(1); } public fina...

2020-03-20 15:20:07 550

原创 Eclipse如何查看jdk无法显示的源码

当我们需要阅读学习jdk源码的时候,发现有些类点进去的时候显示Source not found,如下图我想阅读JUC中相关java并发包的代码时。我想看这个Unsafe类到底是个什么东西时,点击一看,崩溃了,源码在哪里?这时可以下载Openjdk看源码:http://hg.openjdk.java.net/下载后解压可以找到这个Unsafe的类(找这个类的图仅供参考)然后可以点击Ch...

2020-03-12 16:21:48 534

原创 log4j升级log4j2遇到的问题,及解决办法

一、导入包 <!-- log --><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>${slf4j.version}</version>&...

2019-12-27 18:27:43 5756 1

原创 平衡二叉树(AVL树)详细解析-通俗易懂

平衡二叉树定义:二叉排序树的平衡因子绝对值小于等于1,即平衡因子为-1、0、1,那么是平衡二叉树(平衡因子:根结点的左子树深度减右子树深度的差)。最小不平衡子树:子树的根结点距离插入结点距离最近,且平衡因子绝对值大于1的树为最小不平衡子树。平衡二叉树:当插入结点后出现最小不平衡子树,那么就要对最小不平衡子树重新构造,通过顺时针(平衡因子皆为正)或逆时针(平衡因子皆为负)旋转最小不平衡子树的根结...

2019-12-20 22:05:15 2810

原创 变态青蛙跳台阶

青蛙跳台阶,跳的阶数不限,跳到第n阶时有几种跳法package com.art.arithmetic.count;public class FrogJumpOrderNoLimit { public static void main(String[] args) { FrogJumpOrderNoLimit frogJumpOrder = new FrogJumpOrderNoLim...

2019-12-20 21:55:58 115 1

原创 斐波那契数列算法,青蛙跳台阶

青蛙跳台阶,一次可跳一阶或两阶,跳到第n阶时有几种跳法package com.art.arithmetic.count;public class FrogJumpOrder { public static void main(String[] args) { FrogJumpOrder frogJumpOrder = new FrogJumpOrder(); System.out...

2019-12-20 21:53:49 166

原创 获取1~n的阶乘之和

获取1~n的阶乘之和11*21*2*31*2*3*41的阶乘和 = 1的阶乘12的阶乘和 = 1的阶乘和 + 2的阶乘3的阶乘和 = 2的阶乘和 + 3的阶乘4的阶乘和 = 3的阶乘和 + 4的阶乘5的阶乘和 = 4的阶乘和 + 5的阶乘n的阶乘和 = (n-1)的阶乘和 + n的阶乘package com.art.arithmetic.count;public cla...

2019-12-20 21:52:39 772

原创 递归获取1至n相加的和

求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字package com.art.arithmetic.count;public class OneToNSum { public static void main(String[] args) { OneToNSum otnFs = new OneToNSum(); Sys...

2019-12-20 21:50:02 927

原创 KMP算法思想及改进

如何判断某字符串包含某字符串?首先,我们需要了解一下朴素匹配算法,这个算法要求主串循环遍历,在遍历主串的时候,最差的情况是每匹配一个主串的字符,子串都需要匹配s次,因此假设主串为M(m),子串为S(s),那么时间复杂度O(n) = (m-s)*s + s,由此我们可以看到这个时间复杂度并不是很理想。例如:下表中,主串第1个字符匹配后与之后的3个字符,一共匹配4次,然后第2个字符再进行类似的匹配...

2019-12-19 10:21:18 134

原创 完全二叉树的理解

满二叉树:在一颗二叉树中,如果每个结点都存在左子树和右子树,并且所有叶节点都在同一层上,这样的树为满二叉树。完全二叉树:相同深度的满二叉树的所有结点(不包含叶子)在该树上都有相应的节点(包含叶子)与之对应且所有左子树先存在,才会存在右子树,然后才会存在下层子树的情况,这样的树为完全二叉树 。可根据下图区分:...

2019-12-19 10:08:17 8536

原创 最短路径-Floyd(弗洛伊德)算法理解

主要思路:和Dijkstra算法所得的最终结果是一致的,但是不同的是,在对比之前节点的时候,如将最小的权值和代替所有到达该顶点的连通线的权值,如V0V2 = 10, V0V1 + V1V2 = 5,则设置V0V2 = 5,后续依次如此推算,得到最终结果。D[V][N] = min{D[V][N],D[V][0] + D[0][N]}...

2019-12-19 10:03:57 273

原创 最短路径-Dijkstra(迪杰斯特拉)算法理解

主要思路:要求网图(非网图没有权值)中两点A(start)、N(end)的最短距离,那么我们可以先找出,所有与N有边连接的顶点,那么,我们再找出这些A到这些顶点的最短距离,依次类推,寻本溯源到A点,便可以找出A点到N点中,所有路经的顶点的最短距离。这些顶点与N连通的边上的权值加上A点到这些顶点的最短路径,就是A到N的最路径。核心就是A点开始一直找相关顶点的最短路径,直到N点。...

2019-12-19 10:02:21 292

原创 最小生成树-Kruskal(克鲁斯卡尔)算法解析

与prim算法一样,Kruskal算法也是为了图的最小生成树而产生的算法,改算法规定,先将所有边的权值按照小到大排序,每条边的起点和终点也需要加上,先从权值最小的边开始连接,每次连接前判断需要连接的顶点是否会导致树变成环,如果会导致这种情况,则跳过该边,进行下一条边的判定,直到获取该无向加权图的最小生成树。如下图:首先先建表观察beginendweightedges...

2019-12-19 10:00:32 269

原创 最小生成树-Prim(普里姆)算法解析

prim算法是无向加权图寻找最小生成树的算法,简单理解他的寻找路径的过程,从一个顶点V0开始,首先找到所有与V0相关联的顶点,查看这些顶点到V0的加权值,找出最小的一个,然后将该顶点纳入已统计顶点中。寻找第三个顶点时,将V0、之前已算出的顶点与所有相关联且未统计的顶点,找出最小的一个,纳入已统计顶点中。后面的寻顶点规则同上所述。最后找出最小的生产树路径。如下图:从任意顶点开始都可以,这里从V0开...

2019-12-19 09:50:39 2585

原创 斐波那契查找

裴波那契查找算法其实与二分查找有点类似,都是一分为二,但是,他不是均分的,而是根据裴波那契数列按比例分。如分的左边长,右边短,如果查找的那个数大多数在短的一方,那么这个算法就比二分法效率高一些了;但是,如果查找数大都在长的一方,那么这个效率就会比二分法慢了。因此,具体情况具体分析,看什么场景用什么算法,选择最适合场景的算法即可。mid=low+F[k-1]+1,k为下标。...

2019-12-19 09:32:58 106

原创 插值查找

插值查找就是在二分查找的基础上将获取mid的值由mid=(low+high)/2换成mid=low + (high-low)*(key-a[low])/(a[high]-a[low])package com.java.arithmetic.lookfor;public class InsertFind { public static void main(String[] args) {...

2019-12-19 09:30:10 97

原创 二分查找

思路:首先,该集合必须是有序的集合;先用low和high指出区间的下界和上界,low=0;high=length-1;比较当low小于high的时候,一直循环,mid=(low+high)/2;判断如果mid等与要查找的数据是否相等,小于放在左边,大于放在右边,以此继续循环,直到找到为止。package com.java.arithmetic.lookfor;public class Two...

2019-12-19 09:25:48 82

原创 springboot集成redis报错缺包

报如下错,说明缺少commons-pool2包,加上即可<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId></dependency>Caused by: org.springf...

2019-11-08 09:42:02 856 1

原创 mybatis使用resultType返回获取不到某些字段的值

注意:由于使用resultType,返回对象值,所以如果数据库字段的名称和对象属性名称有些出入,也就是不按标准(如驼峰命名)命名的话,该字段获取的值就无法注入对象中,导致获取不到完整的对象值,所以出现这样的问题可以选择使用resultMap返回结果,或者将数据库字段名规范与model的变量名一致,可使用驼峰命名。...

2019-10-24 15:34:20 3771 10

原创 springboot集成ueditor使用过程中出现得问题

在将原本的工程升级SpringBoot后,百度的Ueditor的图片上传就不能使用了,由于使用的是云存储,可能暴露的问题与本地存储还是稍微有些区别点击图片上传按钮没有任何反应,然后Google上F12查看发现报错了报这个错一般都与如下三个文件有关由报错信息可以得知访问不到controller.jsp这个文件,而这个文件主要的作用就是读取config.json的信息,所以打算使用将路径修改...

2019-09-27 18:39:46 414

原创 mybatis一对一和一对多系映射详解,以及n+1问题在mybatis分页时数量不对的解决方法

本文主要讲解关于使用mybatis是多表关联,一对一和一对多如何进行关系映射,以及一对多查询时出现n+1问题的解决方法,本次使用oracle数据库为例。model对象@Table(name = "SEAT")public class Seat { private String seatId; //座位id, 字段名:SEAT_ID private String seatCode; //座...

2019-08-23 17:56:28 2227

原创 LocalDate获取一年的周数,及指定周数周一到周日对应得日期

java8如何获取一年拥有的周数及周数对应的日期下面是一个测试的例子public class TestWeekNumAndDate { /** * @param args */ public static void main(String[] args) { //初始化,第一周至少四天 WeekFields wfs= WeekFields.of(DayOfWeek.MON...

2019-08-22 09:54:21 10403

原创 java8使用LocalDate和LocalDateTime加减时间容易忽略的问题

使用LocalDate和LocalDateTime加减时间的时候,自身是不会变的,这个与Calendar有点区别,Calendar加减时间时自身就会改变,需要重新声明变量或者重新赋值才行public class TestTime { public static void main(String[] args) { LocalDate startDate = LocalDate....

2019-08-15 17:05:58 28978 4

原创 SpringBoot内置tomcat限制参数值包含{}[],如何允许访问后台

/*** 请求值带"[]{}"允许通过* @return*/@Configurationpublic class WebConfig { @Bean(name="webServerFactory") public ServletWebServerFactory webServerFactory() { TomcatServletWebServerFacto...

2019-08-08 09:35:43 1528

原创 SpringBoot获取src/main/resource路径下的文件

SpringBoot获取src/main/resource路径下的文件File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX+“static/imgs/aha.png”);

2019-08-08 09:31:21 36409 11

原创 通用mapper更新时报字段为空的异常,以及表不存在问题

Error setting null for parameter #3 with JdbcType OTHER需要在model的映射类给属性设置主键,在属性上加注解@IdORA-00942: 表或视图不存在@Table(name = “表名”)需要在model的映射类给属性设置关联表,在类上加注解@Table(name = “USER”)...

2019-08-07 16:06:25 1343

原创 前端如何将对象与String类型的变量一起传给后台

js代码 $scope.addUser = function() { var userGuid='123456'; var userName='阿斗'; var groupName='勇士组' var _data = 'userGuid=' + userGuid +'&userName=' + userName +'&groupName='...

2019-08-07 16:05:04 2471

原创 vscode无法使用node和vue命令

先设置管理员省份运行此程序,如果此步骤还不行的话进行第二步2. 在环境变量PATH中添加node和vue的安装路径

2019-07-31 14:20:53 6433 2

原创 springboot集成vue环境搭建

一、先搭建vue环境去官网下载Nodejs,如果希望稳定的开发环境则下LTShttps://nodejs.org/en/download/安装好后win+r输入node -v查询是否安装成功,如下出现版本号即为成功高版本的nodejs自带npm,则不必再下载,查询命令npm -v安装镜像,以淘宝镜像为例子cmd -> npm install -g cnpm --regis...

2019-07-30 17:46:22 7776 1

原创 最简单的IO解析

**对于IO流主要分三方面进行解析**1、输入流与输出流输入流与输出流主要的父类是InputStream和OutputStream,其他流类主要是由这两个类派生出来。输入流和输出流我们打个比方,我们再淘宝买了一套家具(柜子、床、沙发这些),在出发前,卖家把这些都拆成小块,方便物流货车装载,这就像我们的输入流把大的文件转成二进制流,货车就是传输通道,然后我们收到货后,把这些家具重新组装起来,...

2019-07-25 14:42:31 239

原创 泛型及通配符上下限的使用解析

在java中?指泛型的通配符,可以表示任何类型。如List<?>,Map<?,?>等public class GenericityTest { public static void main(String[] args) { List<String> lists = new ArrayList<>(); lists.add("111"...

2019-07-24 18:41:12 339

原创 最简单的线程、多线程的解析

线程是操作系统最小的执行单位,也可以称为轻量级进程,一个进程可以有多个线程组成。一个线程一般有自己的计数器、堆栈、局部变量。我们都知道现在的计算机cup内核在不断的扩展,计算机速度越来越快,单一的线程已经满足不了人们的需求,用户线户与轻量线程N:M关联,而轻量线程与内核线程是一一对应的关系。所以多线程被考虑到了,因为轻量级线程可以和用户线程混合使用。而用户线程正时我们编程使用的线程。多线程下...

2019-07-23 23:41:17 140

原创 mybatis分页时关于n+1问题的几种解决方法

所谓的n+1问题,举个例子,当你要查出一个列表数据的时候执行了一次sql查了一次数据库,而你还需要查到这个列表数据中每一条的关联信息,如果列表有n条数据,你就需要再查n次数据库,这样的话,效率就很低了,这个就是n+1问题,这还会导致分页的数据不对的问题。一下提供几条意见供参考:使用懒加载。在未使用关联表数据时,可以让其在后面再加载出来,减轻服务器的压力。但是,如果一开始就需要关联表的数据信息...

2019-07-23 10:54:52 2697

原创 jdk7关于HashMap数据存储与获取的源码解析

一、存储数据解析1、先看put方法public V put(K key, V value) { //如果key值为空,调用putForNullKey方法存储键值对,点进该方法中,可以看到,调用的addEntry方法默认会将内容存到数字下表为0的链表下 if (key == null) return putForNullKey(value); //根据ke...

2019-07-22 14:52:28 93

原创 jdk8在Java编程语言上加了哪些新特性

使用lambda表达式,如:() -> {return 1;} //该函数无入参,返回1;(a, b) -> a + b //返回a与b的和int a = (int a, int b) -> a + b; // 有类型声明,返回a与b的和int a = (a, b) -> a + b; // 无类型声明,返回a与b的和int a = (int a,...

2019-07-18 12:02:48 96

原创 SpringMVC纯传HttpSession导致跨站点请求漏洞

如下,如果只传HttpSession的话,测试时会出现跨站点请求伪造的风险。//TODO 纯传HttpSession有跨站点请求伪造风险@RequestMapping(value = "/getName")@ResponseBodypublic String getDockPos(HttpSession session) { User user = (user) session.getA...

2019-07-16 17:56:39 226

原创 spring配置文件中引入其他的配置文件

spring配置文件中,如何引入其他的配置文件,如下:<import resource="abc/abc.xml">

2019-07-10 15:59:43 2310

原创 maven项目启动找不到spring监听器

Eclipse中启动tomcat的时候报如下异常:Error configuring application listener of class org.springframework.web.context.ContextLoaderListener java.lang.ClassNotFoundException: org.springframework.web.context.Conte...

2019-07-10 15:53:07 793 1

原创 Spring-data-common版本不兼容可能导致的异常

由于本人在一个项目中使用了spring-data-common-1.10.1版本,但是使用maven导入相关jar包的时候,该jar包依赖的是spring-data-common-1.11.0版本,所以导致原项目的版本不兼容,报了如下的错java.lang.AbstractMethodError: org.springframework.data.repository.core.support....

2019-07-10 15:42:44 4262

PLSQL Developer破解版

下载后按这篇文章配置一下就行 https://blog.csdn.net/weixin_44919928/article/details/89373146

2019-04-18

空空如也

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

TA关注的人

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