自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java网络编程NIO

缓冲区,包括直接内存缓冲和JVM内存缓冲。NIO是基于channel通信,一个线程管理一个selector,一个selector管理多个channel,这样一个线程就能管理多个客户端连接。一般是通过服务通道监听端口,等待客户端的连接通道,然后将连接通道注册到Selector,等待事件触发通道行为。由于IO无法直接操作应用内存,因此需要将应用内存数据拷贝到直接内存,如果使用直接内存,就可以少一次拷贝操作。:选择器,负责管理多个通道channel,通过监听通道绑定的事件,及时处理通道数据。

2025-04-03 14:08:24 239

原创 JDK7HashMap为什么会死循环?

① 线程1记录当前迁移的节点为A,下一个将要迁移的节点为B,但是此时线程2刚好执行。⑥ 由于已经成环,因此循环迁移下一个节点永无止境,造成死循环。② 线程2记录当前迁移的节点为A,下一个将要迁移的节点为B。现有两个线程同时对数据进行迁移,都执行。(1)HashMap本身是不支持并发的。⑤ 线程1头插法迁移A,链表成环。③ 线程2迁移A,下一个将迁移B。④ 线程2迁移B,结束。

2025-03-31 08:15:00 401

原创 Java网络编程socket

如:2001:0DB8:0000:0023:0008:0008:200C:417A,省略无效的0 -> 2001:DB8:0:23:8:8:200C:417A。TCP是一种可靠的通信协议,在通信的两端各建立一个Socket对象,通信之前连接已经建立,数据是通过IO流进行网络传输的。② 特殊情况:如果计算出的16进制表示形式中间有多个连续的0,则会进行0位压缩,如:FF01:0:0:0:0:0:0:1101 -> FF01::1101。​③ 速度快,一次只能传输64KB数据,数据不安全,容易丢失。

2025-03-16 20:08:29 794

原创 速成Typescript总结

① 定义变量的类型② 定义函数类型// 函数具体实现// 函数声明③ 自动推断类型let a = 20 // 推断出a是number类型,以后只能存number④ 定义变量能接收的对象类型address?: string, // 属性后面加一个?代表是可选的,即可以赋值,也可以不赋值[key: string]: any // 任意的字符串作为key,值为any类型⑤ 定义枚举类型⑥ 定义类// 定义类// 类继承⑦ 定义抽象类// 抽象类// 抽象方法⑧ 定义接口// 定义接口。

2025-03-15 09:29:04 233

原创 面试java做了一道逻辑题,人麻了

⑦ 将6升桶中的水倒入5升桶,X5=5, X6=3,此时得到6升桶中的3升水。③ 将5升桶水倒掉X5=0,6升桶中的水倒入5升桶,X5=1, X6=0。⑥ 将5升桶水倒掉X5=0,6升桶中的水倒入5升桶,X5=2, X6=0。② 将6升桶中的水倒入5升桶,X5=5, X6=1。⑤ 将6升桶中的水倒入5升桶,X5=5, X6=2。① 6升桶装满,X5=0,X6=6。④ 6升桶装满,X5=1,X6=6。⑥ 6升桶装满,X5=2,X6=6。

2025-03-07 13:22:35 302

原创 Spring切面编程AOP

Spring AOP(面向切面编程)是 Spring 框架提供的一个模块,用于在不修改业务代码的情况下,增强或修改方法的行为。它通过切面(Aspect)实现了横切关注点的解耦,常用于日志记录、事务管理、权限控制等。定义一个控制器,包含一个test方法​System.out.println("test方法执行中...");!!

2025-03-05 19:15:57 848

原创 什么是索引下推?

索引下推是MySQL5.6出现的优化手段,一般在联合索引中出现,对于失效的联合索引字段,在存储引擎层仍会进行条件筛选。如果没有索引下推,失效的联合索引字段并不会在存储引擎层筛选,而是返回到server层进行二次筛选。可以看到在索引层按照索引的匹配规则过滤了一次,在server层又按照非索引字段过滤了一次。可以看到age字段是在server层过滤的,并且存储引擎层进行了两次回表。要理解索引下推,首先知道MySQL架构分层。失效的索引也会在引擎层进行筛选。在MySQL5.6之前。MySQL5.6之后。

2025-03-05 19:14:32 333

原创 Redis搭建集群

现在本机搭建一主二从,主写从读,7001端口的redis为master节点,7002、7003为从节点。至此集群搭建完毕,在master节点写的内容可以在slave节点看到,但是slave节点只能读不能写。③ 给两个从节点配置主节点(只修改7002、7003的节点的redis.conf即可)今天学习了搭建redis集群,以redis6.2.6为例,在windows下搭建。② 打开他们的redis.conf,分别配置端口为7001、7002、7003。⑤ 启动redis-cli,分别连接三台redis。

2025-02-25 17:58:23 529

原创 Win11输入法变成了繁体字,修改回来

右键电脑右下角输入法,进入设置。将繁体中文改为简体中文。

2025-02-19 17:05:12 244

原创 Param ‘serviceName‘ is illegal, serviceName is blank

