自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 纸上得来终觉浅->代码详解锁升级

一个对象,关闭偏向锁延迟,上来他是偏向锁,这个时候两个线程不会竞争但是会交替运行,那么他会由偏向锁,变成轻量级锁,现在准备30个对象,把他放到list里面,还是两个线程没有竞争的情况,t1线程对list里面对象加锁,都会变成偏向锁,在加锁的时候。一种观点是:锁在没有竞争的情况下会是偏向锁,在遇到竞争的时候会升级成轻量级锁,再遇到竞争了这个锁会进行一定次数的自旋,当次数计满了就会升级成为重量级锁。值得一提的是,在jdk8中,偏向锁的开启是有延迟的,并不是一开启的时候就是偏向锁,而自旋锁是一开始就有的。

2024-03-29 14:46:19 634

原创 ip地址开发场景问题

这种问题一般是出现在我们的项目日志中,可能想去收集某一个时间段内,或者说时某一个时间点的ip地址,或者说是想从大量数据中,选出ip地址出现次数最多的ip。大概是分为这几个问题。

2024-03-28 13:14:00 734

原创 jdk8中的Arrays.sort

那么这里举了int的分析例子,最后附上一个参考表格。排序目标条件采用算法size < 47混合插入排序 (pair)size < 286双基准点快排有序度低双基准点快排有序度高归并排序byte[]size <= 29插入排序size > 29计数排序size < 47插入排序size < 286双基准点快排有序度低双基准点快排有序度高归并排序计数排序Object[]传统归并排序TimSort其中 TimSort 是用归并+二分插入排序的混合排序算法。

2024-03-27 15:54:47 820

原创 走进jvm之垃圾回收器篇

这里我想首先说明一下,虽然我们经常会拿垃圾回收器来做比较,虽然想挑选一个最好的收集器出来,但是目前也没有说哪一款收集器是完美的,更不存在万能的收集器,我们也只是对收集器选择最适合场景的一个收集器。那么作者将在接下来和大家探讨一些垃圾回收器的发展历程和优缺点,相信读完这篇的你也绝对不是白花时间,不过理解的过程有点枯燥,也希望大家有耐心看完,或者进行完善。

2024-03-21 21:21:20 1011

原创 走进redisson

这里作者将大家走进redisson,读完这篇相信加深你对redisson的获取锁,重入,超时,看门狗,发布订阅等原理和功能的理解。本文将深入原理代码,给出每行代码的意义以及最后的效果,过程有些枯燥,但探索的过程是快乐的,同时也希望大家看的过程当中去一起去查看源码。

2024-03-21 18:57:00 956

原创 数据结构的美之百家争鸣-redis-dict篇

