自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Double使用注意事项

负数注意 UP 和 CEILING,DOWN 和 FLOOR 的区别。不处理无限小数会抛出异常 ArithmeticException。Double 比较推荐使用 compare(a, b)类作为包装类用于处理双精度浮点数。,并通过字符串构造避免初始精度丢失。必须指定舍入模式和精度,处理无限小数。,否则传入的是不精确的二进制值。无法精确表示某些十进制小数(如。对于需要精确计算的场景,使用。),导致运算结果出现误差。

2025-05-25 19:48:51 256

原创 联合索引优化细节:filesort 一定要避免吗?

sql 排序语句中,filesort 中优先级队列的使用?源码解读

2025-05-14 07:00:00 1427

原创 Redis zset数据结构以及时间复杂度总结(源码)

本文以5.1.x 版本为参考,对zset操作时间复杂度进行总结。

2025-04-01 22:50:42 961

原创 NIO ByteBuffer 总结(源码)

读模式 → 写模式(position=0,limit=capacity,数据未删除)。:写模式 → 读模式(limit=position,position=0)。:将未读数据复制到缓冲区头部,position设置为剩余数据末尾,继续写入。应用于通道(Channel)的I/O操作。:重置position为0,用于重新读取数据。:相对位置操作(自动移动position)。:绝对位置操作(不移动position)。是 Java NIO 中一个核心类,

2025-03-23 23:53:23 556

原创 ScheduledThreadPoolExecutor 延迟任务执行原理以及小顶堆的应用(源码)

结合源码,分析ScheduledThreadPoolExecutor 延迟任务执行原理,学习小顶堆在任务调度中的应用

2025-03-23 17:13:57 1086

原创 MySql索引下推(ICP)是什么?有什么用?

MySql索引下推(ICP)是什么?有什么用?

2025-03-12 23:58:26 349

原创 CopyOnWriteArrayList 的实现原理和适用场景(源码)

CopyOnWriteArrayList 写时复制实现原理是什么,适用于什么场景?

2025-03-12 19:00:00 376

原创 CPU 负载 和 CPU利用率 的区别

(2)CPU负载:指特定时间间隔内,系统处于运行状态和等待状态的平均进程数(包括正在运行的进程和不可中断的 I/O 等待进程)。例如,一个系统的CPU负载为1.00, 0.50, 0.25,这表示在过去1分钟内平均有1个进程处于运行或等待CPU,过去5分钟内平均为0.5个,过去15分钟内平均为0.25个。(1)CPU利用率:指在一段时间内 表示 CPU 实际工作时间占总时间的百分比。(3)使用场景:CPU利用率适合评估CPU的工作强度,CPU负载则更适合评估系统整体的性能状态和资源需求。

2025-03-10 23:28:07 369

原创 ConcurrentHashMap从源码总结使用注意事项(源码)

(1)ConcurrentHashMap 明确禁止null键和值,使用时会直接抛出;(2)size() 返回int,可能溢出(当键值对超过时),推荐优先使用。注意计数均为近似值,高并发情况下不保证绝对精确;(3)根据场景调整好初始容量和负载因子,避免频繁扩容(触发transfer方法重组数据、扩容期间会产生更多CPU时间片占用以及内存占用)..;

2025-03-10 21:06:23 848

原创 Linux top 常用参数记录

top命令经常用来监控linux的系统状况,能实时显示系统中各个进程、线程的资源占用情况,是常用的性能分析工具。

2025-03-02 22:06:05 244

原创 Netty是怎么实现Java NIO多路复用的?(源码)

最近想再巩固一下NIO等多路复用的实现思路,本文通过Netty源码来进一步总结NIO多路复用的运用。先上一组简单的NIO多路复用实现,

2025-03-01 23:54:01 927

原创 Redis集群

单节点并发能力有限,集群读写分离提高Redis并发能力;实现Redis缓存高可用;

2025-02-26 23:35:33 1071

原创 记一次内存泄漏导致的线上超时问题

最近新上线功能使用了线程池来优化异步处理消息,对于CPU的使用率有所升高,自从新版本上线后,发现运行每隔几天就会出现超时的问题,经过排查发现是内存泄漏频繁YGC导致的,记录下本次排查的一些思路。

