自定义博客皮肤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)
  • 收藏
  • 关注

原创 java树结构的层级查询

最近在做项目的过程中,需要做一个分类,设计出来的表结构:查询层级的时候只需要用到父级id,也就是这个分类的上层分类,设计出来的分类层级是不限定级数的,也就是说可能有123456级。规定一级的父id为0,二级为一级的id,以此类推,那么查询的时候我们就不知道这一级下面有多少级了,当然可以通过代码判断,但是没必要,这时候我们可以使用递归的方法了这是返回的bean结构,里面存放了一个自身结构的list执行sql语句getClassifyList,然后通过resultMap跳到NextTreeResu

2021-02-07 18:00:54 3819 1

原创 响应式布局@media screen

/@media only screen and + (边界值) + and + (边界值) …

2023-04-14 10:47:54 273

原创 Java实现简单的违规词匹配功能

违规词匹配

2022-10-27 17:11:47 1354

原创 Java单例实现

懒汉式,饿汉式,双检锁/双重校验锁,登记式/静态内部类,枚举

2022-10-27 15:46:01 189

原创 Java并发操作,多线程

Thread/Runable/Callable,ExecutorService,synchornize关键字,volatile关键字,Lock,CountDownLatch,CyclicBarrier,Future,stream,Atomic原子类,Vector,Collections.synchronizedList,CopyOnWriteArrayList,ConcurrentHashMap

2022-10-27 15:39:38 1221

原创 JVM GC算法总结

JVM GC算法总结

2022-10-27 15:34:08 191

原创 解决父子层div存在点击事件冲突的问题

只执行子层方法。在子层方法中加入以上代码,父层方法便不会执行。

2022-10-25 17:19:10 509

原创 JavaScript/JS获取屏幕的分辨率

获取屏幕高度。获取屏幕宽度。

2022-10-25 16:56:55 5409

原创 ShardingSphere-jdbc-读写分离&&数据分片

使用shardingsphere5.0实现读写分离&&数据分片

2022-01-07 16:59:10 1568 3

原创 分布式缓存-缓存技术

1. 缓存的基本原理和应用场景根据数据的使用频率和方式分类静态数据:一般不变,类似于字典表准静态数据:变化频率很低,部门结构设置,全国行政区划数据等中间状态数据:一些计算的可复用中间数据,变量副本,配置中心的本地副本热数据:使用频率高读写比较大:读的频率 >> 写的频率这些数据适合于使用缓存的方式访问 广义上来说,为了加速数据处理,让业务更快访问的临时存放冗余数据,都是缓存 狭义上,现在我们一般在分布式系统里把缓存到内存的数据叫做内存缓存缓存无处不在内存 ~ 可以看做是 C

2021-09-07 14:57:55 515

原创 mysql存储json字段——java

在一些应用场景中,我们需要借助到mysql的json字段存储,比如,一切不确定的参数集合,比如轮播图的地址,那轮播图的数量是不定的,怎么设计表结构合适呢,不可能说弄好多个字段,这里就需要把轮播图的字段设置为json或者varchar。首先是java数据类型public class TestDTO { private String siteId; private String name; private List<Object> value;}把list转换成js

2021-08-09 15:30:37 4096

原创 java基本数据类型

