自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 nginx正则匹配规则

1、^: 匹配字符串的开始位置;2、 $:匹配字符串的结束位置;3、.*: .匹配任意字符,*匹配数量0到正无穷;4、. 斜杠用来转义,.匹配 . 特殊使用方法,记住记性了;5、(值1|值2|值3|值4):或匹配模式,例:(jpg|gif|png|bmp)匹配jpg或gif或png或bmp6、i不区分大小写区分大小写匹配~* 不区分大小写匹配!和!*分别为区分大小写不匹配及不区分大小写不匹配...

2021-03-03 17:22:49 880 1

转载 MySQL CPU占用超过100%

MySQL CPU占用超过100%mysql实例cpu超过100%分析当我们mysql数据库实例超过100%时,这种情况都是因sql性能问题导致,实例出现卡主现象:1.原理,cpu消耗过大有慢sql造成,慢sql包括全表扫描,扫描数据量太大,内存排序,磁盘排序,锁争用等;2.表的现象sql执行状态为:sending data,copying to tmp table,copying to tmp table on disk,sorting result,using filesort,locked;

2020-10-20 11:47:26 1024

原创 cpu高定位

一个应用占用 CPU 很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。CPU 负载过高解决问题过程:1.top查看cpu高的进程2.top -Hp 16072 (pid)查看cpu高的线程tidtop -Hp pid可以查看某个进程的线程信息-H (thread)显示线程信息,-p指定pid3. printf “%x\n” 16125(tid)线程号4.jstack 16072 | grep 3efd -A90查看代码确实有死循环。...

2020-10-17 22:13:09 181

原创 mysql索引

索引是一种数据结构,

2020-10-15 22:44:22 76

转载 冒泡排序

冒泡排序/** * @program: JavaSpecialityDeep * @author: Mr.Zerah * @create: 2018-10-25 22:52 * @description: 冒泡排序 * 冒泡排序只会操作相邻的两个数据。每次冒泡操作都会对相邻的两个元素进行比较,看是否满足大小关系要求。 * 如果不满足就让它俩互换。一次冒泡会让至少一个元素移动到它应该在的位置,重复n 次, * 就完成了 n 个数据的排序工作。 **/public class BubbleS

2020-10-13 22:20:18 117

原创 分布式事务解决方案

1.二阶段提交后续添加

2020-10-13 21:15:42 58

原创 JVM垃圾回收

JVM垃圾回收安全点方法调用,循环跳转,异常跳转的地方一般设置为安全点。安全区域线程挂起,需要使用安全区域的概念。

2020-10-13 20:12:09 71

原创 四种引用

2020-10-13 19:59:32 90

转载 TCP三次握手四次挥手

三次握手原理:1)发送端首先发送一个带有SYN(synchronize)标志地数据包给接收方。2)接收方接收后,回传一个带有SYN/ACK标志的数据包传递确认信息,表示我收到了。3)最后,发送方再回传一个带有ACK标志的数据包,代表我知道了,表示’握手‘结束。四次挥手(Four-Way-Wavehand)1.意义:当被动方收到主动方的FIN报文通知时,它仅仅表示主动方没有数据再发送给被动方了。但未必被动方所有的数据都完整的发送给了主动方,所以被动方不会马上关闭SOCKET,它可能还需要发送一些

2020-10-13 16:47:58 66

转载 mysql事务

mysql事务ACID事务并发问题1.脏读2.不可重复度 (侧重修改)3.幻读(新增、删除)事务隔离级别spring(数据库)事务隔离级别分为四种(级别递减):1、Serializable (串行化):最严格的级别,事务串行执行,资源消耗最大;2、REPEATABLE READ(重复读) :保证了一个事务不会修改已经由另一个事务读取但未提交(回滚)的数据。避免了“脏读取”和“不可重复读取”的情况,但不能避免“幻读”,但是带来了更多的性能损失。3、READ COMMITTED (提交读)