2025-02-26 23:10:01 650

原创 Java线程池底层是怎么创建和运行的?(源码阅读)

项目中越来越多使用到了线程池的来维护和复用线程,用于异步处理业务逻辑,记录一下线程池的底层实现逻辑和运行原理,指导未来对线程池的使用。

2025-02-24 22:57:23 737

原创 微信支付多用户并发使用mweb_url

调用微信下单api返回的mweb_url,若多个用户同时使用这个web_url调起微信的支付中间页,最终只有一个用户可以支付成功。

2022-04-21 13:01:07 636

原创 算法学习随记 - 数组、双指针、哈希表、链表、二叉树、排序、回溯、深度、广度优先遍历相关的几道解题思路

记录一些题目思路一 、有关数组的几道题leetcode 238 除自身以外的乘积leetcode 55 跳跃游戏leetcode560 和为K的连续子数组leetcode31 下一个排列二、双指针的几道题leetcode75 颜色分类leetcode 11 乘最多水的容器leetcode15 三数之和leetcode42 接雨水(困难)三、哈希表的几道题leetcode49 字母异位词leetcode128 最长连续序列四、链表的几道题leetcode2 两数相加leetcode19 删除链表倒数第n个节点

2020-12-13 15:57:36 1102

原创 算法学习随记 - 二分查找

二分查找这里只适用于在数组有序的情况下的查找,因为需要根据数组的排序规则判断所查找值所在的位置范围,逐渐缩小范围最后找到需要查找的值num。//假设数组从小到大排序public int binarySearch(int[] arr,int num){ int left = 0,right = arr.length-1,mid; while(left <= right){ mid = left + (right-left)/2; if(arr[mid

2020-12-13 14:00:20 334

原创 一些官方文档的地址记录

后端:前端:Axios 中文文档https://www.kancloud.cn/yunye/axios/234845

2020-12-06 17:05:21 168

原创 算法学习随记 - 质数 / 素数

首先看看质数或者素数的概念:素数和质数是没有区别的。质数(又称素数),是指在大于1的自然数中,除了1和它本身外,不能被其他自然数整除(除0以外)的数称之为素数(质数)。比1大但不是素数的数称为合数,1和0既非素数也非合数。枚举法枚举小于n的每一个数,判断其是否是质数,累计质数个数。其中判断是否是质数时,是判断某个数是否能被1及其本身以外的数整除,即存在因子y和n/y,判断是否为质数时只需要能取到较小的那个因子判断即可,而较小的那个因此必然小于n \sqrt{n}n​代码如下public i

2020-12-03 17:04:15 855

原创 [Vue warn]: Error in nextTick: “InvalidCharacterError: String contains an invalid character“

一般这个错误就是哪里马虎写多了个什么符号,我这里的问题是写多了一个“逗号”。排错方法,通过大粒度到小粒度的去注释代码并运行,逐步缩小发生错误的范围,最后就找到了。在这里提醒一下自己,以后不要再犯!...

2020-11-30 19:41:27 2742

原创 testWhileIdle is true, validationQuery not set

本人产生该错误是因为版本问题,将项目版本号由1.0.5切换为1.1.8则不报error了。mysql版本是8.0.22<!--引入druid数据源--><dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.8</version></dependency&gt

2020-11-29 19:40:16 143

原创 RabbitMQ死信队列实现定时任务

感谢知识分享 :参考链接1 原理RabbitMQ本身不支持延时队列,但是可以利用以下两大特性曲线实现延时队列:1.1 Time To Live ( TTL )RabbitMQ可以针对Queue设置x-expires 或者针对消息设置x-message-ttl来控制消息的生存时间(都设置则以较短的为准)若超时则消息变为Dead Letter(死信)。1.2 Dead Letter Exchanges(DLX)RabbitMQ可以配置x-dead-letter-exchange和x-dead-le

2020-11-29 18:31:08 677 1

原创 算法学习随记 - 单调栈

