自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (1)
  • 收藏
  • 关注

原创 MQ重复消费与消息顺序

零拷贝分两种方式:mmap和transfile(文件传输过程中直接使用DMA进行优化),java中的MappedByteBuffer就是使用的mmap的方式,而FileChannel的底层就是使用了transfile来操作。RockeMQ当中使用mmap方式来对他的文件进行读写,commitlog文件大小为1G,如果写满再生成一个1G的文件。在kafka中,它的index日志文件也是使用mmap的方式来读写的,在其它日志文件中,并没有使用零拷贝的方式。6、定制高级功能,死信队列、延迟队列、事务消息等等。

2024-11-24 22:08:15 428

原创 消息队列MQ

如果生产者向MQ发送的本地事务状态为未知状态,MQ对未知状态的消息发起回查,此时生产者检查本地事务状态,再将状态发送给MQ,如果再次为未知,会重试,MQ的回查默认会查15次,如果15次都失败,则丢弃消息。RabbitMQ:将队列配置成持久化队列,新增的Quorum类型的队列,会采用Raft协议来进行消息同步,使用的两阶段提交的方式。1、普通集群中,同步同步、异步同步,异步同步效率更高,但会产生消息丢失的风险。1、普通集群:消息是分散存储的,节点之间不会主动进行消息同步,是有可能丢失消息的。

2024-11-24 18:43:49 381

原创 java垃圾回收

拷贝算法将内存分成大小相同的两份,当清理时将存活的对象拷贝到另一块空间,该算法解决了内存碎片问题,但造成了空间的浪费,同时回收的效率会受到存活对象多少的影响。STW:在垃圾回收过程中,java的所有用户线程都是停止的,GC线程除外,本地方法可以执行,但是它们不能与JVM交互。:给堆中的每个对象记录一个引用个数,引用个数等于0就认为是垃圾,但这种方式无法解决循环引用的问题,java早期使用的垃圾回收使用此种方式。并发标记:跟CMS相似,不遍历所有Old区的对象,只遍历第二步标记出来的Region。

2024-11-24 10:51:55 1131

原创 java双亲委派机制

3、对象首先会分配在新生代的eden区,然后经过一次minorGC,对象如果存活的话,就会进入Survivor区,在后续的每次GC中,对象如果一直存活就会在S区来回拷贝,每移动一次年龄增加1岁,默认年龄增加到15岁如果还存活,就会进入老年代。后一种加载器是前一种的父类,每一种类加载器都有自己的加载目录。每个类加载器加载过的类都会有一个缓存。一、加载:将java的字节码数据加载到JVM内存中,并映射成JVM认可的数据结构。1、用户创建一个对象,JVM首先会到方法区去查找对象的类型信息,然后再创建对象;

2024-11-24 09:00:28 328

原创 抖音上找的英语视频

单词速记:

2024-11-23 11:21:48 183

原创 英语音节的划分及发音规律

5、如果两个元音字母中间有两个辅音字母,第一个是r,这两个辅音字母,也分别划入左右两个音节。3、两个元音之间只有一个辅音字母或辅音字母组合,左边的元音按重读闭音节规则发音,那么,这个辅音字母或辅音字母组合通常划入左边的音节。2、当两个元音字母中间只有一个辅音字母时,左边的元音又是按重读开音节规则发音,这个辅音字母通常划入右边的音节。6、如果两个元音或元音和半元音字母组合发的是一个元音或双元音,划分音节时,不能将其从中分开,要划在一起。1、一个音节至少有一个元音字母。即a,e,i,o,或u,有时也可以是y。

2024-11-22 15:24:11 464

原创 小学知识相关链接

人教版三年级上册语文电子课本,2023-2024最新高清版本语文三年级上册第四单元课文朗读+知识点+图文解读《总也倒不了的老屋》【电子课本】小学语文部编人教版四年级上册(高清版)《总也倒不了的老屋》讲解:https://xiaodu.baidu.com/saiya/superapp/poem.html#/detail?anchor=yuanwen&from=aladdin&lessonid=30698&pid=30698&srcid=60862【三上英语】2024新人教版三年级英语上册《单词表》,音标、释义

2024-11-19 23:10:12 352

原创 收藏一些有用的文章

https://blog.youkuaiyun.com/u010002184/article/details/88526708HSSF and XSSF Exampleshttps://blog.youkuaiyun.com/u010002184/category_5878585.html 安静的小气泡 - 简书

2024-11-12 18:19:55 225

原创 parallelStream()使用注意点

