- 博客(58)
- 资源 (7)
- 问答 (7)
- 收藏
- 关注
转载 @PostConstruct详解
PostConstruct是Java自带的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。从Java EE5规范开始,Servlet中增加了两个影响Servlet生命周期的注解,@PostConstruct和@PreDestroy,这两个注解被用来修饰一个非静态的void()方法。......
2022-08-09 16:15:01
496
转载 23种设计模式UML类图图解
目录 一 、类图的表示二、创建者模式1、单例模式2、简单工厂模式3、工厂方法模式4、抽象工厂模式5、原型模式6、建造者模式 三、结构型模式1、代理模式2、适配器模式3、装饰者模式4、桥接模式5、外观模式6、组合模式7、享元模式 四、行为型模式1、...
2022-04-08 17:50:05
23396
2
转载 uml图六种箭头的含义
在看一些技术博客的时候,经常会见到博客里画上很多uml图。因为经常会被这几种表达关系的箭头搞混,这里我就把常见的6种箭头表达的含义理一下。 泛化 概念:泛化是一种一般与特殊、一般与具体之间关系的描述,具体描述建立在一般描述的基础之上,并对其进行了扩展。在java中用来表示继承的关系。 表示方法:用实线空心三角箭头表示。 实现 概念:实现是一种类与接口的关系,表示类是接口所有特征和行为的实现,在程序中一般通过类实现接口来描述...
2022-04-08 17:38:02
404
原创 解决No thread-bound request found: Are you referring to request attributes outside of an actual web.异常
ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); CompletableFuture.supplyAsync(() -> { RequestContextHolder.setRequestAttributes(servletRequestAttrib.
2021-10-19 15:43:18
2043
转载 Java并发编程——深入理解自旋锁
1.什么是自旋锁自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。2.Java如何实现自旋锁?先看一个实现自旋锁的例子,java.util.concurrent包里提供了很多面向并发编程的类. 使用这些类在多核CPU的机器上会有比较好的性能.主要原因是这些类里面大多使用(失败-重试方式的)乐
2021-10-08 10:19:01
220
原创 关于Lock锁的IllegalMonitorStateException异常
public static void main(String[] args) { Lock lock = new ReentrantLock(); lock.lock(); try{ int i = 1 / 0; // lock.lock(); }finally { lock.unlock(); } }如果lock.lock放在try里面就会引发.
2021-10-04 10:39:34
1049
原创 树的存储结构
双亲表示法数组中的一个元素表示树中的一个结点,其中包括结点本身的信息以及结点的双亲结点在数组中的序号,树的这种存储方法称为双亲表示法孩子链表表示法其主体是一个与结点个数一样大小的一维数组,数组的每一个元素由两个域组成,一个域用来存放结点信息,另一个用来存放该结点孩子组成的单链表的引用。单链表的结构也由两个域组成,一个存放孩子结点在一维数组中的序号,另一个是指针域,指向下一个孩子。双亲孩子表示法双亲表示法是将双亲表示法和孩子表示法相结合的结果。其仍将各结点的孩子结点分别组成单链表,
2021-07-14 11:22:18
129
原创 满二叉树和完全二叉树
满二叉树:在一棵二叉树中,如果所有分支结点都存在左子树和右子树,并且所有叶子结点都在同一层上,这样的一棵二叉树称作满二叉树完全二叉树:完全二叉树是一种叶子结点只能出现在最下层和次下层且最下层的叶子结点集中在树的左边的特殊二叉树满二叉树与完全二叉树存在如下关系:当树的深度相同时,若对树的结点按从上至下、从左到右的顺序进行编号,则在两种树上同一个位置上的结点的编号相同。显然,一棵满二叉树必定是一棵完全二叉树,而完全二叉树未必是满二叉树。...
2021-07-12 15:45:34
9362
原创 BFS和DFS模板
BFS:/** * Return the length of the shortest path between root and target node. */int BFS(Node root, Node target) { Queue<Node> queue; // store all nodes which are waiting to be processed int step = 0; // number of steps neeeded .
2021-06-26 10:58:56
150
原创 jdk1.8 HashMap红黑树 笔记
static <K,V> TreeNode<K,V> balanceInsertion(TreeNode<K,V> root, TreeNode<K,V> x) { x.red = true; for (TreeNode<K,V> xp, xpp, xppl, xppr;;) { // x新节...
2021-05-06 17:14:04
153
原创 jdk1.8扩容 resize() 笔记
final Node<K,V>[] resize() { Node<K,V>[] oldTab = table; // 初始化节点,第一次为null,第二次16 int oldCap = (oldTab == null) ? 0 : oldTab.length; // 第二次16 int oldThr = threshold; // 第一次12 int newCap, newThr = 0; if (..
2021-04-03 10:40:47
422
3
转载 3.理解TiDB执行计划
一、Explain EXPLAIN 语句仅用于显示查询的执行计划,而不执行查询。 EXPLAIN ANALYZE 可执行查询,补充 EXPLAIN 语句。如果 EXPLAIN 的输出与预期结果不匹配,可考虑在查询的每个表上执行 ...
2021-03-04 16:01:57
1340
3
转载 TiDB SQL优化(二)
1.物理优化 物理优化是基于代价的优化,为上一阶段产生的逻辑执行计划制定物理执行计划。这一阶段中,优化器会为逻辑执行计划中的每个算子选择具体的物理实现。逻辑算子的不同物理实现有着不同的时间复杂度、资源消耗和物理属性等。在这个过程中,优化器会根据数据的统计信息来确定不同物理实现的代价,并选择整体代价最小的物理执行计划。 ...
2021-02-01 11:47:28
973
1
转载 Tidb SQL优化(一)
1.SQL 优化流程 在 TiDB 中,从输入的查询文本到最终的执行计划执行结果的过程可以见下图。 在经过了 parser 对原始查询文本的解析以及一些简单的合法性验证后,TiDB 首先会对查询做一些逻辑上的等价变化, 通过这些等价变化,使得这个查询在逻辑执行计划上可以变得更易于处理。在等价变化结束之后,TiDB 会得到一个与原始查...
2021-02-01 11:43:23
1659
1
原创 Linux把程序设置成服务运行
在linux下,把程序设置systemctl服务,并开机启动。以nexus服务为例:进入usr/lib/systemd/system/目录 新建nexus.service文件,写入如下内容, 字段说明请百度systemctl服务的字段说明。 以nexus服务为例: 进入/usr/lib/systemd/system, 新建nexus.service文件,写入如下内...
2020-04-01 11:24:53
2951
1
转载 Java的ConcurrentHashMap
Java的ConcurrentHashMap简介ConcurrentHashMap是Java中的一个线程安全且高效的HashMap实现。平时涉及高并发如果要用map结构,那第一时间想到的就是它。那么我就这几个方面了解一下ConcurrentHashMap:1)ConcurrentHashMap在JDK8里结构2)ConcurrentHashMap的put方法、szie方法等3)C...
2020-03-27 13:34:41
188
转载 什么是ThreadLocal
一、什么是ThreadLocal声明:本文使用的是JDK 1.8首先我们来看一下JDK的文档介绍:/** * This class provides thread-local variables. These variables differ from * their normal counterparts in that each thread that accesse...
2020-03-09 09:57:45
152
原创 Synchronized与Lock区别
Java里面的两种管程模型之前我们了解了Java里面的一种管程模型monitor,synchronized就是基于Monitor实现的管程模型,在这个模型里面,synchronized中用锁解决了资源互斥问题,然后提供了wait(),notify(),notifyAll() 一组方法解决了线程同步问题,Java里面另一种管程模型就是Lock+Condition, 在此模型中 Lock是用来解决...
2020-03-02 16:22:37
217
转载 Redis和Memcache区别,优缺点对比
1、 Redis和Memcache都是将数据存放在内存中,都是内存数据库。不过memcache还可用于缓存其他东西,例如图片、视频等等。 2、Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。 3、虚拟内存–Redis当物理内存用完时,可以将一些很久没用到的value 交换到磁盘 4、过期策略–memcach...
2020-02-26 10:42:50
394
原创 Shell的脚本学习
第1章 Shell概述1)需要看懂运维人员编写的Shell程序。2)偶尔会编写一些简单Shell程序来管理集群、提高开发效率。第2章 Shell解析器(1)Linux提供的Shell解析器有:[atguigu@hadoop101 ~]$ cat /etc/shells/bin/sh/bin/bash/sbin/nologin/bin/dash/...
2019-12-13 10:30:27
174
原创 集合转Map工具类
项目中使用的,拿去就可以用.package com.qsqx.utils;import java.util.Collection;import java.util.Collections;import java.util.List;import java.util.Map;import java.util.function.Function;import org.apach...
2019-11-18 11:07:58
338
转载 CentOS7.5环境下搭建禅道
CentOS7.5环境下搭建禅道 在安装配置禅道之前,可以百度了解一下两款项目管理工具禅道与JIRA的区别。一、安装进入禅道官网https://www.zentao.net,选择适用的版本进行安装,我这里下载的是“开源版11.6”官方开源版使用手册:https://www.zentao.net/book/zentaopmshelp/40.html注:Linux...
2019-11-13 17:34:54
747
原创 初识-设计模式五 工厂模式
package com.mybatis.designpatterns.factory;public class Add extends Operation { public Double getResult(){ return getNumberA() + getNumberB(); }}package com.mybatis.designpatte...
2019-11-04 15:42:56
172
原创 初识-设计模式四 代理模式
package com.mybatis.designpatterns.proxy;abstract class Subject { public abstract void request();}package com.mybatis.designpatterns.proxy;/** * 请求的真实类 */public class RealSubject exte...
2019-10-23 11:11:42
170
原创 初识-设计模式三 装饰者模式
package com.mybatis.designpatterns.decorator;abstract class Component { // 通用的抽象方法类 public abstract void run(); public abstract void swing();}package com.mybatis.designpatterns.decorat...
2019-10-21 17:08:51
131
原创 初识-设计模式二 策略模式
package com.mybatis.Strategist;public class Cash { /** * 收银系统: * 需求:1.客户买卖东西正常收费 * 2.打折收费 * 3.返利 * @param args */ public static void main(String[] ar...
2019-10-16 15:47:29
156
原创 初识-设计模式一 简单工厂模式
示例一:@Data // 注解方式生成get set 方法 abstract class Operation { // 抽象类 ,继承使用方法和字段 private Double numberA; private Double numberB; public Double getResult(){ return 0D; }}p...
2019-10-16 10:32:08
160
转载 Spring事务传播问题 — PROPAGATION_REQUIRES_NEW
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...
2019-10-10 15:01:53
984
原创 c# 笔记
关于结构体和类的区别:借助类(class),两个变量可以引用同一个对象,因此,对一个变量执行的运算可以会影响到另一个变量的引用。 class print1 { public int x; public int y; public print1(int x, int y) { this.x = ...
2019-09-30 11:06:45
140
原创 logback日志
<?xml version="1.0" encoding="UTF-8"?><!---scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true-scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。- 当scan为true时,此属性生效。默认的时间间隔为1分钟-debug...
2019-09-27 14:46:22
182
原创 JDK8日期时间Api LocalDate 、LocalTime、LocalDateTime
package com.mybatis.springbootmybatis.jdk8.localdate;import java.time.*;import java.time.format.DateTimeFormatter;import java.time.temporal.TemporalAdjusters;public class Test { public stat...
2019-09-04 16:05:30
224
转载 Unity3D学习路线与学习经验分享
转自:https://blog.youkuaiyun.com/qq_22521529/article/details/83108837写给新手与初学者:你在准备开始学习这款软件之前,可能经常会听周围的人说,“英语很重要,如果不会英语,程序是学不会的”,“学程序,就又得背单词了”,“C语言都没学好,不可能搞得懂Unity3D的”...等等这一些容易影响心态的话。我认为,学这个,开局最重要的并不是疯狂翻书疯...
2019-09-02 15:41:18
897
原创 初识Lambda-含API及Demo
/** 一、Lambda 表达式的基础语法:Java8中引入了一个新的操作符 "->" 该操作符称为箭头操作符或 Lambda 操作符* 箭头操作符将 Lambda 表达式拆分成两部分:** 左侧:Lambda 表达式的参数列表* 右侧:Lambda 表达式中所需执行的功能, 即 Lambda 体** 语法格式一:无参数,无返回值* (...
2019-08-26 17:33:38
265
原创 解决maven工程jar包冲突的三种方案
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org...
2019-07-25 15:21:29
3067
原创 Docker学习与应用
1 Docker简介1.1 什么是虚拟化 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。...
2019-07-19 15:37:59
230
转载 MySQL出现错误1205-Lock wait timeout exceeded; try restarting transaction
今天在清空mysql数据库中的表格数据时,报了如下错误,导致操作失败:上网查找了一下,了解到了该类问题出现的主要原因是:Mysql的 InnoDB存储引擎是支持事务的,事务开启后没有被主动Commit,导致该资源被长期占用,其他事务在抢占该资源时,因上一个事务的锁而导致抢占失败!因此出现 Lock wait timeout exceeded。解决办法: 方法...
2019-07-05 11:37:38
4203
原创 linux安装redis步骤 - 主从复制 - 哨兵配置
1.获取redis资源 wget http://download.redis.io/releases/redis-4.0.8.tar.gz2.解压 tar xzvf redis-4.0.8.tar.gz3.安装 cd redis-4.0.8 make cd src make install PREFIX=/usr/local/redis4.移动配置文件到安装目录下...
2019-07-03 13:45:21
191
转载 Redis配置文件之————redis.conf配置及说明
基本设置 1. 备释当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写):1k =< 1000 bytes1kb =< 1024 bytes1m =< 1000000 bytes1mb =< 1024*1024 bytes1g =< 1000000000 bytes1gb =&l...
2019-06-27 16:02:54
404
RocketDock-v1.3.5
2024-12-27
请问RUN bash -c 'touch /boot.jar' 命令是干嘛用的?
2022-05-03
构建docker镜像 /bin/sh apt-get not found
2022-04-16
java 微信小程序支付,支付成功后收不到回调请求
2022-03-03
请问各位微信小程序后端(Java)如何做权限控制
2021-12-31
恳求各位大佬帮忙解释下数据库风控和中台的概念
2020-05-15
满足下面这种需求的java算法有哪位大牛会么?
2020-04-02
idea debug 时间类型 只能看到时间戳吗?
2019-06-11
TA创建的收藏夹 TA关注的收藏夹
TA关注的人