自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 springboot 与rabbitmq集成+生产者投递确认+消费者手动确认+TTL+死信队列+延时队列

1、生产者的消息可靠性投递机制1)springboot yml文件配置spring: rabbitmq: host: 10.0.23.83 username: lifwe password: 123456 virtual-host: amq123 port: 5672 publisher-confirm-type: correlated #类型设置为correlate publisher-returns: true #需要设置weitrue

2021-03-18 15:08:28 320

原创 springboot 使用yml文件方式配置shardingsphere

1、创建maven项目,引入依赖包 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependen

2021-03-11 17:02:04 4073 2

原创 线程池介绍(状态-结构-流程)

线程池参数1) corePoolSize:核心线程数2) maximumPoolSize:最大线程数3) keepAliveTime:线程池中线程所允许的空闲时间4) unit:keepAliveTime的时间单位5) workQueue:用来保存等待执行的任务的阻塞队列的个数6) threadFactory:用于创建线程的线程工厂7) handler:线程池的饱和处理机制,当阻塞队列已经满了,且没有空闲的线程,提交的任务的处理机制线程池状态1) RUNNING(高3位位:111):表示线

2020-08-29 23:09:56 224

原创 线程的6种状态及相关介绍

线程介绍线程状态相关方法SleepWait方法Join方法Yield方法Interrupt方法isInterrupted方法isAlive方法线程类的依赖关系图如上所示:线程类实现了Runnable的run方法,run方法即是用来实现自身业务逻辑代码。线程状态线程生命周期即状态主要有New(创建)、RUNNABLE(可执行状态)、BLOCKED(阻塞状态)、WAITING(等待状态)、TIMED_WAITING(超时等待状态)、TERMINATED(中止结束状态)![在这里插入图片描述](htt

2020-08-29 18:33:12 298

原创 Idea安装java字节码信息插件

安装插件在settings项的plugins中的marketplace中找到jclasslib bytecode viewer插件,然后点击安装,重启idea。查看字节码信息打开需要查看字节码的java文件,然后点击菜单栏的view选项中找到下面圈中的,即可查看字节码过程。还可以看到底层执行的过程,以Interger对象为例,给i变量赋值,当值小于128时,可以看到走的是Integer.valueOf方法(对象池)。...

2020-08-27 21:50:42 409

原创 jvm垃圾回收的三色标记法

在上面文章中已经提到CMS的垃圾收集构成分为初始标记、并发标记、重新标记、并发清理等过程,其中初始标记和重新标记会STW(stop the world)暂停其他线程,在并发标记和并发清理时会与应用线程同时进行。CMS是采用三色标记法来进行垃圾的收集:三色标记即是用三种三色来标记对象的引用情况:黑色标记:表示此对象及其所有的引用都已经被扫描过,表明这个对象是存活的,肯定不会被垃圾回收;灰色标记:表示此对象被垃圾回收器扫描过,但是这个对象上的引用还没有被完全扫描即存在没有被扫描的对象引用(至少一个),灰色标

2020-08-21 17:28:28 1150

原创 JVM垃圾收集器介绍(二)-G1

@[TOC](G1垃圾收集器)G1垃圾收集器G1(Garbage-First):此垃圾收集器跟CMS的垃圾收集过程很相似,但是G1垃圾收集器不存在年轻代和老年代的严格的内存大小划分,只是在逻辑上还保留年轻代、老年代,同时增加了大对象区(针对占用内存较大的对象独立存放),其主要结构图为:从图中可以看出每个类型的内存都可以不连续,图中每个小格子就是一块内存区域region,默认region为2M,可通过参数-XX:G1HeapRegionSize进行调整region大小(不建议),故格子的个数=堆内存/

2020-08-18 21:30:55 157

原创 JVM垃圾收集器介绍(一)

JVM垃圾收集器一、垃圾收集算法1、标记复制法2、标记清理法3、标记整理法二、垃圾收集器1、serial2、Parallel Scavenge3、ParNew4、CMSJVM垃圾收集器器主要有serial、parallel scavenge、parNew、CMS、G1、zgc、shenandoah等垃圾收集器,本次主要介绍serial、parallel scavenge、parNew、CMS垃圾收集器。在介绍垃圾收集器之前先介绍下垃圾收集的算法一、垃圾收集算法1、标记复制法标记复制法即是将内存分为

2020-08-17 17:02:55 98

原创 JVM垃圾分代收集理论

JVM垃圾分代收集对象存储规则对象动态年龄判断大对象可能直接进入到老年区老年代空间分配担保机制对象内存回收判断JVM常用参数本章主要介绍下jvm的垃圾分代收集理论,jvm在cms之前的收集都是基于年轻代、老年代内存进行垃圾收集,其中年轻代分为eden区、s1区、s2区,老年代为old区,故堆内存主要分为eden、s1、s2、old区,eden:s1:s2的默认内存比为8:1:1,old区的内存=堆内存-eden-s1-s2内存,其默认分代年龄为15。对象存储规则1)新对象进来首先进入eden区,当ed