int长度数据类型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)float长度数据类型有:单精度(32bits float)、双精度(64bits double)boolean类型变量的取值有:ture、falsechar数据类型有:unicode字符,16位对应的类类型:Integer、Float、Boolean、Character、Double、Short、Byte、Long隐式类型转换(自动)核心:从低精度向高精度转换byte(1

2021-08-08 20:18:05 107

原创 ArrayList为什么不是线程安全的

线程安全的问题,只有在涉及到多线程的时候才会出现,在单线程的环境中,是不会出现线程安全的问题。常用的集合类型ArrayList为什么不是线程安全的呢?就是因为他的add方法,先看源码 // 添加元素方法 public boolean add(E e) { // 判断是否需要扩容,size+1比当前集合长度大则扩容 ensureCapacityInternal(size + 1); // Increments modCount!! eleme

2021-08-03 17:39:33 826

原创 parallelStream()并行流操作

在Java-Stream流式编程中已经讲了流编程的使用方法,但是stream()是串行操作的,也可以说是线程安全的。但是parallelStream()恰恰相反,是并行操作的,是线程不安全的,两者的执行效率的话肯定是parallelStream()要快,毕竟是多线程的,但是这就就会涉及到线程安全的问题了,一旦涉及到线程安全的问题,那些线程不安全的集合类型我们是一个都不能用的了,像什么HashMap,ArrayList,都不能用了,只能用线程安全的集合了。如果还纠结为什么线程不安全不能用或者为什么线程不安全的

2021-08-02 17:20:13 4791

原创 java通过hashMap实现树结构

该博文主要讲解java如何使用hashMap来构建一个多叉树(类似mysql索引的 B树类型)并实现关键字识别的功能。一:什么是B树B树(B-tree)是有Bayer和McCreight在1972年提出的数据结构。B树索引是数据库中存取和查找文件(称为记录或键值)的一种方法,应用于磁盘读取方面。B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树

2021-08-02 14:55:44 1062

原创 Java-Stream流式编程

一、什么是 StreamStream 中文称为 “流”,通过将集合转换为这么一种叫做 “流” 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的流水线操作。换句话说,你只需要告诉流你的要求,流便会在背后自行根据要求对元素进行处理,而你只需要 “坐享其成”。二、流操作数据源->流->中间操作->终端操作三、流与集合对集合进行修改处理,使用的是外部迭代,而流使用的是内部迭代。流和迭代器类似,只能迭代一次Stream stream = list.stream()

2021-08-02 10:28:22 437

原创 rabbitmq通过死信队列实现延迟任务——java

很多场景下都需要延迟任务,比如一笔订单50分钟后还没支付则过期,发出去的红包24小时后未领取则自动过期,合同第一次签署失败后20秒后再尝试签署一次。。。。本博客介绍如何使用rabbitmq通过死信队列实现延迟任务。首先是配置rabbitmq环境,关于如何配置与mq的各种参数详解,请移步https://blog.csdn.net/echizao1839/article/details/105533214当配置好以后,我们需要创建一个配置类,方便我们管理交换机与队列@Configurationpubl

2021-07-29 10:21:08 340

原创 java线程池ThreadPoolExecutor类详解(一)——常见的任务队列

在《阿里巴巴java开发手册》中写到,线程池不允许使用Executors 去创建,而是通过 ThreadPoolExecutor 的方式。Executors 返回的线程池对象的弊端如下: 1)FixedThreadPool 和 SingleThreadPool:允许的请求队列长度为 Integer.MAX_VALUE,可能会堆积大量的请求,从而导致 OOM。2)CachedThreadPool 和 ScheduledThreadPool:允许的创建线程数量为 Integer.MAX_VALUE,可能

2021-07-28 15:37:45 8361

原创 日期处理,获取任意时间前后几天时间

日期处理,获取任意时间前后几天时间,当天最大、最小时间获取几天前日期为-n,几天后日期则为+n /** * @description: 获取几天前(后)的日期 * @param dayTime * @param addDayTime * @return: java.util.Date * @author: Alm * @time: 2021/5/26 15:18 */ public static Date getDay(

2021-07-01 10:45:04 202

原创 executeUpdate()返回1,数据库却没有修改数据

execute()返回1,数据库却没有修改数据出现这种情况有很多种可能,首先需要检查下自动提交事物是否为false,即查看是否有该代码Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);conn.setAutoCommit(false);主要是setAutoCommit(false);这个方法赋值为false则关闭自动提交事物,这时候就需要我们手动提交事物,在每个update,insert,delete语句后手动提交

2021-07-01 10:12:56 2167 1

原创 Java实体类与数据库表映射关系