(把创建的哈希表赋值给那个空闲的hash表,再从旧的导入空闲的里面。并且在做删,改,查的过程当中,数据要么在t1里要么再t0里并且由于数据是迁移的并不会重复,因此需要两边都要查询。在rehash过程中,新增操作,则直接写入ht[1],查询、修改和删除则会在dict.ht[0]和dict.ht[1]依次查找并执行。这样可以确保ht[0]的数据只减不增,随着rehash最终为空。将dict.ht[1]赋值给dict.ht[0],给dict.ht[1]初始化为空哈希表,释放原来的dict.ht[0]的内存。

2024-03-17 18:22:16 304

原创 数据结构的美之链表和树

压缩列表的可以看做一种连续内存空间的"双向链表"列表的节点之间不是通过指针连接,而是记录上一节点和本节点长度来寻址,内存占用较低如果列表数据过多,导致链表过长,可能影响查询性能因为只能从头到尾或者从尾到头部查询。增或删较大数据时有可能发生连续更新问题,连锁更新可能会导致频繁的内存申请是一个节点为ZipList的双端链表节点采用ZipList,解决了传统链表的内存占用问题控制了ZipList大小,解决连续内存空间申请效率问题中间节点可以压缩,进一步节省了内存。

2024-03-14 21:13:47 706

原创 项目中spring security与jwt.腾讯面试分享

写这篇文章是为了记录我面试pcg时平时没有留意或者钻研的地方。

2024-03-06 21:32:20 853

原创 juc并发线程学习笔记(一)

当 Context Switch 发生时,需要由操作系统保存当前线程的状态,并恢复另一个线程的状态,Java 中对应的概念就是程序计数器(Program Counter Register),它的作用是记住下一条 jvm 指令的执行地址,是线程私有的。单核 cpu 下,多线程不能实际提高程序运行效率,只是为了能够在不同的任务之间切换,不同线程轮流使用cpu ,不至于一个线程总占用 cpu,别的线程没法干活。多核 cpu下,每个 核(core) 都可以调度运行线程,这时候线程可以是并行的。

2024-02-01 16:26:31 484

原创 Spring系列学习笔记->Spring篇(一)

本系列是学习spring很唱一段时间之后的一系列学习笔记总结,包括spring篇,springmvc篇和springboot篇。我们在项目的实际应用过程中,往往会觉得了解spring的原理没有什么用,不懂为什么,只需要会用,能用出来,发现诶,好像可以运行,结果可以出来就好了。但是往往在开发的过程中会发现,为什么这个启动类启动不了?

2024-02-01 16:23:55 415

原创 Mysql学习笔记系列(二)

本篇是结合文章(一)继续展开,具体的一内容可以到博客里面浏览。

2024-01-22 14:04:46 428

原创 Mysql学习笔记系列(一)

存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。

2024-01-22 00:56:20 1011

原创 redis优化系列(六)

RedisKey的TTL记录方式:在RedisDB中通过一个Dict记录每个Key的TTL时间过期key的删除策略:惰性清理:每次查找key时判断是否过期,如果过期则删除定期清理:定期抽样部分key,判断是否过期,如果过期则删除。定期清理的两种模式:SLOW模式执行频率默认为10,每秒执行10次,每次不超过25msFAST模式执行频率不固定,但两次间隔不低于2ms,每次耗时不超过1ms。

2024-01-19 00:28:00 943

原创 Kafka系列(四)

简介一下kafkaStream。

2024-01-16 19:39:50 1432

原创 Kafka系列(三)

本章内容继前两章1,2知识点后,开始结合java实际代码开发进行实践。其中三将讲述kafka座位消息中间件的代码样例,四将讲述kafka的stream流式计算处理。

2024-01-16 19:03:45 711

原创 kafka系列(二)

本章承接kafka一内容,文章在本人博客主页都有,可以自行点击浏览。

2024-01-15 21:38:39 1412

原创 Kafka系列(一)

ZK服务主要用于通知生产者和消费者Kafka集群中有新的broker加入、或者Kafka集群中出现故障的broker。在一个分区中,消息是有顺序的方式存储着,每个在分区的消费都是有一个递增的id。Kafka中的主题必须要有标识符,而且是唯一的,Kafka中可以有任意数量的主题,没有数量上的限制。该系列主要是复习期间,通过浏览资料记录的一些笔记和重点,用于日常学习和学习后的总结。主题是一个逻辑概念,用于生产者发布数据,消费者拉取数据。在主题中的消息是有结构的,一般一个主题包含某一类消息。

2024-01-15 19:56:42 672

原创 reids优化系列(五)

后面更新的这些文章是将所学的redis知识进行巩固并且分享,也希望这些知识不仅仅是用于复习面试,更能在实际的应用中起到优化的作用。有时候我们会存储一些查询多,修改少,业务逻辑较弱的数据,并且还能高效查询,那么redis就是一种选择。

2024-01-13 17:49:25 934

原创 redis实现延迟任务(四)

这是一个添加任务,在发布文章的方法里,调用添加任务这个方法,传入对象”文章“也就是news,然后到发布时间了就会进行任务的拉取消费审核然后发布,在最后一步骤可以调用该方法,将news传入task里。这个是一个序列化和反序列化的工具,效率要比jdk高,jdk的序列化个人感觉太慢了,而序列化个人觉得就是将其转换成符合一种双方都能接收的协议,例如http协议规定的数据格式,利用json序列化也可以。四主要是接着三来接着说,文章三之前已经完成了对于任务服务的编写,其中开发了任务的创建和和删除,任务的同步等等。

2024-01-13 17:07:03 686

原创 redis实现任务队列(三)

这个三主要是对前面的代码进行一些补充说明。

2024-01-12 19:05:43 410

原创 redis实现延迟任务(二)

添加任务:首先将task添加到数据库,然后看看任务的执行时间,如果超过五分钟,就不放入redis里,等着后期同步,如果是小于五分钟大于当前时间就放到set里,如果小于等于当前时间就放到redis的list里。list:是有序的,并且可以允许key的重复,插入和删除数据快但是查询一般般,list为双向链表,当需要立即发布的时候,数据量特别大的时候,list的效率要高于zset,普遍情况下也都是立即发布。除了定时任务还有立即发布的,立即发布的话就不需要存储score了,我们就存在list属性里面就可以了。

2024-01-12 18:33:07 481

原创 Redis实现延迟任务队列(一)

业务里面需要文章的定时发布功能,因此打算采用mq和redis来实现一下定时发布的功能。并且打算将这个延迟任务的服务集成在一个微服务里面,提供对外的feign的远程调用接口,这样就可以一劳永逸一下。将这个交给spring管理,到时候哪个服务需要注意一下就可以了。本次redis实现将分为多个文章来详细描述一下。并且介绍一些重要功能的实现思路和重要代码以及redis的一些特性。这里面封装了一些redis常用数据结构的代码,封装之后可读性更高,自己也可以加以修饰提高代码效率。后续会对里面的一些重点的代码进行阐述。

2024-01-12 17:51:36 693

原创 项目接入阿里云内容审核增强版本,文本审核与图片审核。第三方审核

图片审核我测试过公网的图片,好像符合https协议的才可以,而我的域名是http协议的,测试一下好像即使公网可以访问但也出了问题,所以这里我采用的是本地图片测试。而我们这个图片拉取的时候是从minio里面拉取的,所以我们还需要从minio里下载图片,这个下载图片的方法我目前就先不给出了,额,因为我觉得不算是重点,如果大家需要的话可以评论留言,我会给出。这里的url我没有给出,因为图片是需要本地的,我把url下载的图片保存到本地了,这里的url是minio的访问图片。

2024-01-07 13:14:06 1378 3

原创 [B,int,int,java.lang.ClassLoader,java.security.ProtectionDomain) at java.base/java.security.Acce

个人理解是jdk的类加载器,在加载类对象的时候出错了。unsafe反射创建失败。一般是jdk版本的问题。这个有时候虽然项目结构修改了,但是因为某些问题启动后jdk版本依然没变,因此需要在启动时修改。

2023-12-19 11:26:57 798

原创 feign远程调用方法时,请求需要携带信息的问题

最近在写一个业务,结合feign远程调用和spring security,再发送请求的时候需在请求头中加入身份信息。而另一个服务,需要这份身份信息,来获取id,不然就会报错,这里我用jwt存储身份信息。

2023-12-19 11:19:06 1059

原创 一篇掌握Jep灵活应用,数学公式自定义

本文教会如何能在业务场景下使用jep。一篇灵活掌握。

2023-12-09 16:39:55 1126 4

原创 指令重排与更安全地单例模式创建,加深理解

多线程下『指令重排』会影响正确性,例如著名的 double-checkedlocking 模式实现单例// 实例没创建,才会进入内部的 synchronized代码块// 也许有其它线程已经创建实例,所以再判断一次。

2023-11-04 14:47:55 67 1

原创 字节码拿捏i++和++i

而我们在具体的情况下,想要从更底层知道为什么,或者说结果怎么样,我们就可以通过字节码指令来进行获取。- 注意 iinc 指令是直接在局部变量 slot 上进行自增运算,而不是在操作数栈。- a++ 和 ++a 的区别是先执行 iload (+槽位号)还是 先执行 iinc。a++是先load再自增,++a是先自增再load。进入终端后输入javac 后面跟上类java的名字。就可以获取字节码指令了,然后我们就可以一一分析。如果这些不够理解,后面还有图示加深理解。至此,拿捏死死的已经没问题了吧。

2023-11-01 16:18:20 58

原创 软件项目管理知识点总结(个人理解)

该过程的主要目标是确保项目团队对他们作为项目范围的一部分必须做的所有工作有完整的理解,以便他们可以开始安排工作。Validating scope:项目可交付成果的验收常态化,在此阶段,关键的项目利益相关者,如项目的客户和发起人,进行。那些试图超越,并倾向于避免低风险和高风险的情况来提高他们实现有价值的事情的机会的人往往需要完成。报告绩效,即项目利益相关者可以识别为保持项目步入正轨而可能需要的任何必要的更改,这是该流程的一个共同部分。自由决定的):软逻辑,应该小心使用,因为它们可能会限制以后的调度选项。