2020-08-14 11:22:00 371

原创 java JVM内存结构

jvm内存结构释义1、heap堆内存2、方法区3、stack栈内存4、程序计数器5、本地方法栈1、heap堆内存heap是java所有线程共享的内存区域,其存放的是基本是java所有的对象实例及数组(当然逃逸分析+标量替换技术会根据场景在线程栈上存放对象信息),对象存储信息主要包含三部分(mark word、实例数据、对齐填充),从垃圾回收角度看,heap堆也是其垃圾回收(gc)的主要内存区域,其堆内存基于分代理论进行划分,主要划分为:新生代(eden、s1、s2区)、老年代(old区)。从对象内存分

2020-08-13 17:48:57 128

原创 线程的三大特性

1、 原子性原子性指的就是一个操作是不可中断,即使有多个线程执行,一个操作开始也不会受其他线程影响,即可以理解为线程的最小执行单元,不可被分割。当然这个最小执行单元可以只是一个操作也可以是一段代码。在线程中实现原子性的操作可以为synchronized修饰或通过lock(ReenTrantLock)实现下面见示例:通过for循环创建10个线程,并对count进行自加,我们想的到的结果应该为10000,但是程序跑出的结果是变化的结果,结果是<=10000的原因是:count++这个操作其实是

2020-08-10 16:57:34 6272

原创 mysql的Explain sql分析工具介绍

Explain 分析工具可以模拟sql执行过程,我们可以借此可以发现其性能瓶颈,更精准的对sql或表结构调优。1、explain字段内容释义在Type列中查询的性能:system>const>eq_ref>ref>range>index>all,尽量不要让表走全表扫描(all级别),尽量优化在range以上(若数据量很小,那没关系)。2、explain示例下面通过几个SQL查询的例子给大家列下上面explain工具分析出现的情况,示例表user结构为:

2020-08-03 22:13:46 318

原创 mysql数据库索引介绍-最左前缀(二)

本篇文章主要从select的查询语句中来分析索引的使用。索引的最左前缀原则从上篇文章中可以看出索引其实就是一个查询性能优的有序的数据结构,那么想要在select语句中应用上索引就要明白索引的最左前缀原则。下面以一个例子来说明:user表表结构为:在user表中用(name,age,area)联合字段创建一个索引表中插入几条测试数据:此二级索引的树结构为:可以看到此索引排序的顺序为:1)首先按name字段进行排序;2)若name字段值相等,则按第二个字段age进行排序;3)若name

2020-08-01 21:35:14 181

原创 Mysql数据库索引介绍(一)

针对索引,首先给大家介绍下索引的几种类型概念:1) 聚簇索引或聚集索引:在索引中既有索引字段的数据也存储非索引字段的数据为聚簇索引,针对表数据,只有主键索引属于聚簇索引,即一张表只有一个聚簇索引也就是主键索引(innodb存储引擎是这种机制,在Myisam存储引擎中主键索引也是非聚簇索引,所有的索引都是非聚簇索引,其索引只保留索引字段信息,非索引字段数据是与索引字段信息分开存储)即聚簇索引包含所有数据,在innodb存储引擎数据文件结构就是聚簇索引和二级索引;2) 二级索引、稀疏索引:人工创建的普通索引

2020-07-31 17:08:03 113

原创 Mysql的事务隔离级别

Mysql的事务隔离级别read-uncommitted(读未提交)read-committed(读已提交)repeatable-read(重复读)serializable(串行化)read-uncommitted(读未提交)read-uncommitted(读未提交):现象在事务A中操作更新一条记录,但事务A还未提交,事务B进行查询,可以查到事务A未提交中更新后的结果,这种现象就是脏读;read-committed(读已提交)现象在事务A中操作更新一条记录,但事务A还未提交,事务B进行查询,查询不

2020-07-30 22:20:16 98

空空如也

空空如也

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

TA关注的人

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