2020-10-13 15:46:50 90

转载 快速排序

算法基本思想从数列中挑出一个元素,称为 “基准”(pivot);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。实现package com.gupao.controllers;import java.util.Arrays;public class TestQu

2020-10-13 15:05:11 51

转载 类加载机制

类加载机制JVM类加载机制分为五个部分:加载,验证,准备,解析,初始化加载字节码加载到内存中校验:此阶段主要确保Class文件的字节流中包含的信息符合当前虚拟机的要求,并且不会危害虚拟机的自身安全。文件格式验证:基于字节流验证。元数据验证:基于方法区的存储结构验证。字节码验证:基于方法区的存储结构验证。符号引用验证:基于方法区的存储结构验证。准备为类变量分配内存,并将其初始化为默认值。解析:把类型中的符号引用转换为直接引用。主要有以下四种:类或接口、字段、类方法、接口方法的解析

2020-10-13 13:14:42 62

原创 并发小小梳理

缓存一致性协议MESIØ M(Modified) 修改缓存,当前 CPU 缓存已经被修改,表示已经和内存中的数据不一致了Ø I(Invalid) 失效缓存,说明 CPU 的缓存已经不能使用了Ø E(Exclusive) 独占缓存,当前 cpu 的缓存和内存中数据保持一直,而且其他处理器没有缓存该数据Ø S(Shared) 共享缓存,数据和内存中数据一致,并且该数据存在多个 cpu缓存中每个 Core 的 Cache 控制器不仅知道自己的读写操作,也监听其它 Cache 的读写操作,嗅探(

2020-10-12 23:24:24 141

原创 ReentrantLock 的实现原理简析

ReentrantLock 的实现原理在 Lock 中,用到了一个同步队列 AQS,全称AbstractQueuedSynchronizer,它是一个同步工具也是 Lock 用来实现线程同步的核心组件。AQS 的功能分为两种:独占和共享独占锁,每次只能有一个线程持有锁,ReentrantLock 就是以独占方式实现的互斥锁。共 享 锁 , 允 许 多 个 线 程 同 时 获 取 锁 , 并 发 访 问 共 享 资 源 , 比 如ReentrantReadWriteLock。AQS 队列内部维护的是

2020-10-12 21:48:58 297

原创 ABA

aba的问题使用AtomicStampedReference使用版本号来解决,其实用的还是cas,静态内部类中封装了stampprivate static class Pair<T> { final T reference; final int stamp; private Pair(T reference, int stamp) { this.reference = reference; thi

2020-10-12 18:29:50 177

原创 ConcurrentHashMap 实现原理简析

ConcurrentHashMap 实现原理jdk1.7jdk 1.7中使用分段锁。 ConrruentHashMap 由一个个 Segment 组成,简单来说,ConcurrentHashMap 是一个 Segment 数组,它通过继承ReentrantLock 来进行加锁,通过每次锁住一个 segment来保证每个 segment内的操作的线程安全性从而实现全局线程安全。理论上可以同时支持 16 个线程的并发写入。jdk1.81.8中直接使用 Node 数组来保存数据,并且采用 Node 数组元

2020-10-12 17:30:26 251

原创 spring依赖注入

依赖注入触发方式:1.getbean触发2.lazy-init=false,即让容器在解析注册 Bean 定义时进行预实例化触发。如果 Bean 定义的单例模式(Singleton),则容器在创建之前先从缓存中查找,以确保整个容器中只存在一个实例对象。如果 Bean定义的是原型模式(Prototype),则容器每次都会创建一个新的实例对象。除此之外,Bean 定义还可以扩展为指定其生命周期范围。依赖注入2个阶段:(1).createBeanInstance:生成 Bean 所包含的 java 对象

2020-10-12 14:25:46 71

原创 spring ioc加载

spring ioc容器初始化ioc容器创建过程:定位、载入、注册XmlBeanFactory//根据 Xml 配置文件创建 Resource 资源对象,该对象中包含了 BeanDefinition 的信息ClassPathResource resource =new ClassPathResource("application-context.xml");//创建 DefaultListableBeanFactoryDefaultListableBeanFactory factory =new

2020-10-10 22:38:24 74

原创 redis

rewrite机制:aof里存放了所有的redis 操作指令,当aof文件达到一定条件或者手动bgrewriteaof命令都可以触发rewrite。rewrite之后aof文件会保存keys的最后的状态,清除掉之前冗余的,来缩小这个文件。自动触发的条件:long long growth =(server.appendonly_current_size*100/base) - 100;if (growth >=server.auto_aofrewrite_perc)在配置文件里设置过:au

2020-10-09 21:49:02 72

转载 多线程分段处理list集合

多线程分段处理list集合package com.zving.util;import java.util.ArrayList;import java.util.List;import java.util.concurrent.Callable;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * 多线程分段处理List集合 * 场景:大数据List集合,需要对Li

2020-10-09 18:14:13 325

转载 spring中使用redis事务

https://www.cnblogs.com/grey-wolf/p/10142937.html`//execute a transactionList txResults = redisTemplate.execute(new SessionCallback<List>() {public List execute(RedisOperations operations) throws DataAccessException {operations.multi();operation

2020-05-28 17:22:09 139

转载 spring事务隔离级别和传播机制

https://www.cnblogs.com/mseddl/p/11577846.htmlhttps://www.cnblogs.com/eunice-sun/p/11024584.html

2020-05-28 16:15:22 118

转载 mysql分页查询性能优化

https://blog.csdn.net/justlpf/article/details/81507586https://www.w3cschool.cn/mysql/mysql-xilz2oy6.htmlhttps://blog.csdn.net/zl1zl2zl3/article/details/83500968

2019-07-31 11:52:00 87

转载 JS中对ID和CLASS属性进行模糊查询

document.querySelector(‘a[class$="-close"]’);选择所有 class 以 -close 结尾的元素document.querySelector(‘a[class^=“r4”]’);$(‘input[id^=_gdfile]’).attr(“disabled”, true);https://segmentfault.com/q/10100000042...

2019-07-29 14:10:18 2176

转载 Connection is read-only. Queries leading to data modification are not allowed

Connection is read-only. Queries leading to data modification are not allowedhttps://www.cnblogs.com/fiving1314/p/8534680.html

2019-07-29 11:49:43 109

原创 springMVC传参过程中遇到这样一个错误:Could not instantiate bean class [java.util.List]: Specified class is an inte

springMVC传参过程中遇到这样一个错误:Could not instantiate bean class [java.util.List]: Specified class is an interface] with root cause解决方案:ArrayList<MultipartFile> files5 将List接口改为ArrayList即可....

2019-07-17 09:44:17 922

转载 java微信公众号图文消息

https://www.cnblogs.com/sharpest/p/10236842.html

2019-07-09 20:08:26 684

转载 线上CPU高排查

https://www.cnblogs.com/paul8339/p/7464206.html1.使用top 定位到占用CPU高的进程PIDtop通过ps aux | grep PID命令2.获取线程信息,并找到占用CPU高的线程ps -mp pid -o THREAD,tid,time | sort -rn3.将需要的线程ID转换为16进制格式printf “%x\n” tid4...

2019-06-26 10:17:51 230

转载 mysql

MySQL 数据类型https://www.runoob.com/mysql/mysql-data-types.htmlMysql数据类型DECIMAL(M,D)用法https://www.cnblogs.com/fnlingnzb-learner/p/8108119.html

2019-05-27 10:58:11 68

转载 Js编码和Java后台解码

Js编码和Java后台解码在对后台java程序里的searchtext赋值的时候,本身已经使用了一次解码,不过解码的结果依然不对。所以我们可以在页面上进行两次编码操作,这样后台自动的那次就可以抵消掉一次,然后在使用searchtext=java.net.URLDecoder.decode(searchtext,“UTF-8”);/需要处理异常/进行一次解码就好了。https://www.cnb...

2019-05-14 15:18:16 615

转载 史上最简单的 SpringCloud 教程 | 第一篇: 服务的注册与发现Eureka(Finchley版本)

转自https://blog.csdn.net/forezp/article/details/81040925

2019-03-06 15:21:23 70

转载 redis单线程为什么效率很高

转自 https://blog.csdn.net/tyrroo/article/details/82429801一、前言近乎所有与Java相关的面试都会问到缓存的问题,基础一点的会问到什么是“二八定律”、什么是“热数据和冷数据”,复杂一点的会问到缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题,这些看似不常见的概念,都与我们的缓存服务器相关,一般常用的缓存服务器有Redis、Memca...

2019-03-01 17:50:22 174

转载 Java并发编程:线程池的使用

转自https://www.cnblogs.com/dolphin0520/p/3932921.html线程池  1)首先,要清楚corePoolSize和maximumPoolSize的含义;  2)其次,要知道Worker是用来起到什么作用的;  3)要知道任务提交给线程池之后的处理策略,这里总结一下主要有4点:如果当前线程池中的线程数目小于corePoolSize,则每来一个任务,...

2019-03-01 16:55:45 65

转载 spring非侵入式理解

假设大家都想要把用户代码塞到一个框架里。侵入式的做法就是要求用户代码“知道”框架的代码,表现为用户代码需要继承框架提供的类。非侵入式则不需要用户代码引入框架代码的信息,从类的编写者角度来看,察觉不到框架的存在。例如:1)使用struts的时候,我需要继承一些struts的类,这时struts侵入到了我的代码里。2)使用spring,编写一些业务类的时候不需要继承spring特定的类,通过配置...