2023-10-25 20:27:48 175 1

原创 分布式文件系统及Minio配置及测试

分布式文件系统以及Minio配置及测试

2023-10-22 15:03:58 1155 1

原创 微服务项目搭建:Nacos以及网关的配置

本文主要记录微服务项目结构搭建里的nacos和gateway

2023-10-21 16:17:02 843 1

原创 org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘globalTransa

我最开始想,这是依赖哪个需要的bean对象我没有注册嘛,还是包导入不成功,最后我查看了maven依赖,bean,service等注解发现并没有漏洞,导入的依赖也没有问题,那为什么找不到呢?这个报错我也事第一次见,但我的大致理解就是,我的spring框架里的bean仓库在创建的时候,它解决不了我的bean,或者找不到我的bean,那么问题也可以出在这,那代码都是对的为什么会找不到呢?最后我发现我的jdk是17,而我的框架是5.2.13的springframework,对应的也就是8-15版本的jdk,

2023-09-28 11:02:44 845 2

原创 分布式CAP定理与Base理论与Love爱情

相信大家看到cap定理与base理论和爱情这个标题都会很疑惑?这两者怎么能搭上关系呢,其实这也是我和女朋友在聊天的时候由感而发的,说不定还可以加深对分布式的理解。

2023-09-27 13:08:40 70 1