在代码编写过程中,避免不了与数据库打交道,而这最基本的就是如何把数据映射为实体类,下面介绍几种比较常用的映射方式。一:xml文件编写映射规则<!-- 通用查询映射结果 --><resultMap id="myMap" type="com.**.**.entity.User"> <id column="id" property="id" /> <result column="user_name" property="userNam

2021-04-28 10:42:28 7150

原创 Java使用将字符串通过Base64形式转字节数组报错

一般来说,会有两种方法//第一种:java.util.Base64byte[] keyBytes = Base64.getDecoder().decode(privateKey);//第二种:org.apache.commons.codec.binary.Base64byte[] keyBytes = Base64.decodeBase64(privateKey);理论上两种都可以转换并且结果都是一样的,但是第一种是不可以对换行符进行识别的,我们粘贴字符串时,如果字符串过长,会需要到换行;或

2021-04-16 17:43:41 1125

原创 java获取前端的特殊字符串&ldquo;&rdquo;

前几日在做项目时,发现数据库里存储的某些某些符号出现了HTML代码,比如说" "< >,这个“ ”不是空字符串啊,是符号,但是却变成了&ldquo;&rdquo;开始的时候前端使用的传参形式是params,看了下请求,发现前端给的参数就是这样的,那问题就不出在后端了。解决的办法是,把params传参换成data传参,export function updateFilmInfo(data) { axiosIns.defaults.owner = api re

2021-03-03 15:54:25 742 1

原创 Vue对date类型选择格式输出

Vue对date类型选择格式输出1.安装moment插件npm install moment --save 或 cnpm i moment --save2.main.js文件引入import moment from 'moment'Vue.prototype.$moment = moment3.使用moment<span style="float:right">{{$moment(new Date()).format('YYYY-MM-DD')}}</span>

2021-03-03 15:38:21 441 1

原创 sql-or与and的配合使用

关于对sql语句中的or与and,进行深入解剖一:优先级and > or二:使用场景1.批量修改update *** a set a.is_del = 1 where a.is_del = 0 and a.edu_name = ? and a.project_name = ? or a.is_del = 0 and a.edu_name = ? and a.project_name = ? or a.is_del = 0 and a.edu_name = ? and a.project

2021-02-25 17:29:21 2642

原创 同源跨域问题,When allowCredentials is true, allowedOrigins cannot contain the special value “*“since ....

When allowCredentials is true, allowedOrigins cannot contain the special value ““since that cannot be set on the “Access-Control-Allow-Origin” response header. To allow credentials to a set of origins, list them explicitly or consider using “allowedOriginP

2021-02-19 16:54:35 1398

原创 vue-qr生成二维码

一:安装npm install vue-qr --save二:导入项目在main.js中导入即可全局使用三:项目中使用logoSrc为在二维码中间实现的logo图片,text为要生成的二维码内容,通常为一个url创建方法,分别给imageUrl与shareUrl赋值,这里有一点要注意的是,如果使用的是本地的图片,则imageUrl=require(“ xxx”)----xxx为图片的url;而如果想使用网图弄成动态显示图片,一般来说直接imageUrl=“xxx”即可,但如果使用的是谷歌浏览器

2021-02-05 10:52:14 680 2

原创 Rabbit mq在linux系统上的安装与配置

一:简介1.AMQP协议AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息 中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。Erlang中的 实现有 RabbitMQ等。2.Erlang语言Erlang是一种通用的并发程序设计语言,它由乔·阿姆斯特朗(Joe Armstrong)在瑞典电信设备制造商爱立信所辖

2021-01-18 18:28:30 587

原创 优化MySQL(一)——连接查询

1.连接查询执行顺序问题根据网上说的执行顺序:附上熟悉的鱼骨图但真的是这样的吗,假设a表的数据量是100w,b表的数据量是100w,如果先笛卡尔乘积再筛选,那数据量肯定巨大的。我们根据实际案例来看下:course_section表,数据量9.7w , course 表,264正常情况下(select * from course_section a left join course b on a.course.id=b.id),左连接的驱动表会是course_section,通过explain查看执

2021-01-18 17:31:33 669 4

原创 使用openFeign服务调用传参为null

消费者类调用服务时,传入参数但是为null,因为feign方法没有加@RequestBody正确为:

2020-11-16 11:46:17 2378 1

原创 UserLoginController required a bean of type ‘***.feign.IUserFeignService‘ that could not be found.

Field iUserFeignService in com.alm.pc.platform.controller.UserLoginController required a bean of type ‘com.alm.youcanbe.user.feign.IUserFeignService’ that could not be found.The injection point has the following annotations:- @org.springframework.beans.f

2020-11-16 11:39:04 533

原创 List保存bean对象数据全是最后更新的一个

出现这种情况一般是以下的代码写法,可以看到,存入到list中的Person对象只有一个,只不过是修改了age属性的值,可以看到输出的结果,遍历输出list里的person对象的age属性值,全为5,这与我们的设想出现了差异。我们想要的是输出10 20 5,那么怎样才能输出这样的结果呢。正确的写法应该是创建3个不同的Person对象,就会有输出10 20 5的效果,因为list存入的只是对象的存放地址,或者说就是这个对象的一个标识,实际上还是这个对象,并没有创建出新的对象然后把对象存入到list中,如何验证

2020-11-06 10:20:21 302

原创 Error:java: 读取C:\User\qwe\.m2\repository\**********.jar时出错; invalid LOC header (bad signature)

报错场景:导入一个新的项目,导包异常。报错原因:可能是导入的过程中非正常关闭idea或者网络异常或者其他原因导致包下载不全。解决方法:鬼话:1.找到你现在这个版本对应的包需要是x.x.x的2.通过idea帮你重下包或者手动删掉自己添加然后更新人话:找到报错提示的路径,删掉对应的包,然后build->rebuild project,或者右键项目,maven->reimport。...

2020-10-27 09:42:47 7006 2

原创 搭建阿里云轻量应用服务器

首先,我们需要打开宝塔,选择软件商店,下载我们需要的软件,这里我推荐Tomcat9,Pure-Ftpd,Mysql5.7,Nginx,Navicat for Mysql。详细可根据自己需要下载。然后我们需要部署Ftp,创建一个ftp账号,接着到Pure-Ftpd中找到ForcePassiveIP,填上自己的服务器的公网ip地址部署tomcat,把项目打包放上tomcat,需要把自己的项目打包成war包的形式,具体如何打包可以百度教程,添加一些代码就可以了,把war包上传到重启tomcat即可最后一步,

2020-05-22 13:48:50 713

原创 Nginx配置server解释

静态服务器nginx,我们需要修改的是配置文件中的server{}下的配置,以其中一个为例这里的listen 888中的888,就是你监听的端口号,当访问地址为服务器ip地址:888,就是访问静态服务器nginx,然后location /img/意思为访问地址为服务器ip地址:888/img时,就是访问home/www/img文件夹下的文件,在这里就可以比如服务器ip地址:888/img/1.jpg就是访问home/www/img下的1.jpg文件,这里也可以嵌套多一个目录,比如服务器ip地址:888/im

2020-05-22 13:47:43 3156

原创 maven项目的pom.xlm文件开头报错

今天导入一个新的采用springboot框架的maven项目,发现pom.xml文件第一行报错,提示!unknown错误在这里插入图片描述方法一:update项目但是我试了没用。方法二:<java.version>1.8</java.version><maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>原因是spring-boot升级到2.1.5版本,而maven-jar-plugin.v

2020-05-15 19:45:50 590

原创 java ssm框架与数据库对接失败的原因-连接包版本问题

org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transactionorg.springframework.transaction.CannotCreateTransactionException: Could not open JDBC C...

2020-05-08 16:02:53 446

空空如也

空空如也

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

TA关注的人

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