记录单调栈学习笔记,以下几道力扣题为例子。第84、 42、739、496、316、901、402、581 题。leetcode84柱状图中最大矩形84原题链接/** * 题目:给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 * 求在该柱状图中,能够勾勒出来的矩形的最大面积。 * * 思路:【找到 当前柱子 左右两边 最接近的且高度小于当前柱子高度的 其他柱子下标,即是以当前柱子为【高】可以扩展的最大矩形的下标范围】 * 其中如何找到左右

2020-11-26 13:44:07 278

原创 Vue一个组件调用另外一个组件的方法

1、当前组件引入将要调用方法所属的组件这里我的当前组件要调用OrderDetail这个组件的check()方法import OrderDetail from "./OrderDetail.vue";该方法定义在OrderDetail的methods属性中2、当前组件通过该组件methods属性直接调用该方法OrderDetail.methods.check();不知道这么调会不会出大事,先做记录。...

2020-11-24 13:19:52 2020

原创 ElementUI+SpringBoot省市区联动查询demo

1.数据库设计表中主要分为四个等级level:国家省份城市区域除了国家,其他都有一个父级idparent_id以下设计级联查询的思路就是通过level和parent_id来查询CREATE TABLE `xp_area` ( `area_id` int(20) NOT NULL COMMENT '地区id', `area_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL

2020-11-23 23:45:59 554

原创 Cookie获取不到后端响应的token值

随笔简单给自己也给需要的人提个醒,给客户端响应cookie时,注意自己的服务器的域名写的是localhost还是127.0.0.1,这两个是不一样的…以我的这个例子,前端是vue项目,在做登录demo时,一开始的url 是 http://localhost/#/nav/login,发现始终获取不到后端响应回来的cookie(存储了用户token),后面将url改成http://127.0.0.1:8080/#/nav/login,就接收到了。此刻的心情,绝了,写一篇日志,希望下次别再又忘了这个问题了

2020-11-23 10:43:57 1052

原创 vue发送axios跨域请求无法带上cookie

解决方案:1前端是vueaxios默认不携带cookie,因此在发送请求时添加参数{withCredentials: true}如//postthis.$http.post( url, data,//数据 {withCredentials: true}//post是第三个参数 ).then((res)=>{ ... }); //getthis.$http.get( url, {withCredentials: true} ).then((res

2020-11-22 12:42:36 874

原创 配置文件failed to convert java.lang.String to java.time.Duration

参考在前 : https://blog.csdn.net/huang007guo/article/details/81625061SpringBoot配置RabbitMQ参数时,一开始配置为spring.rabbitmq.template.retry.initial-interval=1000spring.rabbitmq.template.retry.max-interval=100000报错:Failed to bind properties under 'spring.rabbitmq.t

2020-11-17 12:57:41 1823

原创 springboot打包错误:Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0...

解决方法写在前面:修改maven-resources-plugin的版本<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin&

2020-11-15 17:25:21 59362 82

原创 温习篇01 - Java变量数据溢出时的结果

首先温习一下的原码、反码、补码计算原码、反码、补码计算一、正整数的原码、反码、补码完全一样,即符号位固定为0,数值位相同二、负整数的符号位固定为1,由原码变为补码时,规则如下:1、原码符号位1不变,整数的每一位二进制数位求反,得到反码2、反码符号位1不变,反码数值位最低位加1,得到补码由补码变为原码,规则如下:补码符号位1不变,整数的每一位二进制数位求反,得到反码反码符号位1不变,反码数值位最低位加1,得到原码数据溢出的情况在计算机中数据的存储都是用补码的编码方式存储的。对一个数

2020-11-10 16:39:43 285

原创 jvm学习篇04 - 类加载机制

《深入理解Java虚拟机》读后速记。类加载机制的概念虚拟机把描述类的数据从Class文件中加载到内存中,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程就称之为虚拟机的类加载机制。类加载的时机一个类的生命周期包括如下七个阶段:加载、验证、准备、解析、初始化、使用、卸载,其中验证、准备、解析统称为连接。一般来说这些过程都是按顺序开始执行的(注意这里是“开始”,因此每个过程都不必等待前一个过程完成之后才能开始执行,他们是相互交叉混合进行的),除了解析这个过程,它也

2020-11-09 23:12:42 137 1

原创 jvm学习篇03 - Java与线程

《深入理解Java虚拟机》读后总结。通用的角度看实现线程三种方式内核线程实现内核线程KLT(Kernel-Level Thread) 是由操作系统内核所支持的线程,内核通过 调度器(Thread Scheduler) 对线程进行调度。程序一般不会直接使用内核线程,而是使用内核线程的高级接口——轻量级进程,也就是我们所说的线程。每个轻量级进程都由一个内核线程支持,因此只有先支持内核线程才支持轻量级继承。这种内核线程和轻量级进程1:1的关系称为一对一的线程模型。优点:由于每一个轻量级进程都有一个内核

2020-11-01 16:27:32 153

原创 jvm学习篇02 - Java内存模型

还是《深入理解Java虚拟机》的一些读后总结。这一部分主要涉及到“如何高效并发”的问题,虚拟机如何实现在多线程环境下,解决各个线程因为共享和竞争数据而带来的一系列问题。高速缓存与指令重排序为了充分利用CPU资源:(1)由于计算机的内存读写速度与CPU的运算速度存在几个量级的差距,因此在内存与CPU之间引入了读写速度接近于CPU的高速缓存作为缓冲。内存将需要运算的数据复制到缓存中,让运算能快速进行;CPU在运算完之后将结果复制到缓存中,再同步回主存。这样CPU就无需等待缓慢的内存读写了。每个处理器

2020-11-01 13:43:16 111

原创 Shiro实现记住我功能时报错org.apache.ibatis.executor.ExecutorException: Cannot get Configuration as config

好久没用这个Shiro了,最近在用时突然想实时Shiro的RememberMe功能,在关闭浏览器再次进入页面时,发现报错org.apache.ibatis.executor.ExecutorException: Cannot get Configuration as configuration factory was not set.直接讲原因吧,我之前是用了mybatis的延迟加载来进行查询:用户信息user -> 用户角色role ->用户权限perms,然后在使用Shiro进行记住我

2020-10-21 10:51:31 433

原创 jvm学习篇01 - 垃圾回收机制

垃圾回收机制判断一个对象是否回收引用计数器:每个对象都有一个引用计数器,当存在某个地方引用了该对象,则该对象引用计数器就加1,当某个对象的引用计数器值为0时证明没有其他地方引用了该对象,则该对象就是可以被回收的。但是这种方式存在循环引用的问题,因此Java不使用这种方式。可达性分析算法:以一组GC Roots为起点,根据引用关系向下搜索,走过的路径我们称之为引用链,若某个对象存在到GC Roots的引用链,则该对象是可达的,这些对象就是存活的不会被垃圾收集器回收。若不可达的对象,要真正宣告该对象死亡

2020-09-22 00:04:06 150

原创 NoSuchMethodError: com.baomidou.mybatisplus.core.MybatisConfiguration.getLanguageDriver...

可能原因:是原来的mybatis的jar 和 mybatis-plus的jia冲突了。今天学习mybatis-plus遇到了这个问题。花了一点时间。在学习mybatis-plus时,因为使用的IDEA的maven工程,之前mybatis的jar也从父工程继承了,后面又引入了mybatis-plus的jar,报了这个错,将继承去掉之后,程序正常运行。...

2020-06-02 18:32:19 4425

原创 IDEA添加依赖报错:Unable to import maven project: See logs for details

找了半天的问题,最后发现仅仅是因为我用的IDEA2018无法兼容maven3.6.0版本以上…下个maven3.5.4替代原maven即可就可以了。你要是使用的其他版本的,也可以搜索一下相关版本的兼容性。System.out.println("希望是这个问题的小伙伴可以不走太多弯路呀,太坑了!")...

2020-05-25 17:52:03 196

原创 Eclipse的项目部署到tomcat服务器(war包的方式)

基本步骤1 右击项目,选中Export2 选择导出为war包,next3 选择war包路径Destination,点击Finish4 复制该war包,直接粘贴到tomcat/webapp下4 然后 就直接启动tomcat就可以运行啦!发现除了直接在eclipse启动项目可以部署以外,还可以用war包的方式来部署项目到tomcat,记录一下。1 右击项目,选中Export2 选择导出为war包,next3 选择war包路径Destination,点击Finish然后可

2020-05-24 18:48:30 759

空空如也

空空如也

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

TA关注的人

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