自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 oracle临时表 WITH AS用法

oracle临时表分为会话级临时表和事务级临时表;会话级的临时表只与当前会话相关,只要当前会话还存在,临时表中的数据就还存在,一旦退出当前会话,临时表中的数据也随之被丢弃;而且不同会话中临时表数据是不同的,当前会话只能对当前会话的数据进行操作,无法对别的会话的数据进行操作。而事务级临时表,只在当前事务有效,一旦进行commit事务提交之后,临时表内的数据就会随着前一个事务的结束而删除。

2023-09-22 15:39:11 1068

原创 解决@value获取不到yaml数组的问题

对于非嵌套列表:如:swl :[a,b,c,d],需要更改成:swl: a,b,c,d的形式;

2023-09-21 17:28:29 1911

原创 jedis实现分布式锁案例:

二、实现分布式锁工具类:三、使用案例:引入配置类:

2023-09-20 13:37:03 257

原创 oracle数据库被锁定如何解除

请注意,只有具有适当权限的用户才能执行此操作。此外,在执行此操作之前,请确保了解其影响并仔细检查正在运行的事务。其中,sid和serial#是您在上一问中查询到的会话ID和序列号。执行此语句将结束指定的会话并解锁相应的表。这个语句将返回被锁定的表的名称、机器名、会话ID和序列号。

2023-09-20 13:26:28 2951

原创 实现java参数非必传

RequestBody(required = false)实现实体aaa非必传。实现参数aaa非必传。实现参数aaa非必传。

2023-07-13 16:18:46 1847

原创 MySQL InnoDB存储原理深入剖析与技术分析

每个PageSize 16kB,每页至少存2条数据,页内单行数据最大8kb,超出8kb后会存在溢出表,超出的部分放到溢出页中(称之为【行溢出】,当某一行数据过大,导致数据页存放不下时,我们把这种情况叫做行溢出,简单的解决方式就是把记录存储在溢出页(磁盘的其它空闲地方)中)优化:避免热数据被淘汰,(访问时间+频率)、(两个LRU表:一个热数据的LRU表,一个冷数据的LRU表,只淘汰冷数据的LRU表,热数据转冷,冷数据转热);主键(key)大小,主键(key)越小,每页16k存的数据越多,树的层级越小。

2023-03-24 16:58:04 576 1

原创 Jacoco统计项目单元测试覆盖率

不然如果存在不通过的单元测试,jacoco报告将无法生成。

2022-12-29 16:22:53 1337 1

原创 sql替代函数replace与translate区别:

select REPLACE('abc123abc123', '123' ,'三二一零') from dual;

2022-12-20 16:57:35 504

原创 java实现文件加密解密

异或加密,支持所以类型文件

2022-11-14 16:51:23 9363 6

原创 获取系统参数System.getProperties()与配置文件参数@Value(“${key}“)

