自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (5)
  • 收藏
  • 关注

原创 Mysql为什么要使用索引,一般索引结构是什么样的?

1、Mysql引擎InnoDb下,使用索引能快速定位到数据。索引分类:主索引(一级索引,聚簇索引),二级索引(非主键索引)注:聚簇索引的特点是该列数据具有唯一性的,并不一定聚簇索引就一定是主键索引,但主键索引一定是聚簇索引。2、Mysql的索引数据结构是B+树为什么是B+tree呢,而不是单链表,或者是Btree这是B+tree的性质决定的。链表显然有致命的缺点:千万数据的索引,如果用链表作为索引,最差情况需要千万次IO,因为数据只有读到内存中才能比较是否拿到需要的数据。链表一个节点

2021-03-21 10:52:24 2715

原创 Mysql MVCC多并发版本控制

mysql mvcc理解1.mysql事务隔离级别1.1).读未提交 | read uncommitted : 读取尚未提交的数据 :就是脏读1.2).读已提交 | read committed:读取已经提交的数据 :可以解决脏读,存在重复读,幻读问题(RC)1.3).不可重复度 | repeatable read:重读读取:可以解决脏读 和 不可重复读 ,存在幻读问题(RR,mysql默认隔离级别)1.4).serializable:串行化:可以解决 脏读 不可重复读 和 幻读---相当于锁表(

2021-03-03 14:10:25 149

原创 java高级面试总结

面试总结### **Java基础** 1.Java序列化,怎么让一个字段不参与序列化,序列化serialVersionUID有什么用Redis1.速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)2.序列化两种:RDB,AOF3.怎么防止redis击穿4.redis的优势是什么5.redis有什么需要注意的地方,master不要备份,主从最好在局域网中,slave做备份6.Redis Sentinel着眼于高可用,在master宕机

2021-03-02 11:45:16 146

原创 HashMap结构

HashMap结构及版本区别1、HashMap:继承于AbstractMap,实现了Map、Cloneable、java.io.Serializable接口。是散列分布存储的,通过key/value结构实现。其中key和value都可以是null,是无序的。2、HashMap的结构2.1、jdk1.7采用数组+ 单链表的数据结构hashMap 在1.7的结构hash表是一个数组,根据索引将条目存入hash表中,如果出现hash索引相同的时候,将会以链表的形式在同一个索引处储.

2020-12-15 17:43:29 2361

原创 hashmap死锁的产生

都说hashmap是线程不安全的,多线程时候容易造成死锁死锁的原因就在扩容的时候原hashmap结构图假如如下,A、B是hashmap其中两个Entry,在扩容之前具有相同的index,形成链表结构,如图1、线程一运行到Entry A, B = A.next,运行完这行后。线程一进入线程等待(此时链表关系A.next = B)2、线程二正常运行,顺利完成扩容,在偶尔情况下恰好扩容之后A、B,在newTable中还是拥有相同的index,但此时由于经过了一次扩容,由于扩容过程也是.

2020-12-15 17:39:38 976

原创 hashMap1.7头插法及扩容

hashmap头插法是在jdk1.7之前版本中存在的。1、什么是头插法hashmap结构内部table表,当不同的元素hash相等的时候,在改位置table[i]形成链表,相同位置后来者插入到链表表头的位置 public V put(K key, V value) { if (table == EMPTY_TABLE) { inflateTable(threshold); } if (key == null)

2020-12-15 15:16:05 2513 5

原创 为什么hashmap的容量必须是2的n次幂

要明白为什么是2的n次幂,这要从hashmap的hashCode方式说起,hashmap的容量期望就是用来均匀散列存放map中的元素。hashmap根据hash值把元素放到hashmap内部数组的一个位置上。1、为什么hashmap的容量必须是2的n次幂??我们不妨先看看hashCode的原理,以String为列,获取hashCode的方法源码 public int hashCode() { int h = hash; if (h == 0 &amp...

2020-11-18 18:31:06 3071 1

原创 mysql 数据库索引b+树深度问题

常见面试题:mysql数据库一颗b+数据深度大概是多少?这要从b+树的结构和数据库索引大小去分析问题,索引字段占内存大小,指针占内存大小(6字节 6Byte,或者6B)1、先看看b+树结构下面看一颗树第一行中,1,320为索引数据排序后的数据范围,1-30,320-32 对应的是页指针,指向下一页* b+树非叶子节点存放的都是key+nest指针。叶子节点存放数据*在mysql索引b+树中,非叶子节点键值数=子节点数2、计算在mysql索引中索引页默认大小16kS.

2020-11-05 16:36:00 3822 1

原创 spring cloud feign 熔断hystrix

熔断是为了避免雪崩现象。eureka-server和eureka-provider就不在赘述。consumer项目pom<?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.a.

2020-09-24 11:56:22 2189

原创 springcloud + ribbon重试策略

1、本例采用spring cloud feign + eureka 实现2、feign底层其实用的ribbon实现负载均衡3、代码分析provider1代码如下:@Slf4j@RestControllerpublic class TestController { @GetMapping("/hello") public Object hello() throws InterruptedException { log.info("service prov

2020-09-18 18:28:54 1277

原创 spring cloud之ribbon负载均衡,eureka分布式服务注册

目录一、目标二、组成成员三、示例一、目标学会使用spring cloud ribbon进行服务负载调度,所有微服务由eureka发现注册服务。二、组成成员整个模块可以分化为3个部分:server管理中心(eureka-server),微服务群(eureka-provider),调用发起端(consumer)eureka-server:提供服务注册和发现 eureka-provider:服务提供方将自身服务注册到Eureka,从而使服务消费方能够找到(向注册中心服务注册.

2020-09-17 17:48:35 552 1

原创 vue element-ui el-form表单验证表单验证,数值输入验证踩坑

1、官网介绍表单验证使用https://element.faas.ele.me/#/zh-CN/component/form#biao-dan-yan-zheng2、所遇到的问题,当字段是数字类型的时候,输入input后,验证不通过原因是el-input默认值的类型是字符串类型输入即使是数字,也被el-input 自己处理成了字符换数字。3、解决办法<el-form-item class="base_block" label="渠道号" prop="channelId" l

2020-07-31 16:06:56 3838

原创 vue刷新浏览器后,存在全局getters的数据丢失

问题:vue项目登陆后,将用户相关信息存在getters中,然后在项目中取getters中的username显示在右上角。登陆进入后,显示没问题浏览器直接刷新后:先记录问题,解决后更新

2020-07-24 11:15:34 1393

原创 vue 启动报错,但是没有错误信息 Failed to compile with 1 errors

vue webpack2.0 有报错但是没有错误提示完全看不到错误信息,懵逼昨天还运行好好的项目,今天一来启动搞这搜了下码友们遇到类似的问题;npm run build打印出详细信息:意思就是找不到:/workspace/wp_202002/myroject_name/index.vue.html联想到我刚把其中一个module的index.vue删掉了,然后idea给我提示啥玩意,没看完就手一哆嗦点了确定。事实上,这一哆嗦修改了基础配置文件webpack..

2020-07-24 11:08:15 14658 4

原创 怎样理解快速排序

一.原理快速排序:干说原理先从数组中选出一个值,作为权重temp,然后从数组最右边high(其中一边都行)开始,向左边遍历(记最左边为low) 如果arr[high]比temp大,那么不管,high继续向左移动 如果arr[high]比temp小,那么此时 arr[low] = arr[high] 当找到第一个赋值的地方的时候,不在继续high--;这个时候从左边开始 如果arr...

2019-12-28 16:19:48 186

原创 怎样理解插入排序

插入排序,把数组从第一个元素开始,每往后一个,将后一个元素插入到前面,使得前面的是序的.给定无序数组如下:把数组的首元素5作为有序区,此时有序区只有这一个元素:第一轮让元素8和有序区的元素依次比较。8>5,所以元素8和元素5无需交换。此时有序区的元素增加到两个:第二轮让元素6和有序区的元素依次比较。6<8,所以把元素6和元素8进行交换:...

2019-12-28 10:09:09 135

原创 怎样理解选择排序

为什么叫选择排序:就是先选择出最小的放前边(最大放后边)选择排序,和冒泡排序一样,还是双层循环用内层for选择出最小,然后把最小交换到最前,只需要交换一次.原数组:[5, 8, 6, 3, 9, 2, 1, 7]第0轮[] - [5,8,6,3,9,2,1,7]剩余最小数array[6]=1.交换5和1第1轮[1] - [8,6,3,9,2,5,7]剩余最小数array[5]=2....

2019-12-27 17:02:51 173

原创 怎样理解冒泡排序

一.什么是冒泡排序1.不断比较两个相邻元素,将大的往后或者往前排,就像水里的泡泡一样,越往后越接近水面泡泡体积越大,由此得名.用图来说明:冒泡排序2.用java代码实现冒泡排序 // ============================= 第0版 开始 ====================== @Test public void sort01...

2019-12-27 13:14:40 337

原创 延迟调度实现

很多时候我们想把事件在某些事件之后执行如:提交失败的数据每隔一些时间段执行一次(1min,30min,2h)如:订单下单没有付款,第1天,第3天发短信提示一、这就需要延迟调度实现,本文介绍两种方式1、使用消息中间件rabbitmq延迟死信队列实现rabbitmq方式类图展示rabbitmqpackage cn.quantgroup.cashloanflow.confi...

2019-12-24 14:59:53 591 1

原创 认识rabbitmq死信队列

rabbitmq死信队列:当消息在队列中过期,消息就会被投放到是死信Exchangedemo地址:https://github.com/foxiaotao/springboot-rabbitmq-demo1、消息的过期分为两种:一种方式是设置队列的TTL,该队列中所有的消息的过期时间都一样,当消息过期后,消息跟根据Queue设置的死信Exchang 和routingkey路由到某个队列...

2019-12-24 14:33:15 147 1

原创 rabbitmq学习及简单运用

前言本文结合springboot学习rabbitmq(springboot版本2.2.2)demo地址:https://github.com/foxiaotao/springboot-rabbitmq-demorabbitmq就是生产者把消息放到Exchange,Exchange根据规则把消息路由到Queue,消费者从Queue消费消息。一、RabbitMq 构成1、Exc...

2019-12-20 19:48:19 317

原创 spring的BeanUtils属性copy

1、使用BeanUtils.copyProperties将一个对象的属性copy到另外一个对象中。2、copy的原理是获取需要copy属性的属性描述器(PropertyDescriptor),获取目标属性的PropertyDescriptor,并获取writeMethod,获取源属性的readMethod,将readMethod得到的结果(Object)写入到writeMethod中,所...

2019-12-02 18:04:17 3497

原创 idea 常用快捷键

Ctrl+Alt+L格式化代码shift + f6 重命名ctrl + d 复制行ctrl + shift + 上移动行ctrl + / 注释一行(ctrl + shift + / 注释多行)ctrl + enter 补全代码ctrl + g 到第几行ctrl + z 撤销 (ctrl + shift + z 取消撤销)ctrl + 鼠标,多行编辑ctrl ...

2019-11-18 16:59:32 152

原创 fastjson

jar: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.1.42</version> &l...

2019-11-16 11:36:52 108

原创 jackson

Spring Boot 内置Jackson ,所以spring boot 默认json解析为jacksonjar: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifact...

2019-11-16 11:35:58 148

原创 Gson

主要介绍Gson用法<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.0</version></dependency>json...

2019-11-16 11:35:07 210

原创 enum枚举类valueOf("name")当name不存在的时会抛出参数异常

1、通过枚举类名获取枚举类KANoticeType kaNoticeType = KANoticeType.valueOf("ss"); System.out.println(kaNoticeType == null);valueOf("name")当name不存在的时候,会抛出参数异常,并不会得到 kaNoticeType == null 的结果;异常:java.l...

2019-11-16 11:22:14 4078

原创 intellij idea 内容正则替换,看似很简单的东西,其实骚操作还是有很多的

替换快捷键ctrl+ridea 正则替换1、替换demo原:private String period_nos;目标@SerializedName("period_nos")private String period_nos;使用替换Ctrl + r替换正则private (.*) (.*);@SerializedName("$2")\npriva...

2019-11-13 16:26:09 448 1

原创 try、catch、finally用法总结

try、catch、finally用法总结:  1、不管有没有异常,finally中的代码都会执行  2、当try、catch中有return时,finally中的代码依然会继续执行  3、finally是在return后面的表达式运算之后执行的,此时并没有返回运算之后的值,而是把值保存起来,不管finally对该值做任何的改变,返回的值都不会改变,依然返回保存起来的值。也就是说方法的...

2019-11-07 19:33:08 160

原创 一个账号某一时刻只能在一处登陆

一个账号禁止多人使用,如果前一个人登陆了账号A,那么另一个人用账号A登陆将会把前一个人挤掉下线。废话多说,上菜1.定义一个全局线程安全变量 存放用户最后登陆时间2.用户登陆时,将用户登陆时间loginTime存在map中(可以用ConcurrentHashMap)key为用户id,value为用户最后登陆时间。3.登陆过程中,获取session,在session中存放用户登陆时间...

2019-11-01 11:57:09 257

原创 spring boot elastic job 整合-定时任务

一、采用当当网elastic job,实现spingboot启动注入定时任务,任务配置在数据库,可以动态加载任务配置。上干货引入jar <properties> <elastic-job.version>2.1.5</elastic-job.version> </properties> &...

2018-07-13 17:35:08 1119

原创 小白的我告诉你本地项目如何上传到github

1、进入项目所在的文件夹cd /Users/simon/Documents/workspace/wp_201804/elastic-job-springboot-starter执行:git init把这个文件夹变成Git可管理的仓库结果:Initialized empty Git repository in /Users/simon/Documents/workspace/wp_201804/el...

2018-07-13 11:03:33 192

原创 redis搭建集群mac环境,Redis版本4.0.6

1、下载最新redishttps://redis.io2、下载之后文件redis-4.0.6.tar.gz解压,得到3、安装进入到该目录make命令安装安装成功会在当前目录下,src目录下 生成redis-server命令文件4、进入utils文件夹/usr/local/redis-cluster/redis01/utils/create-clu

2017-12-07 16:14:46 239

原创 springMVC获取项目真实路径

1、原生httpservletrequest例如访问地址是:http://localhost:8080/testrequest.getContextPath(); 获取到工程名称:    /testrequest.getServletContext().getRealPath("/");  获取到实际路径例如:E:\Java\tomcat7\apache-tom

2017-03-08 17:19:21 10114

原创 Gson、fastJson、jackJson基本应用

主要介绍Gson,jackJson,fastJson等用法一、gsonhttps://blog.csdn.net/styhm/article/details/103096774二、fastJsonhttps://blog.csdn.net/styhm/article/details/103096806三、jackJsonhttps://blog.csdn.net/styh...

2017-03-08 15:27:34 3970

原创 java制造死锁

package suo;public class DeadLockTest implements Runnable{ private int flag; static Object o1 = new Object(), o2 = new Object(); //静态的对象,被DeadLockTest的所有实例对象所公用 public void run(){ Syst

2017-03-03 10:05:19 581

原创 js模拟form表单提交

var items = this.searchForm.getForm().items.items; var dataParam = this.getDailyDataParam(items); var tempform = document.createElement("form"); tempform.action = this.ctx + '/

2017-03-02 17:32:32 2403

原创 spring 启动打印所有beans

1.自定义类实现BeanPostProcessor接口import org.springframework.beans.BeansException;import org.springframework.beans.factory.config.BeanPostProcessor;public class InstantiationTracingBeanPostProcessor imp

2017-01-06 14:55:45 2896

原创 git 开发注意问题和冲突解决办法

1、分支切换,一般需要将当前分支全部提交。如不提交,考虑当前分支未提交部分是否需要merge到目标分支,如果需要,直接切换,如果不要先提交或者暂存。git checkout [branch-name] 如果[branch-name] 远程分支有,本地分支没有,则新建本地[branch-name] 分支,并跟踪至远程[branch-name] 分支;若本地[branch-name] 存在,则

2016-12-29 18:39:06 2663 1

原创 git常用命令, 使用sourceTree协助开发

git clone url 克隆远程分支项目到本地git branch -r 查看所有远程分支git branch -a 查看所有本地、远程分支git branch [new-branch-name]  创建本地新分支,依然停在当前分支git checkout [branch-name] 切换到指定分支,并更新工作区git branch -b 删除分支git merge

2016-12-29 17:54:40 768

springmvc+spring4.1.5+mybatis+maven空项目

Springmvc4.1.5+Spring4.1.5+Mybatis3.2.7+Maven的空项目,经过spring单元测试,log4j日志集成。

2017-01-06

easyui icon资源

转自博客http://download.csdn.net/detail/chun201010/8468311

2016-09-03

maven私服demo

maven私服demo

2016-08-11

通过redis同步tomcat7集群session

通过redis同步tomcat7集群session

2016-08-11

struts2的深入理解内核解析

struts2的深入理解内核解析,当请求url时候,struts容器干了什么,action什么时候被创建,valuestack什么时候被创建

2014-03-22

空空如也

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

TA关注的人

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