Runtime.getRuntime.availableProcessors()是JDK提供的获取当前系统的可能核心数,而现在多数应用是发布在容器中的,虽然部署的容器是2C4G的,但是ForkJoinPool创建的FokJoinPool可能会创建出几十个线程,因为程序部署在docker容器中,那么获取的是宿主机的CPU核心数。2、parallelStream适用的场景是CPU密集型的,假如本身电脑CPU的负载很大,那还到处用并行流就无法起到作用,切记不要再parallelStream操作中使用IO流。

2024-11-09 17:01:17 288

原创 Java垃圾回收

所以JVM会在字节码指令中,选一引起指令,作为“安全点”,比如方法调用、循环跳转、异常跳转等,一般是这些指令才会产生安全点。为什么它叫安全点,是因为GC时要暂停业务线程,并不是抢占式中断(立马把业务线程中断),而是主动式中断。主动式中断是设置一个标志,这个标志是中断标志,各业务线程在运行过程中会不停地主动去轮询这个标志,一旦发现中断标志为True,就会在自己最近的安全点上主动中断挂起。安全区域,为什么需要安全区域?因此,在这个区域中任意地主开始都是安全的,我们也可以把安全区域看作被扩展拉伸了的安全点。

2024-11-06 23:31:02 263

原创 ThreadLocal

在创建子线程时,会执行Thread的init方法,在init方法中,默认会做InteritableThreadLocal中的数据传递逻辑,只要父线程中的InteritableThreadLocal里面有数据,就会做迁移操作,直接将父线程的interitableThreadLocals中的数据一个一个的拷贝到子线程的interitableThreadLocals里面,inheritableThreadLocals就是ThreadLocalMap.可以采用共享变量的方式来进行线程间数据的传递。

2024-11-06 10:20:15 223

原创 IO同步异步/阻塞非阻塞

客户端发送请求给服务端,此时服务端处理任务时间很久,这个时候任务虽然处理时间很久,但是客户端可以做其他任务,因为他是异步的,可以在回调函数里处理响应,同时服务羰是非阻塞的,所以服务端可以去处理自己的任务,如此,这个模式就非常高效了。:客户端发送请求给服务端,此时服务端处理任务时间很久,则客户端帽被服务端阻塞了,所以客户端会一直等待服务端的响应,此时客户端不能做其他任何事,服务端也不会接受其他客户端的请求,这种通信机制比较简单粗暴,但是效率不高。的系统调用方法来抉择,两者是从不同维度来考虑的。

2024-11-05 21:04:12 439

转载 算法复杂度O(1),O(n),O(logn),O(nlogn)的含义

首先o(1), o(n), o(logn), o(nlogn)是用来表示对应算法的时间复杂度,这是算法的时间复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。算法复杂度分为时间复杂度和空间复杂度。其作用:时间复杂度是指执行这个算法所需要的计算工作量;空间复杂度是指执行这个算法所需要的内存空间;时间和空间都是计算机资源的重要体现,而算法的复杂性就是体现在运行该算法时的计算机所需的资源多少;时间复杂度的优劣对比常见的数量级大小:越小表示算法的执行时间频度越短,则越优;

2024-11-04 11:46:06 83

原创 java集合的fail-fast机制

原因:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个modCount变量,集合在被遍历期间如果发生内容变化,就会改变modCount的值。否则就抛出异常,终止遍历。例如:假设存在两个线程t1、t2,t1通过iterator在遍历集合A中的元素,在某个时候t2修改了集合A中的元素(在结构上的修改,不是简单的修改集合元素的内容),那么这个时候程序就会抛出ConcurrentModificationException异常,从而产生fail-fast机制。

2024-11-03 22:58:32 175

原创 JVM基础

java的反射提供强大的功能,使得我们可以调用类的方法,但同时反射的操作相对比较复杂,会带来性能上的一些问题,需要深入理解java的类型系统和类加载机制。JVM的作用是在不同的平台上提供一个统一的运行环境,使得Java程序能够在任何安装了JVM的设备上运行,而不需要针对每个平台进行修改。3、最小权限原则:在编写使用反射的代码时,应遵循最小权限原则,则只请求执行所需任务所需的最小权限,例如,如果只需要可以读取某个字段的值,就不要请求修改该字段的权限。JRE:运行java字节码的环境。

2024-11-03 22:36:34 398

原创 打印十进制数的二进制方式

打印结果:00000000000000000000000000001010。

2024-11-01 23:38:50 97

原创 ConcurrentHashMap底层实现是什么

ConcurrentHashMap是一个K-V的存储结构,在JDK1.8中,它的存储结构如下,是由数组、单向链表、红黑树组成。当hash冲突比较多时,会使链表长度过长,因此查询的复杂度就增加。如何在并发性能与安全性上做好平衡,很多地方都会存在类似的设计,比如CPU的三级缓存,mysql的buffer pool,Synchronized的锁升级等。在JDK1.8中,ConcurrentHashMap锁的粒度是node,而JDK1.7及以前是对Segment进行锁定,锁粒度大了,性能也会低很多。