2019-02-27 16:53:19 732

转载 synchronized代码分析

public class TestSync2 implements Runnable { int b = 100; public static void main(String[] args) throws InterruptedException { TestSync2 tt = new TestSync2();//锁的是实例对象 Thread ...

2019-02-27 16:07:13 86

转载 hiberbate mybatis ibatis对比

https://www.cnblogs.com/inspurhaitian/p/4647485.htmlhttps://blog.csdn.net/qq_21033663/article/details/50281161ibatis与mybatis区别?ibatis是mybatis的前身,在2010年7\8月份ibatis所项目移到了google,就将ibatis3.x正式改名为mybati...

2019-02-27 15:58:30 138

转载 白话讲排序系列(六) 堆排序(绝对让你明白堆排序!)

https://blog.csdn.net/u013384984/article/details/79496052

2019-02-26 14:03:01 129

转载 Spring单实例、多线程安全、事务解析

https://blog.csdn.net/c289054531/article/details/9196053#commentBox

2019-02-22 16:47:33 139

转载 java中线程同步的理解(非常通俗易懂)

转自https://blog.csdn.net/qq_39285447/article/details/78995092Java中线程同步的理解我们可以在计算机上运行各种计算机软件程序。每一个运行的程序可能包括多个独立运行的线程(Thread)。线程(Thread)是一份独立运行的程序,有自己专用的运行栈。线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一...

2019-02-22 16:45:10 847 1

原创 优雅的终止线程

thread.interrupt();线程的终止,并不是简单的调用 stop 命令,stop 方法在结束一个线程时并不会保证线程的资源正常释放,因此会导致程序可能出现一些不确定的状态。要优雅的去中断一个线程,在线程中提供了一个 interrupt 方法.interrupt 方法当其他线程通过调用当前线程的 interrupt 方法,表示向当前线程打个招呼,告诉他可以中断线程的执行了,至...

2019-02-20 11:32:04 205

空空如也

空空如也

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

TA关注的人

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