- 博客(17)
- 资源 (3)
- 问答 (1)
- 收藏
- 关注
原创 Redis (3) 快速列表 quickList
前言Redis中是采用sdlist和ziplist来实现quicklist的,其中sdlist充当map中控器的作用,ziplist充当占用连续内存空间数组的作用。quicklist本身是一个双向无环链表,它的每一个节点都是一个ziplist。为什么这么设计呢?双向链表在插入节点上复杂度很低,但它的内存开销很大,每个节点的地址不连续,容易产生内存碎片。 ziplist是存储在一段连续的内存上,存储效率高,但是它不利于修改操作,插入和删除数都很麻烦,复杂度高,而且其需要频繁的申请释放内存,特别是zi
2021-04-07 17:24:49
175
原创 Redis(2) ziplist 压缩列表
前言Redis的压缩列表用到很多地方,比如List Hashp等,那么Redis的压缩列表到底是个啥子结构呢,本文来一起探讨源文件代码:ziplist.c ziplist.h 在这两个文件中数据结构-----------------------------------------------------------------------------------------------------------------------------------------------------
2021-04-07 09:22:37
195
原创 Redis(1) String embstr raw Int 扩容讲解
前言 本文从Redis4.0的源码进行分析,根据上图来讲解Redis 的String 字符串三种类型 使用 set a able 命令插入值 在通过debug object a 查看字符串类型 Value: 理解为字符串数据 refcount: 暂且不知,通过翻译是一个引用的意思,尝试set b able 发现引用还是1,不知道这个引用怎么改为2 这里应该有一些优化 enconding:编码类型serializedlength,l...
2021-04-01 21:22:33
1237
原创 Spring boot required a single bean, but 2 were found
今天搭建项目,写了一个service的类,发现required a single bean, but 2 were found检查了下项目里面bean的注入,应该不会有名字相同的重复注入。于是我检查提示的两个service,一个是实现,一个是接口,检查了也没问题。最后在代码里面检查,发现Mappersean("com.able") 这里扫描了到的bean,又去注册了一次。 发现是这里的原因,立马把Mappersean 包名写到dao层去。...
2021-03-09 18:05:06
888
原创 JAVA new 一个是如何创建对象的
1 类加载检查当JAVA虚拟机碰到一条new的字节码,首先会去检查指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否被加载、解析和初始化过.如果没有,则进行相对应都类加载过程。2 对象布局在类加载完成后,就进行内存布局,内存的大小在类加载的时候就可以确认大小了,为对象分配空间,其实就是在堆空间划分一块大小出来,存放刚创建的对象。对象的内存分配有两种:指针碰撞,空闲列表(1) 指针碰撞假设java堆内存空间是绝对规整的,所有被使用过的对象都是放在一起,空
2021-01-06 22:05:48
490
原创 spring-boot-starter : java.lang.IllegalStateException: Failed to load ApplicationContext
项目介绍: 自己搭建一个spring-boot-starter项目,自己写一个第三方的插件包 供自己使用代码片段如下:@Configuration//标记该类是一个配置类@ConditionalOnWebApplication//标记该自动配置类只有在 Web应用下才会生效@EnableConfigurationProperties(SpringDemo.class)//开启自动属性配置public class HelloServiceAutoConfiguration {...
2020-11-13 14:40:18
1173
原创 ReentrantLock 原理过程分析
ReentrantLock 这个是java帮我们实现的原子性,可重入的,利用cas自旋提供高并发的工作效率,个人感觉与sychronized的实现差不多,都是利用cas和阻塞实现锁. 实现有两种,分别是:FairSync(公平锁)和NonFairSync(非公平锁)FairSync 首先看公平锁,从代码 reentrantLock.lock();进入 //FairSync 公平锁加锁final void lock() { acquire(1);...
2020-10-06 11:48:30
154
原创 JAVA 每天定时任务思路,主要是解耦
注意:这里不是介绍定时任务怎么用的,是讲解的思路 我们在日常开发中,我们经常会碰到不断来的汇总任务需求,上周来了一个用户浏览汇总,本周又来了一个用户观看汇总,然后后面有来一大堆汇总任务, 这个。。。 就是有点蛋疼了,每次给我来一个 我就在代码中加一个汇总,并且还会使用spring 的定时任务,当来了N个汇总任务,汇总代码里面就乱糟糟的。而且每一个汇总,都得考虑分布式,要不...
2020-04-24 23:09:00
613
原创 Mysql replace into insert ignore 用法
insert ignore: 根据主键或者唯一索引插入数据,如果当前数据存在,则不会报错,返回结果0,如果插入成功则返回为1,其实与Update语句意思差不多,不过一个是更新,一个是插入.注意 一定要有唯一索引或者主键ID,如果没有,则使用insert ignore毫无意义。有一张如下:CREATE TABLE `able_test` ( `id` int(8) NOT NULL ...
2020-04-15 09:30:25
620
原创 浅谈 JAVA 常量池
首先,理解下啥子叫常量池, 常量池是一个放入数据的一个堆(JDK1.8中), 如果是重新创建一个相同的数据,则把引用指向常量池. 大致可以这么理解. 常量池要划分的话,那么可以划分为静态常量池和运行时常量池,class常量池不仅仅包括字符和数字这些/字面量。注意:静态常量池再运行时也会写入到运行时的常量池 静态常量池: 指的是再编译的过程中,就能确定...
2020-04-07 21:59:29
197
原创 JVM-类加载(一) 符号引用和直接引用
符号引用: 符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无歧义的定位到目标即可。例如,在Class文件中它以CONSTANT_Class_info、CONSTANT_Fieldref_info、CONSTANT_Methodref_info等类型的常量出现。符号引用与虚拟机的内存布局无关,引用的目标并不一...
2020-04-04 16:59:04
920
原创 JDK1.8 Windows linux 版本(64位) 双版本
链接: https://pan.baidu.com/s/1OlA-5q4SX3f5hxrYY7_05Q 提取码: 7fa8
2020-03-17 17:58:44
283
原创 JAVA 多态与继承调用的先后顺序
java中的多态 有两种多态的机制:编译时多态、运行时多态 1、方法的重载:重载是指同一类中有多个同名的方法,但这些方法有着不同的参数。,因此在编译时就可以确定到底调用哪个方法,它是一种编译时多态。 2、方法的覆盖:子类可以覆盖父类的方法,因此同样的方法会在父类中与子类中有着不同的表现形式。在java语言中,基类的引用变量不仅可以指向基类的实例对象,也可以...
2019-07-05 21:50:05
1102
原创 Liunx CentOS7.2 安装mysql5.6.44(懒人方式)
rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm #下载rpm文件yum repolist enabled | grep "mysql.*-community.*"yum -y install mysql-community-serversystemctl enable mysqld #...
2019-06-22 23:56:31
779
原创 Spring 项目读取微信或支付宝配置文件apiclient_cert.p12
在开发支付模块时,会去读取一些配置文件,比如微信退款,微信公众号这块。 配置文件习惯放在项目中(我比较习惯),放在项目则通过相对路劲,直接使用File去读取,在本地项目中不会有问题,放在服务器上则会找不到文件。在这里我们使用Spring 读取XML配置的代码 使用 ClassPathResource cl = new ClassPathResource("apiclie...
2018-08-07 16:33:39
15914
4
原创 cvc-elt.1: 找不到元素 'beans' 的声明。
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 4 in XML document from class path resource [beanFactoryTest.xml] is invalid; nested exception is org.xml.sax.SAXParseExcepti...
2018-08-01 16:59:03
9601
1
jdk1.8两个版本下载.txt
2020-03-31
Mybatis 调用sql server储存过程,有参数,有返回值,得到是个空值
2015-01-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人