2024-11-01 18:43:45 470

原创 AQS是什么

3、FIFO队列:CLH队列是一个虚拟的先进先出的双向队列,它是自旋锁的一种改进,不存在真实的实例,而是只存在着节点之间的关联关系,CLH队列中的一个节点代表着一个线程,它保存着线程的引用(thread)、线程的当前状态(waitStatus)、前驱节点(prev)、后继节点(next)。排他锁就是存在于多个线程同时竞争一个资源时,同一时刻只允许一个线程访问该共享资源,也就是只有一个线程获得到锁资源,比如Lock中的ReentrantLock重入锁实现就是用到的AQS排他锁的功能。

2024-10-30 17:24:46 243

原创 单链表实现栈的功能

【代码】单链表实现栈的功能。

2024-10-30 15:22:23 104

原创 双向链表反转

【代码】双向链表反转。

2024-10-29 16:47:42 149

原创 LinkedList顺序反转

定义一个Node类,每个Node都有下一个Node。创建一个节点的转换方法。

2024-10-29 15:08:12 151

原创 二分法查找任意数组中的局部最小值

一个随机数组(相邻位置的数字不相等),找出其中的任意一个局部最小值。一个数组中,如果是第一个或最后一个数,那么arr[0]<arr[1],那么arr[0]是局部最小;如果arr[length-1]<arr[length-2],那么arr[length-1]是局部最小;而如果是中间位置的数,那它必须小于左右位置的数才是局部最小。

2024-10-28 17:47:12 631

原创 负载均衡:四层与七层

以常见的TCP为例,负载均衡设备在接收到第一个来自客户端的SYN请求时,即通过上述方式选择一个最的服务器,并对报文中IP地址进行修改(修改为后端服务器IP),直接转发给譔服务器。TCP的连接建立,即3次握手是客户端和服务器直接建立的,负载均衡设备只是起到一个类似路由的转发作用。在某些部署情况下,为保证服务器回包可以正确返回给负载均衡设备,在转发报文的同时可能会对报文原来的源地址进行修改。主要通过报文中的目标地址和端口,再加上负载均衡设备设置的服务器选择方式,决定最终的内部服务器。

2024-10-24 23:48:58 250

原创 HTTP与RPC

http一般用于web应用,例如web应用服务器或浏览器,可使用各种语言来开发,RPC主要用于分布式应用和互联网应用中,其实高效可靠的特点,使其被广泛运用于云计算和大数据等领域。http是无状态的协议,使用的是请求-响应的模式,每次请求建立连接,响应结束则中断本次连接。客户端与服务端的通信其实是不可靠的,需要使用其它机制来保证数据的完整性与一致性。http通常使用JSON和XML等文本格式进行传输,这种方式具有良好的可读性和可扩展性,但是它比二进制数据的传输更慢,并且需要更多的带宽。

2024-10-24 18:57:21 717 1

原创 hadoop

hadoop是Apache基金会开发的分布式系统基础框架。主要用于分布式的存储与分布式分析。该系统的设计可以扩展至数千台机器共同协作,由每台机器提供局部的运算和存储。同时,通过检测和处理应用层的故障,hadoop可以提供高可用性。

2024-10-23 17:26:56 1336

原创 什么是JVM

JVM是可以运行java代码的一台虚拟的计算机,包括一套字节码指令集、一组寄存器、一个栈、一个垃圾回收、堆和存储方法区。JVM运行在操作系统之上,它与硬件设备不直接进行交互。

2024-10-22 15:19:12 938

原创 算法学习地址

https://www.hello-algo.com/chapter_hello_algo/

2024-10-22 14:21:04 109

原创 git统计代码行数

1、统计分支代码git log 分支 --pretty=tformat: --numstat -- . ":(exclude)*/test/*" ":(exclude)*/mock/*" ":(exclude)*/dal/*" ":(exclude)*/model/*" ":(exclude)*/dto/*" ":(exclude)*/enum/*" ":(exclude)*/enums/*" | grep "\(.java\)$" | awk '{ add += $1; subs += $2; l...

2022-02-17 11:39:17 2318

原创 spring中的spi提供指定环境的redis配置

背景:提供一个spi的功能,由于需要支持不同环境连不同的redis,同时使用方也可能会用到自身应用的redis。因此,考虑让使用方配置一个指定的环境变量来初始化不同环境的redis配置。具体实现步骤:1.编写不同环境的properties文件,放丰META-INF目录下2.分别编写配置类,如RedisDevConfig、RedisTestConfig在配置类上打上注解@ConfigurationProperties(prefix="spring.redis-dev")、@Conditiona

