自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 kubernetes 1.24.1安装记录

kubernetes 1.24.1安装记录 根据官方文档搭建

2022-09-05 01:19:21 340 1

原创 bootstrap 类样式中的 mt mb ml mr mx my pt pb pl pr px py 含义

x - 设置padding-left和padding-right或margin-left和margin-right。y - 设置padding-top和padding-bottom或margin-top和margin-bottom。1 – 将边距或填充设置为.25rem(如果font-size为16px则为4px)5 – 将边距或填充设置为3rem(如果font-size为16px则为48px)3 – 将边距或填充设置为1rem(如果字体大小为16px,则为16px)0 – 将边距或填充设置为0。

2022-08-21 21:49:29 3890

原创 在线GC日志分析工具——GCeasy

在线GC日志分析工具——GCeasy

2022-07-28 16:39:41 1752

原创 redis源码优化--绑核

参考《redis核心技术与实践》完成了redis代码优化修改了《redis核心技术与实践》其中代码出现的小问题

2022-07-25 00:08:00 523

原创 NIO知识点

文件描述符概念系统调用(函数)有一个int类型的返回值,这个返回值就是文件描述符select1、应用程序创建socket,生成文件描述符,并生成bitmap,使用hash的方式将bitmap的对应位置置一。2、执行系统调用,将bitmap拷贝至内核空间,根据bitmap遍历对应的文件描述符,一旦有事件产生就返回。3、用户程序遍历文件描述符,处理请求。4、应用程序不停的调用select即可。poll。...

2022-07-21 18:04:27 128

原创 springboot自动配置原理

springboot自动配置原理 1. @EnableAutoConfiguration 注解内部使用 @Import(AutoConfigurationImportSelector.class)来加载配置类。 2. 配置文件位置:META-INF/spring.factories,该配置文件中定义了大量的配置类,当 SpringBoot应用启动时,会自动加载这些配置类,初始化Bean。 3. 但并不是所有的Bean都会被初始化,会通过在配置类中使用@Conditional来加载满足条件的Be...

2022-07-12 01:08:31 126

原创 Mysql主从复制搭建、Redis集群(Docker版本)

基于docker安装mysql主从集群,redis集群

2022-07-11 02:24:45 203

原创 docker、fastDFS安装使用记录

1 . fastDfs工作原理2.安装docker安装教程 https://docs.docker.com/engine/install/centos/2.1 Docker安装2.1.1卸载旧版本yum remove docker \ docker-client \ docker-client-latest \ docker-common \ doc

2022-05-27 13:40:06 246

原创 mysql binlog二进制文件操作

1.查看是否启用日志二进制show variables like 'log_bin'ON是开启(默认是ON)2.查看二进制文件日志列表show binary logs3.

2022-05-16 16:54:11 232

原创 IO&&NIO

