自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JVM】为什么ThreadLocal被设计为弱引用

为什么ThreadLocal被设计为弱引用

2023-11-04 21:26:35 1841 2

原创 【JVM】OOM类型及解决方案

jmap -heap查看是否内存分配过小;查看是否有明显的对象分配过多且没有释放情况;jmap -dump导出 JVM 当前内存快照,使用 JDK 自带或 MAT 等工具分析快照。如果上面还不能定位问题,那么需要排查应用是否在不断创建资源,比如网络连接或者线程,都可能会导致系统资源耗尽。

2023-10-30 17:29:52 500 1

原创 【JUC】lock()方法为什么要放在try语句之前

不推荐,原因在于加锁操作可能会抛出异常,如果加锁操作在try块之前,那么出现异常时try-finally块不会执行,程序直接因为异常而中断执行;如果加锁操作在try块中,由于已经执行到了try块,那么finally在try中出现异常时仍然会执行,此时try中的加锁操作出现异常,finally依然会执行解锁操作,而此时并没有获取到锁,执行解锁操作会抛出另外一个异常,虽然都是抛出异常结束,但是。所以,加锁之后直接执行try块,不要执行predo操作。为何加锁操作需要在try之前,能否在try块中执行呢?

2023-10-28 11:29:35 483 1

原创 【分布式】雪花算法

由于41位是时间戳,我们的时间计算是从1970年开始的,只能使用69年,为了不浪费,其实我们可以用时间的相对值,也就是以项目开始的时间为基准时间,往后可以使用69年。如果前端直接使用服务端生成的long 类型 id,会发生精度丢失的问题,因为 JS 中Number是16位的(指的是十进制的数字),而雪花算法计算出来最长的数字是19位的,这个时候需要用 String 作为中间转换,输出到前端即可。表示的其实就是x位全是1的值,也就是x位的二进制能表示的最大数值。异或计算之后,其实得到的,就是后面3位全是1。

2023-10-27 17:28:07 90 1

原创 【消息队列】RabbitMq和Kafka的区别

作为常见的两大消息传递系统,相信大家都有一个疑问:究竟什么场景该选用RabbitMq,什么时候又该使用Kafka呢?不同的场景需要不同的解决方案,选错一个方案能够严重的影响你对软件的设计,开发和维护的能力。这篇文章会先介绍RabbitMQ和Apache Kafka内部实现的相关概念。紧接着会主要介绍这两种技术的主要不同点以及他们各自的优缺点,最后我们会说明一下怎样选择这两种技术。

2023-10-16 22:08:51 419 1

原创 【WEB】@Controller和原生Servlet的区别

@Controller和原生Servlet的区别

2023-10-15 16:42:04 314 1

原创 迭代器模式遍历的优点

迭代器模式遍历的优点

2023-03-27 15:26:22 396

原创 JAVA数组排序后遍历速度变快

JAVA数组排序后遍历速度变快

2023-01-05 20:22:23 235

原创 Java对二维数组进行排序

Java对二维数组进行排序

2022-12-09 15:39:07 4320

原创 SQL查询语句中的 limit 与 offset 的用法

SQL查询语句中的 limit 与 offset

2022-12-09 10:47:48 666

原创 函数(方法)中引用变量传递时的易错点

调用的方法中new了新的对象并赋给形参,即使实参是对象集合或者数组,实参的内容也不会改变。

2022-09-29 20:56:54 371 1

空空如也

空空如也

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

TA关注的人

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