2022-01-13 14:53:12 453

原创 linux查找应用jar中是否包含某个jar包

使用命令:方法一:查找指定应用jar包中包含某个jarjar vtf bootstrap-1.0.0-RELEASE.jar | grep 'log4j'方法二:查找所有jar包中包含的某个jarjar vtf *.jar |grep 'log4j'

2022-01-04 14:39:22 3410

原创 chrome打开就进入hao123.com

可恶的hao123.com不知道为什么在浏览器一打开时就显示在主页上,乱七八糟的网址实在不是自己所需要。对此,删除了注册表中的hao123相关目录,修改了chrome执行文件的名称,但最终结果是都没能彻底解决,最后是通过设置chrome浏览器启动是打开的网页修改完成。原来不知啥时候hao123的网址被默认设置到了“设置”->"启动时"->"打开特定网页或一组网页"中。删除此处的hao123.com,最终解决问题。...

2022-01-02 12:50:35 1627

原创 消息中间件常用协议

消息中间件常用协议

2021-12-10 12:52:11 3542

原创 tomcat启动时无法找到类NoClassDefFoundError

表现形式: 工程编译成功,但启动后报错org.springframework.beans.factory.BeanCreationException: Error creating bean with name '***ServiceImpl': Injection of @DubboReference dependencies is failed; nested exception is java.lang.NoClassDefFoundError: **/al...

2021-08-26 23:37:39 204

原创 实体类注释修改

已有项目中的注释格式不够规范,基本是行末注释,需要修改为以下两种注释:1.文档注释//修改为文档注释 public String convertToDocument(String origin){ StringBuilder sb = new StringBuilder(); String[] split = origin.split("//"); if (split.length == 2 ) { sb.append

2021-08-07 17:19:33 324

原创 编写日志Interceptor,结合自定义注解

1.自定义注解Logimport java.lang.annotation.*;/** * description: 操作日志记录 * @author dongqing * 2021/8/7 12:35 * * @version 1.0.0 */@Target({ElementType.METHOD})//如果不写,默认为RetentionPolicy.CLASS,另外源注解上的Retention对本注解无效@Retention(RetentionPolicy.RUNTIME)

2021-08-07 14:19:10 536

原创 多线程保存数据

背景:批量导入数据时耗时过长解决方案:使用多线程进行数据保存步骤:1.构建需要保存的数据记录(代码略)List<Object> objectList = new ArrayList<>();2.拆分总体数据为多份数据//将原始数据拆分为多个子List,存储在partLists中List<List<Object>> partLists = new ArrayList<>();//定义分批的条数int limitSi

2021-05-27 15:11:57 1673

原创 为maven项目打包时添加上svn版本号

1.在pom.xml下添加以下plugin生产环境上跑的jar包是什么版本过段时间后真就无从得知,为之后还能查询得到,在用maven打包时添加如下的插件,打出的包将会MANIFEST.MF文件中在产生svn版本号<bliud><plugins>.....<plugin> <groupId>com.google.code.mav...

2020-04-07 13:21:15 1098

原创 验证码生成

public class CaptchaService { private int width = 90; private int height = 20; private int codeLength = 6; private int xx =11; private int fontHeight = 18; private int c...

2019-09-24 13:11:17 130

原创 程序包sun.security.tools.keytool不存在 解决方法

编译时报错:程序包sun.security.tools.keytool不存在,在pom.xml中加入如下插件<plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source>...

2019-07-04 15:23:37 6864

原创 tomcat启动时没有加载项目

今天在eclipse的默认工作空间中创建了一个springboot的web项目,由于新学该组件,折腾了好久才把所有的jar包加载进去。当关闭此项目后再次启动之前的springmvc项目时,tomcat启动了,可是却没有加载项目的任务代码。右键点击server-->Add and Remove.再次启动还是无法解决问题。最后尝试删除server-->重新创建server-->将项目加入到server

2017-03-27 11:20:25 2004

带activitibpm插件的eclips

集成了activitibpm,方便流程图的绘制

2023-03-10

org.eclipse.emf.workspace-1.5.2.202208110935.jar

org.eclipse.emf.workspace_1.5.2.202208110935.jar

2023-02-28

org.eclipse.emf.validation-1.8.1.202208271102.jar

org.eclipse.emf.validation_1.8.1.202208271102.jar

2023-02-28

org.eclipse.emf.transaction-1.9.2.202208110935.jar

Eclipse安装flowable相关插件

2023-02-28

spring-1.2.6.jar

2016-07-12

空空如也

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

TA关注的人

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