原创 Nacos中Feign的远程调用深入理解

通俗来说就是order-service和user-service就是两个出租屋子,他们有自己的锁,但是他们都把钥匙放在feign里了,如果有人需要就去拿着使用,比如说order像进user屋里面溜达溜达,就去feign拿user的钥匙,这样就可以使用这个屋子了。微服务是由很多模块组成,但彼此之间又会进行互相调用,那么就会有方法来实现这个api接口进行远程调用,常见的调用方法有restTemplate,还有feign等,但随着使用,我们好像发现,feign的使用会更轻松,代码更可观,也更好的去理解。

2023-09-27 11:42:12 330 1

原创 docker volumes深入理解和数据卷挂载相关指令

深入理解docker中的volume以及相关指令

2023-09-24 20:51:06 82 1

原创 docker 安装elasticsearch

elasticsearch安装

2023-09-24 18:43:24 260 1

原创 Elasticsearch对象创建测试中new HttpHost和Http.create的区别

因此我们在es中需要的是restclient对象,因此我们需要用http.create方法进行对象的创建,大家也可以通过将鼠标放在类的名字上查看返回的对象,或者看继承的类或实现的类来观察他返回对象的类别。对象,该对象表示要连接的主机和端口。这个细节报错所以我们就要去明白,一个是new,一个是create,同样都是类似创建一个对象的方法到底有什么区别。所以,区别在于使用的库和创建的对象类型。我们在进行es测试的时候,会对client对象的创建进行测试,发现将测试代码。

2023-09-22 23:55:27 201 1

原创 深入理解SpringMvc映射原理,SpringBoot的容器概念以及注解分析

SpringMVC,SpringBoot原理深探。

2023-09-21 15:13:10 73

原创 VMware中Centos里docker卸载和安装

docker安装和卸载

2023-09-21 11:59:06 71

原创 vue项目启动报错:error:0308010C:digital envelope routines::unsupported

原因:node.js版本过高, node.js V17版本中发布的OpenSSL3.0, 而OpenSSL3.0对允许算法和密钥大小增加了严格的限制,因此我们在下载高版本或者最新版本的node的时候会面临一些版本不兼容的问题,所以这里最好建议下载稳定版。如果调整镜像源之后发现无法解决问题,我们考虑node本身版本的问题,项目无法启动很有可能是和node的版本问题有关。我们在报错之后要想为什么会报这个错误,不出所料与node的版本有关。为什么执行这段代码之后项目就可以正常启动,这段代码有什么作用呢?

2023-09-20 13:20:51 354

Tidb学习,Tidb server ,tikv,pd

个人学习tidb的笔记,整理的资源资料,利于对数据库tidb的学习,了解其优势,加深对分布式的理解。

2023-09-21

空空如也

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

TA关注的人

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