目录File类IO流字节流字符流异常处理Properties一、File类1.1概述java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找、删除等操作1.2构造方法public File(String pathname) :通过给定的路径名字符串转化为抽象路径名来创建新的File实例public File(String parent,String child):从父路径名字符串和子路径名字符串创建新的File实例public File(File

2022-05-04 21:40:58 101

原创 对象的逃逸分析

首先要了解java对象内存是一定存在堆上的吗?在jdk1.7之前,对象的创建都是在堆空间创建的,但在1.7的版本之后,HotSpot中默认开启了逃逸分析,所以对象还可能存在栈上。1.如何判断是否发生逃逸分析发生逃逸分析的情况:也就是该user对象有可能会被外部使用public User test2(){ User user=new User(); user.setId(1); user.setName("xiaoming") return user;}没有发生逃逸分析的情况:该us

2022-04-16 00:27:42 573

原创 简单工厂&&工厂模式&&抽象工厂

简单工厂模式简单工厂模式又称静态工厂方法,它属于类创建型模式。在简单工厂模式中,可以根据参数的不同返回不同类的实例。简单工厂模式专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类应用JDK中工具类DateFormat中根据传入不同的参数,返回不同的子类(日期的、时间、日期时间的)代码实现:public class SimpleFactory{ public static Product createProduct(String type){ if(type.equals

2022-04-07 20:37:11 175

原创 scheduled定时任务

1.导入依赖 <!-- scheduled定时任务 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> </dependency>2.启动类上加上注解@EnableScheduling@SpringBoot

2022-04-01 16:53:22 149

原创 手动实现自己的springboot-starter的学习记录

spring-configuration-metadata.json存储是yml文件的提示信息spring.factories:记录项目包外需要注册的bean类名AutoConfigurationSayHello类:@ConfigurationProperties注解用于自动配置绑定,可以将application.properties配置中的值注入到bean对象上。maven install导入项目后yml的配置springboot-starter的实现总结:1、spring-conf

2022-03-31 23:58:55 86

原创 Maven常见命令

2022-03-24 00:24:12 567

原创 Mybatis的一级二级缓存

一级缓存一级缓存是sqlsession级别的缓存,(默认开启),也称本地缓存,在sqlsession开启到关闭之间有效,使用同一条查询语句是有缓存的,也就是只查一次sql,其他的走缓存,但如果中间有增删改操作、被LRU算法淘汰掉的时候、手动清理缓存(clearCache()方法)都会造成缓存失效。二级缓存二级缓存也叫做全局缓存,他是基于namespace级别的缓存,在一个mapper.xml生效如果会话关闭或者提交了,一级缓存就会保存到二级缓存中不同的mapper对应着对应的不同的缓存...

2022-03-24 00:21:34 114

原创 IP地址互换为十进制

IP地址转换为十进制public class IPConfig { public static void main(String[] args) { String ip="192.168.1.1"; String[] split = ip.split("\\."); Long rs=0L; for(int i=0,j=split.length-1;i<split.length;j--,i++){ Syst

2022-03-19 13:22:41 3218

原创 LRU算法和Redis的近似LRU算法

LRU算法是最近最少使用,通过维护链表的形式,每次使用数据都会移到链表的表头。这样链表的尾部就是最近最少使用的。但是Redis对LRU算法进行了改进,对每个key都加上了时间戳,通过随机选5 个key,淘汰其中最旧的key。LRU会将所有使用到的key都进行处理,所以Redis中的LRU更节省内存...

2022-03-18 15:41:52 880

原创 IOC和AOP

IOC的实现首先通过xml配置文件获取创建的对象,然后通个创建工厂类中通过xml解析(dom4f)创建的对象,并通过反射的方式创建对象,这样就可以解耦合IOC的思想IOC思想是基于IOC容器完成的,IOC容器的底层就是对象工厂通过applicationContext接口和BeanFactory接口去加载配置文件。BeanFactoryBeanFactory在加载配置文件时不会去创建对象,只有在获取或者使用对象的时候才会去创建。applicationContextapplicationCo

2022-03-17 00:22:58 354

原创 Explain的使用

注意:1.查询优化器会将子查询转换为多表查询的情况2.union去重会创建临时的表,所以使用explain查询的数据会多一个临时表,表名就是union表1,表2,并且id=nullid:一个语句中用几个select就对应着几行数据,并且数字对应着第几个select比如对应这id=1,id=2table:语句中涉及几张表就涉及几行数据type为range、index、All则不理想...

2022-03-15 18:13:24 306

原创 红黑树的特性

每个节点非黑即红根节点是黑色所有的叶节点都是空节点,并且是黑色的。每个红节点的子节点是黑色任意节点到叶子节点的每条路径黑节点个数相同TreeMap对输入的值采用的红黑色的中序遍历......

2022-03-13 23:21:23 305

原创 ThreadLocal、InheritableThreadLocal 和TransmittableThreadLocal 的区别

描述用途ThreadLocal线程本地变量线程本地存储InheritableThreadLocal可继承的线程本地变量线程本地存储、线程间共享TransmittableThreadLocal (阿里开源的,需要导包)可传递的线程本地变量线程本地存储、线程间共享、线程池共享注:其存储功能体现在Thread,ThreadLocal只能操作本地数据,底层是通过ThreadLocalMap实现的,而ThreadLocalMap类通过key为ThreadLocal类...

2022-03-12 19:14:14 518

原创 Springcloud复习篇

nacos服务治理服务注册+服务发现启动nacoswin: startup.cmdlinux:startup.sh账号密码:nacos 、nacos服务注册启动两个服务服务发现provider为服务名 //自动转载,所以直接用 @Autowired private DiscoveryClient discoveryClient; @GetMapping("/instances") public List<ServiceInstance&gt

2022-03-09 00:51:35 125

原创 CAS算法

1.概念CAS是比较并交换,在java并发包中很多都使用到了这种算法,比如currentHashMap、AtomicInteger原子类操作。CAS操作涉及三个值,第一个是预期值、第二个是内存中的值、第三个是即将修改成值,当预期值等于内存中的值,会将即将修改成值,修改带内存中,否则他不做修改。2.举例cout++他不是原子操作 通过字节码(javap -c)可以看出,count++是通过将两个值依次压入栈顶,然后相加再压入栈顶,然后再赋值给count,所以有三个步骤,在多线程的情况下,就会造成cou

2022-03-08 22:26:52 371

原创 ArrayList获取最大元素,获取最大元素的下标

ArrayList获取最大元素:Collections.max(list) ArrayList<Integer> integers = new ArrayList<>(); integers.add(11); integers.add(12); integers.add(13); integers.add(14); integers.add(15); integers

2022-03-07 19:04:31 1386

原创 Runable和Callable区别

1.接口的实现方法不同Runable接口需要实现run方法Callable接口需要实现call方法2.异常情况Runable接口的run()不能抛出异常,只能在方法内部处理Callable接口的call()允许抛出异常3.返回值Runable接口的run()没有返回值Callable接口的call()可以通过futureTask.get()方法获取执行结果,但该方法会阻塞主线程,必须等待子线程执行完成返回结果...

2022-03-07 18:44:00 680

原创 Spring事务传播特征

事务行为的类别单独调用外部存在事务使用方式required(默认)开启新的事务融合到外部事务中增删改的情况supports不启新的事务融合到外部事务中查询的情况requires_new开启新的事务不要外部事务,创建新事务内部事务和外部事务不存在业务关系,如日志...

2022-03-06 16:28:28 211

原创 fail-safe机制与fail-fast机制

fail-safe机制与fail-fast机制是多线程并发操作下的失败处理机制fail-fast机制表示快速失败比如在集合遍历过程中,发现数据被修改过,就会立刻抛出异常这种常见的集合有ArrayList和hashmap等等fail-safe机制表示失败安全这种机制不会抛出异常,原因是在复制的集合上遍历的。在java.util.concurrent下的包都是这种机制这种常见的有ConcurrentHashMap以及copyOnWriteArrayList等...

2022-03-05 12:24:43 427

原创 @Autowired和@Resource的区别

共同点自动注入bean的功能区别1.包含的属性不同:@Autowired只包含一个参数,表示的是是否要开启自动注入@Rescoure包含七个参数 ,其中最重要的两个参数的是name(name表示bean的名称)和type(表示需要注入的类型)2.注解的出处不同:@Autowired是spring的,所以只能在spring框架下使用@Rescoure是JDK的,可以和其他框架下使用3.自动装配的方式不同@Autowired默认是按bytype自动装配的(如果要使用byname,则

2022-03-05 01:05:56 294

原创 WebSocket报文协议

第一个字节:第1位(1位):0表示报文没有结束,1表示报文结束第2~4位(3位):保留字段,一般全部为0,扩展自己的协议第5~8位(3位):报文类型,1为文本,2位二进制,8为连接关闭,9位ping,10位pong第二个字节第1位(1位):1表示需要掩码操作,0表示不需要。这里写死的是17位,7+16位,7+64位如果值是0~125,则真实长度就是前7位表示如果值是126,则真实长度就是后16位如果值是127,则真实长度就是后64位剩下的字节就是消息体误区注意:webSocket并

2022-03-04 22:36:19 1169

原创 UML类图的关系总结

在UML类图中,常见的有以下几种关系:泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)具体内容

2022-02-24 15:48:52 209

原创 接口handlerinterceptor中 preHandle、postHandle与afterCompletion的使用

preHandle调用时间:Controller方法处理之前执行顺序:链式Intercepter情况下,Intercepter按照声明的顺序一个接一个执行若返回false,则中断执行,注意:不会进入afterCompletionpostHandle调用前提:preHandle返回true调用时间:Controller方法处理完之后,DispatcherServlet进行视图的渲染之前,也就是说在这个方法中你可以对ModelAndView进行操作执行顺序:链式Intercepter情况下,

2022-02-22 18:36:48 777

原创 Liunx常用指令回顾

将该目录下的文件压缩为111.zip:zip -r 111.zip /appdata/tomcat-9将111.zip解压:unzip 111.zip可读可写可执行:chmod 777 /xxxx/xxx.zip执行权限:chmod u+x ./文件名杀死进程: kill -9 pid(进程号)获取进程号:ps -ef将test移到test2中:mv test1 test2cp 将当前目录 test/ 下的所有文件复制到新目录 newtest 下:cp –r test/ newtest实时.

2022-02-08 23:44:57 515

原创 ThreadLocal源码阅读

set的入口函数过程:获取当前线程获取当前线程属性ThreadLocalMap判断当前线程属性ThreadLocalMap是否为null如果不为空,则直接设置值如果为空,则创建ThreadLocalMap创建ThreadLocalMap调用ThreadLocalMap的有参构建器ThreadLocalMap的有参构建器创建table,也就是给Entry[]赋值。其中,INITIAL_CAPACITY是16通过hashcode&INITIAL_CAPACITY按位于

2022-02-05 21:34:47 355

原创 LeetCode整合(1)二叉树

1. LeetCode94.二叉树的中序遍历 2. LeetCode101.对称二叉树 3. LeetCode104.二叉树的最大深度 4. LeetCode226.翻转二叉树 5. LeetCode543.二叉树的直径 6. LeetCode124.二叉树中的最大路径合 7. LeetCode687.最长同值路径 8. LeetCode617.合并二叉树

2022-02-04 18:19:04 971

原创 Java 中用到的线程调度算法是什么?

有两种调度模型:分时调度模型和抢占式(java默认使用)调度模型。分时调度模型: 平均分配每个线程占用的 CPU 的时间片。抢占式调度模型: 让优先级高的线程占用CPU,如果线程优先级相同,那么就随机选择一个线程。...

2022-02-03 18:49:53 1373

原创 MySQL索引复习篇

1.聚集索引(主键索引)InnoDB引擎是B+树索引组织而成的。B+树的叶子节点存储的都是数据段的数据InnoDB对数据的存储必须依赖于主键,主键对应的索引叫聚集索引。假设你没有建主键,InnoDB会从表中寻找第一个非空的唯一索引作为聚集索引,但如果这也找不到,会生成一个不可见的ROW_ID的列,该列是一个6字节的自增数字,用来生成聚集索引。对于ROW_ID列的自增实现其实是来自于一个全局自增序列,这意味着所有使用到ROW_ID作为聚集索引的表都共享该序列,如果在高并发的情况就有保证不了唯一性的可能

2022-02-01 23:43:51 1126

原创 MongoDB的使用及评论功能实战

1.方式:命令行参数方式启动服务在 bin 目录中打开命令行提示符,输入如下命令:mongod --dbpath=..\data\db2.文档的插入(1)单个文档插入使用insert() 或 save() 方法向集合中插入文档,语法如下:db.comment.insert({"articleid":"100000","content":"今天天气真好,阳光明媚","userid":"1001","nickname":"Rose","createdatetime":new Date(),

2022-02-01 15:50:10 1596

原创 JUC(7) 锁

1. 公平锁和非公平锁概念公平锁:非常公平,线程之间不可以插队非公平锁:非常不公平,线程之间可以插队(默认)比如2ms能比20ms先执行Lock锁源码: //无参构造: 默认非公平锁 /** * Creates an instance of {@code ReentrantLock}. * This is equivalent to using {@code ReentrantLock(false)}. */ public ReentrantLock(

2022-01-30 20:28:25 79

原创 在IDEA上使用git命令删除GitHub上的文件或文件夹

在IDEA的终端输入如下代码:# 删除名字为.idea的文件夹git rm -r --cached .idea # 提交到gitgit commit -m '删除.idea文件夹' # 推送到GitHubgit push -u origin master# 删除所有以sql为后缀的文件git rm -r --cached *.sql # 提交到gitgit commit -m '删除所有以sql为后缀的文件' # 推送到GitHubgit push -u or.

2022-01-30 15:50:08 1649

空空如也

空空如也

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

TA关注的人

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