自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 idea报程序包不存在,但可以跳转,不爆红

我是在pom有修改的情况下 进行了git stash操作,之后修改过一些文件后unstash回来时,编码一切正常,但一编译就报错。打开run anything 窗口 (双击ctrl)使idea重新生成工作目录文件即可。输入 mvn idea:idea。

2023-03-10 14:58:45 681 1

原创 kafka入门到实战三(单线程实现顺序消费,含demo)

kafka入门到实战三(单线程实现顺序消费,含demo)

2023-03-02 16:57:41 954

原创 kafka入门到实战二(使用docker搭建kafka集群)

使用docker搭建kafka集群

2023-03-02 15:04:50 666

原创 kafka入门到实战一(认识kafka)

本次kafka的学习打算从三方面开始* 认识kafka,掌握基础知识* 搭建kafka,为使用kafka创建条件* 使用kafka,基本的使用和解决顺序消费等问题

2023-03-02 15:01:30 431

原创 Spring源码解析(一)循环依赖

​ 本章将通过源码的方式去解释spring是如何解决循环依赖的,可以直接找一个springboot项目或者spring项目,全局搜索即可跟随学习。

2022-07-25 10:53:14 430

原创 《一步一步看源码:Nacos》框架源码系列之一(其二,服务注册源码)

一步步带你看nacos服务注册源码

2022-07-11 09:30:47 487

原创 《一步一步看源码:Nacos》框架源码系列之一(其1,配置服务源码)

naocs源码,配置服务源码解析

2022-06-29 10:18:17 907

转载 virtualbox扩容的两种方法

virtualbox扩容的两种方法

2022-02-18 13:58:35 1226

原创 《玩转JVM之垃圾收集器》