今天测试nacos服务配置拉取时报了这样一个错误,发现是spring.application.name空值造成的,但是我的bootstrap.yml文件明明配置了,难不成是没有加载bootstrap.yml文件?于是我引入了下面的依赖。果然,程序不报错了,解决!

2025-02-18 18:09:05 237

原创 Nacos源码集群部署

nacos2.x默认会使用三个端口,我们配置的是客户端端口(也是http主端口),主端口+1000为gRPC通信的客服端,主端口+1001为gRPC通信的服务端。因此为了避免端口冲突,我们的集群中不同nacos的端口不能紧邻,所以我们的三台nacos端口分别设置为8841、8843、8845。在任意地方创建nacos-home文件(方便找到集群配置文件等)找到console模块中的Nacos启动类,右键编辑。分别配置三个nacos的启动参数,运行启动即可。

2025-02-16 10:21:09 294

原创 Nacos集群部署

nacos2.x默认会使用三个端口,我们配置的是客户端端口(也是http主端口),主端口+1000为gRPC通信的客服端,主端口+1001为gRPC通信的服务端。因此为了避免端口冲突,我们的集群中不同nacos的端口不能紧邻,所以我们的三台nacos端口分别设置为。修改conf/application.properties文件,分别配置三个nacos的端口(8851、8853、8855)和mysql数据源。将conf/cluster.conf.example复制一份,改名cluster.conf。

2025-02-16 09:56:43 369

原创 nacos2.0.4源码启动

编辑启动类,添加VM选项(如果没有这一项,可以在修改选项中找到并显示),因为源码中是没有这个包的,需要在编译时生成。确定,然后运行Nacos类即可。,也可以在项目根目录执行。在项目maven处执行。解压缩,导入idea。

2025-02-15 17:30:07 228

原创 单例设计模式

单例模式是设计模式中的创建型设计模式,用来保证一个类只能创建一个对象,通常包括饿汉式单例懒汉式单例。

2025-02-14 16:36:22 1120

原创 工厂设计模式

通过一个工厂类。

2025-02-14 16:36:00 470

原创 ThreadLocal相关面试题

答:如果外部对ThreadLocal对象的强引用关系断了,key还使用强引用,就会导致这个ThreadLocal对象无法被回收,同时这个Entry对象和value也无法被回收,就会造成内存泄漏。② 每次执行set方法时,都会清除一些无效的Entry(key为null的Entry,因为key=null证明外部已经不再使用,这个ThreadLocal对象已经被回收)答:如果value用弱引用,被gc回收了,key还存在,但是通过key获取不到数据了。

2025-02-13 08:55:16 223

原创 ReentrantLock底层原理分析

是juc包下的可重入锁,是AQS(AbstractQueuedSynchronizer) 的子类,可以完成公平锁、非公平锁。

2025-02-13 08:00:00 481

原创 Spring切面编程AOP

Spring AOP(面向切面编程)是 Spring 框架提供的一个模块,用于在不修改业务代码的情况下,增强或修改方法的行为。它通过切面(Aspect)实现了横切关注点的解耦,常用于日志记录、事务管理、权限控制等。定义一个控制器,包含一个test方法​System.out.println("test方法执行中...");!!

2025-01-14 10:33:24 563

原创 元素 “context:property-placeholder“ 的前缀 “context“ 未绑定

步骤②,在xsi:schemaLocation中添加如下字符串。

2025-01-13 08:00:00 196

原创 翻转对问题

③ 左侧[left, mid]是i的范围,但是j在i的右侧,所以j的范围为[i+1, mid] + [mid + 1, right],所以在求出j在[i + 1, mid]范围后,还需要求出跨左右范围[mid + 1, right]因为左右范围数据是有序的,假设左范围为[9, 8, 7, 6], 右范围为[5, 4, 3, 2],L指针指向左侧范围数据,R指针指向右侧范围数据,的个数,最简单的思想当前是暴力,遍历每一个i,向后一直寻找满足条件的j,并记录翻转对的个数,但是这样的时间复杂度是O(n^2)

2024-12-24 08:00:00 578

原创 并发编程中数据的可见性

在并发编程中,“可见性”是指一个线程对共享变量的修改是否能被其他线程及时看到的特性。

2024-12-17 21:47:05 386 1

原创 java乱序执行实验

当执行到x=b时,还未执行b=1,那么b=0,x=0,此时a=1已经执行过了,最后y=1。当执行到x=b时,已经执行b=1,那么b=1,x=1,此时a=1已经执行过了,最后y=1。为了对Java代码进行优化,提高执行效率,JVM和编译器对代码进行了优化,有些代码可能会乱序执行。可以看出15s内出现了4次乱序执行,之所以出现这种情况,就是代码从。所以x=0或x=1时,y=1。同理y=0或y=1时,x=1。那么不可能出现x与y同时为0的情况。如果是顺序执行的话,

2024-12-17 21:46:51 356

原创 CAS中的ABA问题