获取所有系统参数可以使用`System.getProperties()`,获取单个系统参数可以使用`System.getProperty("param1")`;默认的系统参数如下System.getProperties()`无法获取配置文件上的参数,配置文件上的参数可通过@Value("${key}")获取:

2022-11-14 16:01:35 2295

原创 poi实现word电子签名

【代码】poi实现word电子签名。

2022-10-27 16:37:49 721

原创 设置日志打印级别:

springboot的jar包里有人设置了debug级别,导致日志很多,可以在java -jar重起时设定日志级别。

2022-10-24 16:29:52 2163

原创 高响应延迟优化实战:

今天帮同事处理客户现场一个超高响应延迟的接口:由于客户数据达到几十W条,此接口客户环境居然跑了22S,首先通过走查代码发现以下几个严重问题:1.一个严重的循环RPC调用跑了10s,改为批量以后耗时50ms,此时这个接口响应延迟大概12s左右;2.循环逻辑,此同事将结果集数据list1的主键取出来后,又通过主键从所有数据中取出数据list2,此段代码完全无意义,跑了5s,删除后,此时这个接口响应延迟大概7s左右;3.然后定位到一个sql跑了5s左右,加索引后1s,此时这个接口响应延迟大概3s左右。

2022-09-19 18:40:39 215

原创 Jenkins打包拉取不到最新的jar包

废话少说直接给解决方案:在pom.xml的私服配置中添加标签:二、问题原因:jar包分为releases(正式版)与snapshots(快照版),发布新版的snapshots版本的jar包,maven默认不更新jar。标签是配置远程私服仓库的,可包含多个,每个代表一个仓库,包含、、,另外,、这两个标签是配置releases(正式版)与snapshots(快照版)jar包的操作。......

2022-06-29 17:15:09 4913 2

原创 poi 导出excel实战与word新增行与excel添加背景色与设置单元格边框

poi导出excel

2022-06-08 11:52:29 3849

原创 常用sql优化

总结下常用的sql优化,从避免无效查询、正确使用索引、避免索引失效、其他优化四个方面来讨论法则一:避免查询无效数据避免使用select * 操作,因为大多时间我们并不是要使用全部的字段,读取全部字段与网络传输更多数据都会导致性能下降。法则二:添加正确的索引最有效的调优是添加索引,添加索引可以避免全表扫描;且我们应避免添加索引后索引失效的操作;应该添加索引的4地方:Where后面经常出现的字段Order by后排序的关键字Group by后分组的的关键字Join on 后的关键字法则

2022-04-19 21:40:46 598

原创 02百万架构师核心技术设计实践

1、 高可用设计手段2、 服务无状态设计3、 服务负载均衡4、 服务幂等

2022-03-22 13:52:48 3266

原创 01互联网三高架构的演进之道

一、三高如何划分:常听的四个高:高可靠、高并发、高性能、高可用;怎么划分呢?高可靠(针对数据),高可用(针对服务)OLAP:On-Line Analytical Processing 联机分析处理, 大数据,追求高可靠OLTP:On-Line Transaction Processing 联机事务处理, 记录实时数据,追求可用OLTP联机事务处理,就是我们通常所说的关系型数据库,记录了实时的增删改查数据。   OLAP联机分析处理,是数据仓库的核心,是对OLTP的历史数据进

2022-03-14 16:30:15 5705

原创 彻底玩转Java类加载机制

文章总述:本文会用最通俗的话讲解Java类的加载机制,助你彻底玩转Java类的加载机制,奥利给!一、java代码在JVM中经历的三个阶段:编译、加载、实例化编译,首先Java代码如Person.java文件,通过javac命令进项编译,形成.class文件如Person.class文件;加载,然后通过类加载器将.class文件加载入内存;本文就是讲解此阶段——Java类的加载机制实例化,当需要实例化时,通过new 关键字生成对象实例;二、类加载阶段:类加载阶段包括:加载、验证、准备、解析

2022-03-10 16:46:15 814

原创 彻底玩转单例模式

文章总述:本文主要介绍单例模式的五种创建类型:饿汉式、懒汉式、DCL懒汉式、内部类式、Enum枚举单例,助你玩转单例模式~奥利给!一、饿汉式:描述:饿汉式,从名字可以看出,它很饿很着急,所以它在加载类的时候就对单例进行实例化:优点:1.以空间换时间,用的时候已经实例化,效应速度快 2.线程安全(不考虑反射)缺点:加载类时就进行了实例化,可能浪费内存;反射下不安全//饿汉式public class Singal { //私有化构造函数,防止外部调用 private Singal

2022-03-08 16:28:03 348

原创 数据结构与算法十:字符串匹配-暴力匹配算法与KMP算法

一、字符串匹配常用算法:暴力匹配KMP算法二、暴力匹配:/** * @author:songwl * @Date:2022/2/15 22:03 * @Description: */public class Stringforcematch { public static void stringforcematch(String string1,String string2) { for(int i=0;i<string1.length();i++)

2022-02-17 09:53:17 886

原创 数据结构与算法八:分治算法(汉诺塔问题)

一、分治算法是什么?分治,顾名思义分而治之的意思,将复杂问题分解为简单的算法,各个击破。可分为分解、解决、合并三步,核心是如何分解。经典应用:二分搜索大整数乘法棋盘覆盖合并排序快速排序...

2022-02-14 17:27:36 400

原创 Redis持久化策略

一、为什么Redis要持久化:因为redis是基于内存的存取,如果不进行持久化,redis关闭后,redis上的数据将丢失。二、Redis持久化策略类型:RDB(默认)AOF三、重点介绍rdb方式:3.1 原理:一定触发条件下,redis通过fork进程(子进程)将数据生成dump.rdb到硬盘,重启的时候redis自动恢复。3.2 dump.rdb生成触发条件:手动触发:save命令:同步执行【会阻塞进程】 如果已经存在旧的RDB文件, 会利用新的覆盖旧的bgsave

2022-02-07 16:53:03 1444

原创 数据结构与算法五:哈希表-哈希函数设计原则-哈希冲突解决方案

一、哈希表的定义:二、哈希表举例:哈希函数就是映射关系三、哈希表应用举例:Leetcode上第387题:思路:通过s.charAt(i)-'a’将字符串中的字符映射成hash表,出现一次,在相应位置加一,左后找到第一个值为1的下标其他思路:当然此题解决方案很多,如一位一位的遍历亦可以四、哈希函数:将业务场景中的键转化为索引的过程称为哈希表的核心即使再优秀的哈希表也保证不了一个键对应一个不同的索引,这就是哈希冲突哈希函数设计原则:一致性(equals相等这hash值相等)、高效性

2022-01-29 21:44:03 2835

原创 数据结构与算法四:链表

一、链表(linked list)特性:链表是一种真正的动态的数据结构;(head、next)链表的数据结构属于线性结构,但是存储结构属于链式存储结构,非顺序存储,而是每个节点(node)里存下一个节点的指针使用链表可以克服数组需要预先知道数据大小的缺点,可以存储不同的数据类型,但是增加了指针域,空间开销大链表允许在链表任意位置插入node或移除node,但是不允许随机存取链表有很多类型:单向链表、双向链表及循环链表二、单链表定义:注:在《数据结构与算法分析》这本书中,线性结构用的是结点,而

2022-01-29 21:43:44 1634

原创 数据结构与算法三:栈和队列

一、栈和队列的特性:受限的数据结构队列(Queue):先进先出 FIFO 【优先队列可以插队】栈(Stack):后进先出 LIFO【系统的ctrl+z就是维护了一个栈stack】二、栈:1.栈的定义:2.栈的操作:将数组或链表进行约束就行了3.栈的应用:题目一:LeeCode第20题成功:遇到左括号入栈,遇到右括号就与栈顶匹配,匹配都成功,且最终栈里无数据,成功。失败:匹配不成功直接失败,如都匹配完后,栈里有剩余数据,则也失败。java版:三、队列:1.队列的定义:2.队

2022-01-28 21:17:23 583

原创 数据结构与算法二:数组

一维数组:一、概述:数组在内存中是一片连续的空间且元素相同可以快速根据索引定位到某元素但是新增、删除元素的时候需要移动元素位置,效率会变低二、数组的声明与创建:1.有两种声明方式:int[] a;int a[];2.创建方式有两种:int[] a1 = new int[5]; //直接指定大小int[] a2 ={1,2}; //有多少个value就有多大三、自定义数组:1.索引(数组索引)的语意:索引可以有语意,也可以无语意,有语意如下标就是学号,能快速定位某学生;如果

2022-01-28 21:16:47 971

原创 数据结构与算法一:时间频度和时间复杂度

1.内容:一、初识数据结构和算法:1.数据结构:数据结构:是相互之间存在一种或多种关系的数据元素的集合研究什么:数据的逻辑结构与物理结构以及它们之间的相互关系数据结构包括:线性结构和非线性结构1.1 线性结构:线性结构作为最常用的数据结构,其特点数据元素之间满足唯一的线性关系,每个数据元素(除第一个和最后一个外)只有一个直接前趋和一个直接后;线性结构拥有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的,链式存储的线性表称为链表,

2022-01-28 21:16:02 2790

原创 mybatis <if>标签==不成效问题

mybatis

2022-01-25 11:19:31 1279

原创 06百万架构师核心技术设计实践——灰度发布与全链路压测

一、灰度发布:注:现在我们进入了容器化时代,一般都会用容器,如:k8s,像用nginx写lua脚本或者自己开发,过时了1.灰度发布的定义:灰度发布是互联网产品常用的一种方式(传统行业一般不用),顾名思义灰就是介于黑与白之间的颜色,就是在黑与白之间平滑过渡的一种产品发布方式。产品发布者会根据某种规则,让一部分用户使用老系统,一部分使用新系统,在此过程中,可能将会逐步完善产品,灰度发布完成后,所有用户将使用新产品功能。小故事:灰度发布又称为金丝雀发布。旷工在下矿洞是面临的一个重要危险是矿井中的毒气

2022-01-18 23:24:57 3055

原创 数据结构:rbt红黑树

本文由浅入深介绍rbt红黑树一、数组:1.特点:内存连续,储存数据类型相同,查询快,增删慢2.为什么数组查询快,增删慢?查询快原因:因为内存连续,储存数据类型相同,所以每个数据占用的内存大小已知,可以根据起始位置与下标直接找到数据地址。增删慢原因:因为如果在数组中间增删数据,增删位置后面的数据都要向前或向后移动。二、链表:1.特点:内存不连续,储存数据类型可不相同,查询慢,增删快;2.为什么链表查询慢,增删快?查询慢原因:因为链表内存不连续,储存数据类型不同,无法通过下标直接定位到数

2022-01-13 22:42:40 1247

原创 05百万架构师核心技术设计实践——熔断、降级、限流

狭义上的熔断、降级、限流一、降级(fallback):1.触发服务降级出现的情况:程序运行异常超时服务熔断触发的服务降级高并发下,信号量/线程池用完后服务降级(传送门: hystrix两种资源隔离模式.)2.服务降级的目的:系统能力有限:为了最大的ROI,保证核心服务可用,非核心服务弱可用,甚至不可用。避免服务雪崩:如果下游某服务不可用或者响应时间过长,会使得大量的线程被夯在此服务,对服务进行降级,会避免雪崩效应。3.流量高峰应对策略:流量高峰场景分为可预测(如双十一、618、

2022-01-11 19:31:44 868

原创 hystrix两种资源隔离模式

资源隔离的资源指的是上游服务所依赖的下游服务资源。 hystrix资源隔离模式有两种:信号量隔离、线程池隔离。一、信号量隔离:信号量模式从始至终都只有请求线程自身,是同步调用模式,不支持超时调用,不支持直接熔断,由于没有线程的切换,开销非常小。二、线程池隔离(默认):线程池模式可以支持异步调用,支持超时调用,支持直接熔断,存在线程切换,开销大。三、选型:上图可以看出两者最大区别在于:线程池开销大,在高并发下可能线程数不够用;优点是线程池是异步,对于网络访问请求,若发生超时,可以避免调用线程阻塞

2022-01-10 14:04:24 1487

原创 seata实战1——注册中心file、配置中心file

file注册中心和配置中心:Server端:server不比修改,就不在此贴全的了registry { # file 、nacos 、eureka、redis、zk、consul、etcd3、sofa type = "file" ---------------> 使用file作为注册中心}config { # file、nacos 、apollo、zk、consul、etcd3 type = "file" -----

2022-01-05 11:20:21 2223

原创 04百万架构师核心技术设计实践——分布式事务设计

一、出现分布式事务的原因:只跨库:单体的读写分离。注:库不仅仅指的db,还有cache只跨服务:服务拆分库未拆分,由于不同服务开启不同的的数据库链接跨库跨服务:即跨库又跨服务二、分布式事务分类:刚性分布式事务:强一致性(cp)xa、2pc、3pc柔性分布式事务(使用多):最终一致性(ap,补偿/通知)补偿性事务:TCC、saga。通过补偿性方法,使得数据恢复,属于同步事务通知性事务:事务消息、最大努力通知事务。通过第三方(MQ)通知事务下游,属于异步事务三、六大事务模型:刚

2022-01-04 22:51:35 1731

原创 BASE理论

由来:BASE理论是由eBay架构师提出的。BASE是对CAP中一致性和可用性权衡的结果,其来源于对大规模互联网分布式系统实践的总结,是基于CAP定律逐步演化而来。其核心思想是即使无法做到强一致性,但每个应用都可以根据自身业务特点,才用适当的方式来使系统打到最终一致性。定义:BASE理论是Basically Available(基本可用),Soft State(软状态)和Eventually Consistent(最终一致性)三个短语的缩写Basically Available(基本可用) :保证

2022-01-04 15:30:20 250

原创 事务ACID四大性质

原子性(A)所谓的原子性就是说,在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态。对于事务在执行中发生错误,所有的操作都会被回滚,整个事务就像从没被执行过一样。一致性(C)一致性是通过AID保证的,事务的执行必须保证系统的一致性,就拿转账为例,A有500元,B有300元,如果在一个事务里A成功转给B50元,那么不管并发多少,不管发生什么,只要事务执行成功了,那么最后A账户一定是450元,B账户一定是350元。隔离性(I)所谓的隔离性就是说,事务与事务之间不会互相影响,一.

2022-01-04 11:11:40 710

原创 03百万架构师:微服务网关案例剖析

一、业内常用的系统架构图:1.未做水平拆分的集中式架构:2.做了水平拆分的架构:二、网关的作用:功能一:请求鉴权登录鉴权,session无状态化功能二:数据包完整性验证定长的业务头:userid、cmd、session、bodylength功能三:协议转换json转二进制HashMap(String,Object)功能四:cmd路由根据cmd路由到不同的业务逻辑层功能五:系统级别的限流、降级、熔断数据包完成性检查与协议转换没什么好说的,下面主要讲解请求

2021-12-30 17:08:13 1266

原创 orcale与mysql批量插入方式对比

一、 mysql:方式一:insert into user(id,name) VALUES (1,'a'),(2,'b');方式二:insert into user(id,name) VALUES (1,'a');insert into user(id,name) VALUES (2,'b');二、oracle:方式一:insert into T_USER(USER_ID,USER_NAME) VALUES (1,'a');insert into T_USER(USER_ID,USER

2021-12-27 19:13:54 306

原创 获取当前年度、月度的两种方式

1.使用日历类Calender:2.使用日期类Date:建议使用第一种,第二种已过时。

2021-12-17 11:13:40 493

空空如也

空空如也

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

TA关注的人

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