《玩转JVM之垃圾收集器》垃圾回收器分类方式串行垃圾回收器(Serial)or并行垃圾回收器。新生代垃圾回收器or老年代垃圾回收器单进程垃圾回收器or多线程垃圾回收器我们这里按串行和并行垃圾回收器进行介绍,主要讲述G1和CMS面试常问垃圾回收处理器。串行垃圾回收器-Serial串行垃圾回收器特点:只使用单线程进行GC(CPU只有一个,单线程的效率比较高,因为CPU比较专注。多线程得考虑页面切换问题)独占式的GC(STW,Stop-The-World,为了获取停止时

2021-06-28 00:15:40 209 4

原创 《一步一步看源码:HashMap》容器源码系列之三(其1,数据结构,put方法,树化方法)

Hashmap​ 底层数据结构:JDK1.7散列表(数组+链表),JDK1.8数组+链表/红黑树,这里我详细给大家介绍一下,当然想了解树的演变过程可以看我的下一篇文章。下面,先开始讲数据结构:底层数据结构散列表先带大家认识下散列表,散列表就是数组+链表:当数据进入时,会先拿到该元素的hash值给到数组,然后再有相同的hash值的数据进入到数组中的话,就会进行哈希碰撞,碰撞有两个方法(拉链法和开放定址法)。拉链法:当一个元素存储进散列表的时候,会先计算哈希值,然后放到数组里。遇到下一个放进来的

2021-06-25 12:19:54 418 3

原创 《一步一步看源码:LinkedList》容器源码系列之二

LinkedList底层数据结构:双向链表(每个队列都有独立的前置结点指针+后置结点指针+元素) private static class Node<E> { E item; //队列存储的元素 Node<E> next; //后置结点指针 Node<E> prev; //前置结点指针 Node(Node<E> prev, E element, Node<E> next)

2021-06-23 13:39:05 133 1

原创 《一步一步看源码:ArrayList》容器源码系列之一

题容器源码温馨提醒:idea的进入源码只要点击鼠标滑轮,返回上级只要输入Ctrl+alt+←ArrayList:底层数据结构:数组,没什么好说的,后续比如链表或者红黑树,我会细讲。 public ArrayList() { this.elementData = DEFAULTCAPACITY_EMPTY_ELEMENTDATA;//(值为空{},空数组) } Add方法:(面试可以秀一下grow过程)第一次新增元素,minCapacity=size+1=0+1

2021-06-23 13:36:55 112

原创 设计模式系列《责任链模式》

责任链模式责任链模式: 为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。上面的解释很晦涩,说白了就是看不太懂,下面我来说人话。举例说明例子:我们的正常的请求像一堆杂物一样,比如里面有大米,有鸡蛋,有小孩的奶粉和一坨屎。那我们的客户想要做饭,那就必须先过滤掉鸡蛋和奶粉还有屎对吧。毕竟又不是什么老八…对不起,这里无意中伤。以最快的方式对上面的需求进行实现,我们可以用if语句:模拟发送过来的请求public class R

2021-06-11 14:19:46 96 4

原创 设计模式系列《代理模式》

代理模式代理模式说白了就是你要做什么,就请个人帮你做。比如你买不到K40,就花贰佰请黄牛帮忙买(麻了,我就亏了贰佰)。你写了点不正经的代码,例如爬了些奇怪的网站,被抓了,请律师帮忙打官司。你有一堆脑残粉,你想赚他的钱,你总不能跟他们要吧,请经纪人/代理人卖周边。代理模式很容易和修饰器模式弄混,我这里提一嘴:相同点:二者都能对功能进行增强在静态代理模式下需要传递对象,这里和修饰器模式很类似,但值得注意的一点是装饰器模式的对象从没变过,而静态模式变过。不同点装饰器模式是在功能外增强

2021-06-09 21:28:06 239 4

原创 设计模式系列《包装模式》

包装模式(修饰器模式)​对象增强的方式继承继承父类,子类扩展装饰器模式使用“包装”的方式来增强对象代理模式代理模式或者看我代理模式的笔记。继承​ 最简单的方式就是继承父类,子类扩展来达到目的。虽然简单,但是这种方式的缺陷非常大:如果父类是带有数据、信息、属性的话,那么子类无法增强。子类实现了之后需求无法变更,增强的内容是固定的。举例:当时想要自己写一个简易的JDBC连接池,连接池由List<Connection>来管理。显然我们的对象是Co

2021-06-09 14:28:41 1275 1

原创 设计模式系列《策略模式》

策略模式这玩意很简单,举个例子,就是为了让你选择解决一件事的方法。比如我上学,我可以走着去,可以可以开飞机去,可以爬过去,这些都是去上学的方法。但写在一个方法里需要很多的if和else,维护起来非常的不方便,所以推出了策略模式。示例:向一个类里面传入不同的类,会根据传入类的不同执行不同的方法。首先写一个接口用来放需要执行的不同的方法(出行方式)。public interface GoToSchool { void action();}然后创造不同的方法(出行方式),以下都

2021-06-09 14:26:45 79

转载 vue出现Invalid Host/Origin header,[WDS] Disconnected!

转载一波网址。写的很好https://blog.csdn.net/lifachang/article/details/103201799

2021-05-14 15:52:17 1016

原创 redis注解序列化

1、开启@EnableCaching,可以在主启动类写,可在配置类写,我直接在配置类里写了。2、写MyCacheConfig配置类@EnableConfigurationProperties(CacheProperties.class)@Configuration@EnableCachingpublic class MyCacheConfig { // @Autowired // public CacheProperties cacheProperties; /**

2021-05-08 12:43:57 306

原创 21年gateway保姆教程

以前写的gateway教程太敷衍了,导致我又看不懂写的啥玩意了,今天来写的详细点。1、第一步导入依赖,没啥说的,这里我还导入了阿里巴巴的nacos,就不说了 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId>

2021-05-06 18:49:01 192 1

原创 21年OpenFeign保姆级使用教程

不多bb了,很烦就,上次写的笔记硬生生看了半小时才看懂写的啥玩意,这次要写的详细点了。首先介绍一下情况:目前springcloud有两个模块一个是member模块,负责用户资料的查询,一个是activiti工作流程模块,负责工作流程的编写。我现在需要activiti工作流程模块调用member的接口进行查询。1、member模块,啥也不用干,只要将nacos配置写入yml文件然后在启动类开启@EnableDiscoveryClient即可,配置文件如下:spring: datasource:

2021-05-05 20:04:00 274

原创 Linux/docker下mysql创表自动大写

docker中的mysql缺省是大小写敏感的,网上搜索了一下,都是说要修改/etc/mysql/my.cnf,加入一行:lower_case_table_names=1但是很遗憾,初始化完成后,你再去加这个,数据库就死了,再也启动不起来docker了,所以建议在初始化数据库的时候就规定好这点要加入一个启动参数–lower-case-table-names=1,示例命令如下:docker run -itd --name mysql1 -p 3306:3306 -e MYSQL_ROOT_PASSWO

2021-05-01 01:55:59 267 1

原创 保姆级阿里云ESC服务器迁移介绍(适用于不同账户/相同账户等多种情况)

今天进行了一次服务器迁移,百度了一下感觉完整教程比较少,整体比较烦躁,干脆出个教程。一共就3个步骤:1、首先创建自定义镜像2、有需要到另一个用户上使用的,使用镜像分享,同一个用户上的,可以忽略这步另一个用户复制过去即可3、更换操作系统即可...

2021-04-26 10:19:18 605

原创 21年最新版activiti7保姆教程

*activity工作流*Activity工作流的学习,想通过Activity工作流的形式去整合ELK、MQ和SpringCloud。*一、********什么是工作流*以请假为例,现在大多数公司的请假流程是这样的: 员工打电话(或网聊)向上级提出请假申请—上级口头同意— 上级将请假记录下来—月底将请假记录上交公司—公司将请假录入电脑采用工作流技术的公司的请假流程是这样的: 员工使用账户登录系统—点击请假—上级登录系统点击允许就这样,一个请假流程就结束了 有人会问,那上级不用向公司提交请假记录?公

2021-04-25 19:55:55 4270 3

原创 activity工作流生成数据库表

ACT_RE_*: 'RE’表示repository。 这个前缀的表包含了流程定义和流程静态资源(图片,规则,等等)。ACT_RU_*: 'RU’表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据,在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。ACT_ID_*: 'ID’表示identity。 这些表包含身份信息,比如用户,组等等。ACT_HI_*: 'HI’表示history。 这些表包含

2021-04-19 22:09:55 494

原创 ELK整合进架构里

有一说一,很生草,刚学完ELK却不知道怎么整合项目,这里普及一下。·····L同步数据库到ES上,发生增删改,同时调用L,然后有数据优先找ES,没有就Redis缓存,再没有就mysql。欠佳考虑的问题就是,可能ES和数据库双写不一致。可以利用mysql的binlog来进行同步,读取mysql的binlog日志,然后把读取的信息转为MQ,然后编一个MQ消费程序不断消费MQ,每消费完一条消息,将消息写入到ES中。...

2021-04-15 20:26:09 76

原创 《舔狗日记》代码踩坑日记,长期更新~

1、MP默认ID的雪花算法的id类型是Long,然后到数据库里id的类型应该是bigint,长度最好给20。2、EasyExcel的监视器无法使用Spring注入,需要把Service单独提出来用。

2021-04-08 21:06:27 264 2

原创 3.1面试更新

3.1续更:  昨天的面试很有意思,x云科技的技术面让我意识到还需要去多学一点东西,会在后续总结出来。  还有一家公司,电话过来本来要面试的,我和他说了一下最近收到的offer情况,hr小姐姐说,可能面上了也不会去他们公司,然后就挂了,就挺尴尬的。  下面来说一下昨天面试遇到比较有意思的,后续面试遇到的问题会补充到我的资料里,大家在网盘里重新下载资料即可。  x云科技面的比较全:百分之90都在总结的资料里,刚开始问j提了一嘴String能不能被继承(不行,final修饰),后面问锁(lock和syn

2021-03-02 15:20:06 192 1

原创 面试踩坑,持续更新

1、数据库的左连接就是左边的表全保留,右边的表不同的部分全去除。2、数据库的右连接就是右边的表全保留,左边的表不同的部分全去除。3、外连接、全连接:将两个表重叠的字段取一次,剩下的部分字段合成一个新表。...

2021-01-29 18:33:07 95

原创 Java整合rabbitmq并且配置序列化

1、导入rabbitmq的依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>2、编写配置文件,将自己的信息写进去spring.rabbitmq.host=23.213.3

2021-01-27 20:49:08 728 1

原创 docker使用RabbitMQ

这个东西很烦人,挂载稍微多写点就不让你启动,我这里直接把我使用成功的跟大家分享把。1、下载并且安装RabbitMQ在docker上 1)先在docker上拉取镜像,版本不重要,重要的是要有management,其实这个也不重要,只不过是新手操作比较方便,不然什么版本都可以1、下载并且安装RabbitMQ在docker上1)先在docker上拉取镜像,版本不重要,重要的是要有management[root@zsp ~]# docker pull rabbitmq:3.8.3-management

2021-01-27 20:37:53 550

原创 设计模式:工厂模式

工厂模式分为:简单工厂模式:用来生产同一等级结构中的任意产品(对于增加新的产品,需要球盖已有代码)工厂方法模式:用来生产同一等级结构中的固定产品(支持增加任意产品)简单工厂模式图解:测试类:package com.zsp.simple;public class TestDemo { public static void main(String[] args) { Car car1 = CarFactory.getCar("五菱宏光"); Car car

2021-01-05 22:44:40 67

原创 面试HashMap题

A:说说您对HashMap的理解?A:说到HashMap的底层结构,您知道Java7与Java8中的HashMap有何区别吗?A:为什么要加入红黑树呢?A:HashMap与HashTable的有何区别知道吗?A:说说HashMap线程不安全的场景?A:如何解决HashMap的线程不安全?A:说说这两种方式的区别?A:说说您对ConcurrentHashMap的理解?A:说说Java7和Java8中的ConcurrentHashMap是如何保证线程安全的?A:嗯,说说您对CAS算法的理解。

2021-01-04 21:59:39 69 1

原创 Tcp/Ip三次握手和四次挥手

Tcp/IP三次握手:1.SYN(synchronous建立联机)2.ACK(acknowledgement 确认)3.Sequence number(顺序号码)1、浏览器发送数据包给服务器,数据包里面包含SYN=1(表示建立连接),Seq(身份码)2、服务器发送数据包给浏览器,数据包包含ACK=1(表示确认建立连接), ack=seq+1(表示确认身份)和SYN=1(表示建立连接),Seq(身份码)3、浏览器发送数据包给服务器,数据包包含ACK=1,ack=seq+1,完成建立连接。Tcp/

2021-01-04 20:18:20 62

原创 自己写一个自旋锁

自旋锁代码如下:package lock;import java.util.concurrent.atomic.AtomicReference;public class SpinlockDemo { AtomicReference<Thread> atomicReference =new AtomicReference(); public void myLock(){ Thread thread =Thread.currentThread();

2021-01-02 17:00:35 187

原创 可重入锁

2、可重入锁:可重入就是说某个线程已经获得某个锁,可以再次获取锁而不会出现死锁。可重入锁有synchronizedReentrantLocksynchronized的示意图如下:自动获取自动释放代码如下:package lock;public class SynchronizedDemo { public static void main(String[] args) { Phone1 phone = new Phone1(); new Thre

2021-01-02 16:13:17 77

原创 CAS的ABA问题:原子引用解决

CAS问题:ABA问题(狸猫换太子):线程B改变了线程1为3,然后再改回1,线程A却无法知道,仍旧是把1改成了2package cas;import java.util.concurrent.atomic.AtomicInteger;public class CASDemo { public static void main(String[] args) { AtomicInteger atomicInteger = new AtomicInteger(2020);

2021-01-01 22:19:07 160 1

原创 Integer的大坑:阿里开发手册里写的

Integer使用了对象缓存机制,默认范围-128~127,推荐使用静态工厂方法valueOf获取对象实例,而不是new。valueOf使用缓存,而new一定会创建新的对象,分配新的内存空间。

2021-01-01 22:16:21 195 1

原创 多种方法破解单例模式(单例模式到枚举的学习)

饿汉式:饿汉式,一开始就把对象创建好,然后返回对象给调用方法的人,缺点浪费空间,优点,一开始用final写死了对象,对象怎么样都不会出现新的。package single;public class Hungry { private Hungry() { } private final static Hungry HUNGRY =new Hungry(); public static Hungry getInstance(){ return HUNGRY

2021-01-01 20:40:03 142

原创 JUC之ForkJoin

ForkJoin在JDK 1.7 ,并行执行任务!提高效率。大数据量!大数据:Map Reduce(把大任务拆分为小任务)ForJoin特点:工作窃取 。工作窃取:维护了一个双端队列。A,B线程同时进行工作,B线程执行任务完毕后,会去执行A的任务。使用方法:1、写一个类继承RecursiveTask2、在compute里面写入要递归的调用的方法package forjoin; import java.util.concurrent.RecursiveTask;public class

2020-12-31 20:14:47 161 1

原创 JUC自定义自己的线程池

先来看这个Executors来创建线程池:import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ExecutorsDemo { public static void main(String[] args) {// ExecutorService service = Executors.newSingleThreadExecutor();//单

2020-12-29 17:11:03 83

空空如也

空空如也

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

TA关注的人

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