CAS(compare and set)操作是多线程环境处理并发的原子操作,更新一个值前先比较,如果与预期值一样则更新,否则失败。现有线程t1和线程t2,共享变量str="A"① 首先读取str,那么t1中缓存值为A,t2中缓存值也为A,② 紧接着t2修改str为B(str="B"),然后又修改str为A(现在str="A")由于t1中缓存值为A,内存中str也为"A",t1线程就会误以为str没有被修改过。ABA问题最核心在于t1错误的认为str没有被修改过。

2024-12-16 08:30:00 230

原创 ThreadLocal的底层原理

开发中经常会使用到,使用完不调用remove方法时,可能造成内存泄漏,具体的原因需要懂得其原理才行。

2024-12-16 08:00:00 1225 2

原创 二叉树前序遍历

一个二叉树的前序遍历就是对于树中的每一个节点而言,都是先遍历自己,再遍历左右。

2024-12-07 18:05:32 274

原创 最小栈算法

最小栈,即具有栈的基本功能,同时可以用O(1)的时间复杂度取出栈中最小值。

2024-12-07 14:16:27 1049

原创 Windows安装RocketMQ踩坑: Start-Process : 找不到接受实际参数“autoCreateTopicEnable=true”的位置形式参数。

经检查发现是powershell的问题,通过powershell执行命令带有参数时容易遇到各种问题,

2024-12-02 17:22:20 619

原创 LRU缓存

LRU(Least Recently Used)是最近最少使用算法,是操作系统中用于分页置换的算法,如果要向内存中添加分页,并且内存分页已满的情况下,就选出最近一段时间最不常用的分页进行置换(例如将最不常用的分页暂时放到磁盘,这时内存就有一个空闲分页,将新增分页放过来即可)。

2024-11-22 10:26:41 2116

原创 openfeign远程调用请求头丢失

今天做一个微服务项目,订单模块和购物车模块都需压请求头中携带认证信息才可以访问,一开始请求从网关到订单模块时正常访问,后来通过openfeign远程调用时出现了请求头丢失问题,因此请求头中的token无法转发到购物车模块,最后无法访问购物车中的数据。,所以只有与当前请求在同一个线程时才能获取到请求头,然而开启异步任务等于开启了一个新的线程,无法在新的线程中获取到这个请求头。

2024-11-16 09:20:07 1340

原创 阿里云短信服务空指针异常“com.aliyun.credentials.Client.getCredential()“ because “this._credential“ is null

今天使用阿里云的短信服务,发现按照文档进行操作一直报空指针错误,将工程代码下载下来之后还是空指针,检查到最后是阿里提供的工程依赖冲突导致,最简单的解决方式:将配置信息附近的 函数去掉。

2024-11-07 19:27:34 1341 1

原创 windows系统wifi功能消失不见

① win + r 打开提示窗口,输入regedit,进入注册表。这个方法适用于之前装虚拟机没清除干净的小伙伴。一觉醒来电脑wifi功能找不到了,

2024-11-04 13:38:02 1189

原创 vue自定义组件实现v-model双向数据绑定

双向数据绑定:{{$props.value}}点击++

2024-10-30 13:27:58 3954

原创 uniapp实现微信小程序一键登录

实现微信一键登录的流程:① 微信小程序端获取临时凭证codecode只能被消费一次② 将code交给后端③ 后端拿到code,向微信服务器发起请求,拿到openidopenid代表微信用户在一个小程序中的唯一标识,另外拓展一下unionid代表微信用户在企业中的唯一标识④ 后端查询数据库是否存在这个openid,存在则登录,返回token;不存在则注册账号,登录,返回token。

2024-10-21 07:30:00 10553 1

原创 React组件通信

方式1:​ 通过在传递,子组件函数通过props参数接收props参数接收的是一个对象,该对象接收了等方式2:​ 在子组件闭合标签中传递chidren对象,通过子组件函数的props参数接收进行访问这里需要注意的是,如果在子组件闭合标签中只传递1个标签,那么;如果传递了多个标签,chidren将是一个数组。

2024-10-14 20:17:30 1888

原创 新版idea菜单栏展开与合并

新版idea把菜单栏合并了看着很是不习惯,找了半天原来在这里展开。② 点击外观与行为 -> 外观 -> 合并主菜单和窗口标题。① 点击文件 -> 设置。

2024-10-14 20:16:38 1302

原创 html内嵌其他网页iframe

【代码】html内嵌其他网页iframe。

2024-10-09 07:30:00 783

原创 React组件渲染等触发函数useEffect

​ Vue中的onMounted只会在组件初次挂载完毕之后执行一次,​ React中的useEffect可以在初次挂载完毕组件更新组件卸载等时刻执行😄😄😄。

2024-10-08 07:29:58 1168

原创 Redux使用教程

安装,命令行输入。

2024-10-08 07:26:26 873

原创 Redis位图BitMap

假如num二进制为。

2024-10-07 09:08:43 1487 1

原创 SpringBoot接收前端传递参数

请求头(HTTP Headers)路径参数(Path Param)在路径参数中封装的多条数据。

2024-10-07 09:03:47 3437

空空如也

空空如也

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

TA关注的人

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