51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

开发笔记

 Redis 是如何完美驾驭 Reactor模型和 IO多路复用机制?

Redis 是如何完美驾驭 Reactor模型和 IO多路复用机制?

厉飞雨 阅读(69) 评论(0) 赞(3)

Hello,Hi,你好,我是猿java。 Reactor模型 {#Reactor模型} ---------------------- Reactor 模型,它是一种优秀的编程模型,主要是用于服务器端处理高并发网络 IO 请求。Reactor 模型的核心思想包含下面 2个"3种": * 3种事件:连接事件、写事件、读事件; * 3种角色:reactor、...

 Spring bean的生命周期详解!

Spring bean的生命周期详解!

厉飞雨 阅读(76) 评论(0) 赞(4)

你好,我是猿java。 Spring Bean 是 Spring 框架中最核心的概念之一,它代表了一个由 Spring 容器管理的对象。这篇文章,我们将分析 Spring bean的生命周期以及对应的源码分析。 Spring Bean 的生命周期 {#Spring-Bean-的生命周期} ====================================== Spr...

 Netty 是如何解决半包和粘包问题?

Netty 是如何解决半包和粘包问题?

厉飞雨 阅读(85) 评论(0) 赞(4)

你好,我是猿java。 Netty 是一个高性能、异步事件驱动的网络应用框架,广泛应用于各种网络通信场景。这篇文章,我们将详细分析 Netty 是如何解决半包和粘包问题。 什么是半包和粘包? {#什么是半包和粘包?} ====================== 半包问题 {#半包问题} ------------ 半包问题是指一个完整的应用层消息被分成多个 TCP 数据...

 什么是 Heap dump?Java 如何生成 Heap dump?

什么是 Heap dump?Java 如何生成 Heap dump?

厉飞雨 阅读(73) 评论(0) 赞(4)

你好,我是猿java。 在 Java中生成 Heap dump(堆转储)是进行内存分析和故障排查的重要手段,Heap dump 是Java虚拟机(JVM)在某一时刻内存使用情况的快照。这篇文章将分析几种常见的生成 Head dump的方式。 Heap dump是什么? {#Heap-dump是什么?} ============================== Heap...

ThreadLocal如何保证线程安全?

ThreadLocal如何保证线程安全?

厉飞雨 阅读(91) 评论(0) 赞(3)

你好,我是猿java。 身为java程序员,当你想跳槽加薪(特别是高阶岗位),ThreadLocal似乎成为了一个不可回避的知识点,除了面试,如果你扒过框架源码,也会在很多场景看到ThreadLocal的身影,ThreadLocal是大牛Doug Lead的杰作,一个从jdk 1.2 版本就存在的宝藏,今天就让我们一起来揭开它那神秘的面纱! > 声明:本文源码均基于 j...

千呼万唤始出来:Java终于发布了

千呼万唤始出来:Java终于发布了"协程"--虚拟线程!

厉飞雨 阅读(64) 评论(0) 赞(3)

你好,我是猿java。 今天分享的内容是 Java 的一个重量级功能:虚拟线程。 背景 {#背景} -------- 2022-09-20,JDK 19 发布了GA版本,备受瞩目的协程功能也算尘埃落地,不过,此次 GA版本并不是以协程来命名,而是使用了 Virtual Thread(虚拟线程),并且是 preview预览版本。小编最早关注到协程功能是在 2020年,那...

Java 小知识:JDK版本这样多,该如何选择?

Java 小知识:JDK版本这样多,该如何选择?

厉飞雨 阅读(91) 评论(0) 赞(4)

你好,我是猿java。 今天分享的内容是:如何在众多的 JDK版本中选择最合适你的版本。 背景 {#背景} -------- Java 是一种广泛使用的计算机编程语言,拥有跨平台、面向对象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发,下图为Java的 logo: ![img.png](/images/post/java/java.png) 鉴于 Ja...

新一代 Java垃圾回收神器:ZGC

新一代 Java垃圾回收神器:ZGC

厉飞雨 阅读(55) 评论(0) 赞(5)

你好,我是猿java。 今天我们分享的内容是:新一代 Java垃圾回收神器:ZGC。 ZGC 定义 {#ZGC-定义} ---------------- ZGC(The Z Garbage Collector),是一种可扩展的低延迟垃圾收集器,主要是用来处理超大内存(TB级别)的垃圾回收。 ZGC 最初是 JDK 11 以一项实验性功能引入的,经过几个版本的迭代,最终...

颠覆认知:一向主张可扩展性的Java,为何要推出封闭类?

颠覆认知:一向主张可扩展性的Java,为何要推出封闭类?

厉飞雨 阅读(93) 评论(0) 赞(5)

你好,我是猿java。 当你还在 JDK 8驰骋沙场,大张旗鼓搞可扩展性时,JDK 15却已暗度陈仓:"偷偷摸摸"搞起了 Sealed Classes(封闭类)的功能,为何一向主张可扩展性的 Java,却会反其道而行之,推出封闭类这个功能?今天就让我们一起来聊聊这期中的原委。 > 申明:本文基于 jdk-17.0.5 2020年,给 JDK 15增...

Lua script attempted to access a non local key in a cluster node

Lua script attempted to access a non local key in a cluster node

厉飞雨 阅读(87) 评论(0) 赞(6)

你好,我是猿java。 使用 {#使用} -------- 业务场景是电商库存计算,公司使用的是redis cluster集群,因为涉及到一些简单的库存计算,为了保证原子性,特使用了lua脚本,lua的函数脚本如下: |---------------------------------------------|-------------------------------...