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

原创 HashMap 树化细节

链表长度大于8且tab长度大于64才会树化 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node<K,V>[] tab; Node<K,V> p; int n, i; if...

2020-01-19 14:24:10 855

原创 java8 steam合并两个map

java8 steam合并两个map 如果key一样的话 取value中某个较大值/** * @author kanhai * @date 2019-11-19. */public class CompletableFutureTest { public static void main(String[] args) { Map<Stri...

2019-11-20 10:09:02 5397

原创 redis集群

集群redis集群指 redis提供的分布式数据库方案、集群通过分片来进行数据共享1.节点 运行在集群模式下的redis服务 clusteer-enabled 设置是否开启集群模式 节点结构中存着clusterState结构 表示当前节点视角下集群目前的状态、集群的状态 上线还是下线,集群包含多少个节点每个节点的信息、epoch 节点通过向集群中发送cluster m...

2019-11-14 20:30:01 154

原创 怎么将jar包上传到maven私服

2019-11-13 10:45:11 928

转载 垃圾回收算法——复制算法 以及eden和survivor

复制(Copying)算法说到底也是为了解决标记-清除算法产生的那些碎片。首先将内存分为大小相等的两部分(假设A、B两部分),每次呢只使用其中的一部分(这里我们假设为A区),等这部分用完了,这时候就将这里面还能活下来的对象复制到另一部分内存(这里设为B区)中,然后把A区中的剩下部分全部清理掉。这样一来每次清理都要对一半的内存进行回收操作,这样内存碎片的问题就解决了,可以说简单,高效。...

2019-11-10 16:36:56 925

原创 Sentinel 故障转移

Sentinel 故障转移1.1检测主观下线状态 Sentinel 每秒一次的频率向所有与他创建了命令链接的实例(包括主服务器、从服务器、其他Sentinel在内)发送PING命令,并通过实例返回的PING命令回复来判断实例是否在线。 实例对PING命令的回复可以分为以下两种情况: ·有效回复:实例返回+PONG、LOADING、MASTERDOWN三种回复的其中一种。...

2019-11-07 13:24:15 633

原创 mysql 为什么使用b+树作为索引的结构

mysql 为什么使用b+树作为索引的结构一 B树的特性 1.关键字分布再整棵树的所有节点 2.任何一个关键字出现且只出现在一个节点中。 3.搜索有可能在非叶子节点结束. 4.其搜索性能等价于再关键字全集内做一次二分查找二 B+树的特性(B+树是B树的一种变形树 可以解决某些问题) 1.所有关键字都出现在叶子节点的链表中,且链表中的关键字是有序的...

2019-10-29 17:30:48 175

原创 count(常量) count(列) count(*) 的区别

count(常量) count(列) count(*) 的区别1、count(列) 返回行中 列 不为null的数量2、count(*) 返回行中包含值为null的行数 sql规范的语法 有优化3、count(1) 返回直接查询符合条件的数据库的行 查询结果跟count(*)相同 但是没有优化COUNT(*)的优化 MyISAM下 会有单独记录下表的总行数 如果使...

2019-10-22 11:28:59 1113

原创 内连接

select * from a,b where a.id=b.id ---等值连接select * from a inner join b on a.id = b.id -----内连接内连接与等值连接效果是相同的,执行效率也是一样的。只不过内连接是由SQL1999规则定的书写方式,其实这两个是一样的。select * from a left join b on a.c=b.c,将a表...

2019-08-28 09:53:47 546

原创 记一次生产环境CPU 100%排查流程

1.top 查出来占用cpu最高的pid2. top -H -p pid 查询进程中线程占用情况3.jstack pid >> aa.log 将堆栈信息输出到文件中4.将第二步中占用cpu高的线程id转换成16进制 printf %x pid 输出16进制5.根据16进制pid查询aa.log对应堆栈信息具体分析问题...

2019-08-27 15:28:58 501

原创 redis 过期删除策略和淘汰策略 -redis设计与实现笔记

三种删除策略·定时删除:在设置键的过期时间的同时,创建一个定时器(timer),让定时器在键的过期时间来临时,立即执行对键的删除操作。·惰性删除:放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键;如果没有过期,就返回该键。·定期删除:每隔一段时间,程序就对数据库进行一次检查,删除里面的过期键。至于要删除多少过期键,以及要检查多少个数据库,则由算...

2019-08-27 10:16:47 2791

原创 redis 对象的类型 -redis设计与实现笔记

https://juejin.im/post/5de3e841f265da05d03826ca?utm_source=gold_browser_extension简书上比较好的动图展示未完待续一 字符串对象有两种结构1.整数值实现的字符串对象 如果一个字符串对象保存的是整数值,并且这个整数值可以用long类型来表示,那么字符串对象会将整数值保存在字符串...

2019-08-26 20:29:45 158

原创 对分布式事务的个人理解以及rocketMQ事务消息的使用

1 分布式事务 1.1 由于分布式系统的演进我们经常会碰到两个或多个业务操作需要在不同传统数据库事务中操作的场景,比如常见实例 支付宝给余额宝转账;主要概括为以下 单台服务器需要操作多个数据库 多个服务器操作多个数据库 1.2为了解决以上场景就引入了 两阶段提交协议即分布式事务两阶段提交,对应技术上的XA、JTA/JTS。算法思路:参与...

2019-07-29 21:22:01 212

转载 java并发整理

java并发基础整理(一)java并发基础整理(二)Java并发整理——java区域(三)java并发整理—— synchronized (四)java并发整理——Atomic原子类介绍(五)java并发整理——AQS (六)java并发整理——并发容器(七)之前收藏的比较好的文章有些一段时间后就不能看了 为了长久留存所以整理一下 发到这里纯粹为了记录下来温故知新感...

2019-07-09 15:49:47 150

转载 java并发整理——并发容器(七)

一 JDK 提供的并发容器总结JDK提供的这些容器大部分在java.util.concurrent包中。ConcurrentHashMap:线程安全的HashMap CopyOnWriteArrayList:线程安全的List,在读多写少的场合性能非常好,远远好于Vector. ConcurrentLinkedQueue:高效的并发队列,使用链表实现。可以看做一个线程安全的 ...

2019-07-09 14:25:44 92

转载 java并发整理——AQS (六)

常见问题:AQS原理?;CountDownLatch和CyclicBarrier了解吗,两者的区别是什么?用过Semaphore吗?1 AQS 简单介绍AQS的全称为(AbstractQueuedSynchronizer),这个类在java.util.concurrent.locks包下面。AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步...

2019-07-09 14:14:07 92

转载 java并发整理——Atomic原子类介绍(五)

1 Atomic 原子类介绍Atomic 翻译成中文是原子的意思。在化学上,我们知道原子是构成一般物质的最小单位,在化学反应中是不可分割的。在我们这里 Atomic 是指一个操作是不可中断的。即使是在多个线程一起执行的时候,一个操作一旦开始,就不会被其他线程干扰。所以,所谓原子类说简单点就是具有原子/原子操作特征的类。并发包java.util.concurrent的原子类都存放在j...

2019-07-09 14:12:15 226

转载 java并发整理—— synchronized (四)

synchronized关键字最主要的三种使用方式的总结修饰实例方法,作用于当前对象实例加锁,进入同步代码前要获得当前对象实例的锁 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁。也就是给当前类加锁,会作用于类的所有对象实例,因为静态成员不属于任何一个实例对象,是类成员( static 表明这是该类的一个静态资源,不管new了多少个对象,只有一份,所以对该类的所...

2019-07-09 14:07:37 251

转载 Java并发整理——java内存区域(三)

基本问题:介绍下 Java 内存区域(运行时数据区) Java 对象的创建过程(五步,建议能默写出来并且要知道每一步虚拟机做了什么) 对象的访问定位的两种方式(句柄和直接指针两种方式)拓展问题:String类和常量池 8种基本类型的包装类和常量池1 概述对于 Java 程序员来说,在虚拟机自动内存管理机制下,不再需要像C/C++程序开发程序员这样为内一个 new 操作去写对应...

2019-07-09 14:05:57 277 1

转载 java并发基础整理(二)

1. synchronized 关键字1.1. 说一说自己对于 synchronized 关键字的了解synchronized关键字解决的是多个线程之间访问资源的同步性,synchronized关键字可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。另外,在 Java 早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操...

2019-07-09 14:01:36 126

转载 java并发基础整理(一)

1. 什么是线程和进程?1.1. 何为进程?进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程。如下图所示,在 windows 中通过查看任务管理器的方式,我们就可...

2019-07-09 13:58:47 163

原创 远程Debug使用方法

1.tomcat start.sh中加入以下配置declare -x CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8877"添加完成后重启tomcat2.IDEA中添加debug配置3....

2019-07-05 09:29:53 731

原创 mysql给已存在表添加主键ID字段

1.alter table anve_order add id int2.alter table `anve_order` change id id int not null auto_increment primary key;

2019-07-04 15:49:35 6433

原创 mysql 修改字符串中部分数据

UPDATE mc_source SET dataJson = REPLACE(dataJson, '"needBalance":2', '"needBalance":1') WHERE orderNo = 'VIP100929029660090';

2019-07-04 15:45:50 1212

原创 mysql 按照指定顺序排序

SELECT `ID` FROM table_name WHERE `ID` in (1,2,3,4,5) ORDER BY FIELD(`ID`,5,4,3,1,2); // 纯数字字段不用处理引号,比较好拼接SELECT `ID` FROM table_name WHERE `ID` in (1,2,3,4,5) ORDER BY FIND_IN_SET(`post_title`,'A,B...

2019-06-26 15:17:45 3638

转载 设计模式

看到的一篇比较好的设计模式的文章 转载一下https://blog.csdn.net/u011642663/article/details/90597317

2019-05-28 15:20:43 74

原创 Closing non transactional SqlSession 事务不生效——重复扫描

今天接手了个老项目在运行的时候发现日志中打印Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@376cd750]怀疑配置有问题导致事务不生效 测试了一下果然事务没有生效 不会回滚仔细检查了下配置文件 发现重复扫描的问题因为spring的cont...

2019-05-28 14:39:07 48212

原创 gitignore文件不生效

老项目添加.gitignore文件后 还是会有.gitignore文件声明的忽略文件加入了版本,那是因为在添加.gitignore前哪些文件已经加入了版本管理git rm -r --cached . // 删除本地缓存git add . // 添加要提交的文件git commit -m 'update .gitignore' // 更新本地的缓存...

2019-05-27 10:15:23 176

原创 java并发机制底层实现原理

一 volatilevolatile 变量修饰的共享变量进行写操作时转换成汇编代码时会添加LOCK前缀、 Lock前缀指令再多核处理器下会引发两件事情1、将当前处理器缓存行的数据协会到系统内存2、这个写回内存的操作会使其他cpu里面缓存了该内存地址的数据无效二 synchronized 原理与应用对于普通同步方法 锁是当前实例对象对于静态同步方法 锁是当前类...

2019-05-24 12:11:10 209

原创 kafka 什么情况下会丢失消息以及如何保证可靠的数据传递

主要三个部分会造成消息丢失 broke 端消息丢失 生产者端消息丢失 消费者端消息丢失 一 broke端消费丢失 broker端的消息不丢失,其实就是用partition副本机制来保证。 broker 端有三个重要的参数来保证消息可靠 1.复制系数主题级别配置参数是replica...

2019-05-17 14:06:59 1932

原创 springWebsocket

教程 一:jar包maven配置  https://mvnrepository.com/artifact/javax.websocket/javax.websocket-api -->dependency>    groupId>javax.websocketgroupId>    artifactId>javax.websocket-api

2017-07-02 20:01:45 333

原创 Redis的持久化

Redis的持久化方式1:RDB(Redis DataBase) 在不同时间段,将redis存储的数据生成快照进行文件存储;2:AOF(Append Only File)将redis操作数据的指令记录下来,在下次redis重新启动时,只要把这些写指令从前到后再重复执行一遍,就可以实现数据恢复了。RDB方式,是将redis某一时刻的数据持久化到磁盘中,是一种快照式

2017-04-12 16:16:33 385

原创 redis无法远程调用

redis 安装后正常启动后 在另外机器上进行telnet,或者后台应用中进行调用的时后发现链接无法建立;解决方法:1.打开 redis的 redis.config ,找到 bin 127.0.0.1 将此处进行注释,或者将127.0.0.1改为指定的ip ;使用  2.若为高版本redis(3.0之后?)也要将protected-mode修改为no;修改完正确的配置文件如大图; 重启

2017-04-12 15:35:01 566 1

原创 c3p0配置详细说明

官方文档 : http://www.mchange.com/projects/c3p0/index.html3 30 1000 false <!--c3p0将建一张名为Test的空表,并使用其自带的查询语句进行测试。如果定义了这个参数那么属性preferredTestQuery将被忽略。你不能在这张Test表上进行任何操作,它将只供c3p0测试使用。Defaul

2015-12-29 11:57:08 313

原创 poi报表导出

目前本人主要使用两种方法1.用原生的对象进行操作不使用模板,但是在表比较复杂是会有许多麻烦;2.模板法,若想生成的表格较复杂,可以先做一个空excel表格模板将样式做好,然后用输入流将整个文件读取再封装成excel对象然后进行遍历插入数据;方法一:  工具类(封装生成excel和相应样式的方法)package com.adon.util;import java.io.ByteArrayIn

2015-12-28 14:22:31 654

转载 oracle exp/imp增量备份恢复

orcale大数据备份机制

2015-12-28 10:46:12 7105 3

原创 Spring MVC AOP编程

Spring-aop配置 、 <bean id="currentPositionAop" class="com.adon.common.aop.CurrentPositionAop" scope="prototype"> <aop:after-returning method="currentPosition" returni

2015-12-24 13:45:11 447

空空如也

空空如也

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

TA关注的人

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