作者小头像 Lv.2
更多个人资料
83 成长值
0 关注
1 粉丝
+ 关注 私信

个人介绍

一个专注「死磕 Java」的硬核程序员

感兴趣或擅长的领域

开发语言、微服务架构、数据库
个人勋章
TA还没获得勋章~
成长雷达
60
3
0
0
20

个人资料

个人介绍

一个专注「死磕 Java」的硬核程序员

感兴趣或擅长的领域

开发语言、微服务架构、数据库

达成规则

以上满足项可达成此勋章

  • 博客
  • 关注
  • 粉丝
  • 论坛
全部时间
全部时间
最近三天
最近一周
最近一月
  • 全部
  • 死磕 java
四个问题彻底搞定 synchronized
synchronized 是 java 中一个重量级嘉宾,属于面试中常客,它很容易理解,但又比较难。大明哥认为要想彻底弄懂它,你只需要回答这四个问题就可以了:synchronized 的实现原理是怎样的?synchronized 锁的是什么?synchronized的锁升级过程是怎样的?synchronized的锁优化是怎样的? synchronized 的实现原理是怎样的?synchron...
Java 任务调度
作者小头像 大明哥 2024-11-20 22:06:24
1756
0
0
2024-11-20 22:06:24
999+
0
0
三个问题彻底搞懂 ThreadLocal
问题一:什么是ThreadLocal,它的实现原理是什么?ThreadLocal 是 Java 并发中一个非常重要的类,是用来解决Java多线程程序中并发问题的一种途径。它为每个使用该变量的线程提供一个独立的变量副本,因此每个线程都可以独立地改变自己的副本,而不会影响其他线程中的副本,线程之间的竞态条件被彻底消除了。ThreadLocal 的核心原理是为每个线程提供一个独立的变量副本,从...
Java 任务调度
作者小头像 大明哥 2024-11-19 23:24:47
1822
0
0
2024-11-19 23:24:47
999+
0
0
基于 Netty 实现自定义协议
在上篇文章[Netty 进阶 — Netty 的编解码器]大明哥阐述了 Netty 的常用解码器,这些解码器都是开箱即用的,它提供了 TCP 拆包/粘包的通用解决方案。但是只解决拆包/粘包问题还不够,因为我们在实际开发过程使用的 Java 对象,我们需要将发送端传递过来的消息解析成 Java 对象才能使用,所以这篇文章我们将在这个基础上来探讨如何利用 Netty 实现自定义通信协议。 通用协...
Java TCP/IP
作者小头像 大明哥 2024-11-19 22:58:20
2782
0
0
2024-11-19 22:58:20
999+
0
0
深入理解 Netty 的编解码器
上篇文章大明哥已经详细分析了粘包/粘包的问题,并深入阐述了粘包/粘包的深层原因,既然知道了产生它的原因,那么下一步我们就是解决它了。 拆包/粘包解决方案TCP 是面向字节流的协议,它是无法区分数据包界限的。既然底层的 TCP 协议无法区分,那我们就只能在应用层下功夫了 。目前在应用层主流的解决方案有三种:固定长度双方约定一个固定的长度,比如 100 个字节,那么发送端在发送消息时,每个报文都...
TCP/IP
作者小头像 大明哥 2024-11-19 22:55:12
2743
0
0
2024-11-19 22:55:12
999+
0
0
深入理解拆包/粘包
编解码技术是实现网络通信的根本,从这篇文章开始,大明哥将用三篇文章来彻底说清楚 Netty 的编解码技术。其实在 死磕 Java NIO 一文 【死磕 Java NIO】— 消息边界的处理 中大明哥就已深入分析了在 Java NIO 消息边界的问题以及相对应的解决方案,下面我们来看 Netty 的吧。 现象演示首先我们需要知道什么是拆包/粘包现象。假设客户端向服务端发送两个数据包,分别为 ...
Java TCP/IP
作者小头像 大明哥 2024-11-19 22:52:24
2451
0
0
2024-11-19 22:52:24
999+
0
0
深入理解 Java 中的增强型伪随机数生成器
随机数,这个没有小伙伴没有用过吧,Java 提供了几个用于生成随机数的类,他们使用起来是这么地简单,以至于我们很少去认真的对待随机数的具体结果,就好像它是真的随机一样。 Java 17 之前的伪随机数生成器在 Java 17 之前,Java 的随机数生成主要依赖于下面两个核心类:java.util.Randomjava.security.SecureRandom Random该类是最最基本的...
Java 任务调度
作者小头像 大明哥 2024-11-19 22:48:10
2611
0
0
2024-11-19 22:48:10
999+
0
0
深入理解 Java 中的模式匹配 的Switch 表达式
Switch 表达式Java 12 引入 Switch 表达式,它解决了传统 Switch 语句的两个缺陷:"Fall-through" 行为:在没有显式 break 语句的情况下,Switch 语句会从一个 case “穿透” 到下一个 case,忽略了这个会导致不可饶恕的错误。代码冗余:每个 case,我们都需要重复类似的代码结构,增加了代码的冗余和维护难度。Switch 表达式引入...
Java
作者小头像 大明哥 2024-11-19 22:46:03
1880
0
0
2024-11-19 22:46:03
999+
0
0
Java 接口的进化之路
Java 接口我相信所有学过 Java 的人一定都知道,而且我也相信 99% 的人一定都背过这个面试题:Java 接口和抽象类的区别是什么?答案都是什么接口方法不能有实现,都是抽象的,接口的方法都默认为 public 修饰等等之类的,这些在 Java 8 之前是正确的,但是随着 Java 的发展,它不再是正确的了。这篇文章就跟着大明哥一起来探索 Java 接口的进化之路。 出生:Java 1...
Java
作者小头像 大明哥 2024-11-19 22:43:52
1609
0
0
2024-11-19 22:43:52
999+
0
0
Java 中字符串的进化之路
字符串作为 Java 中使用最为广泛的,自诞生之初就经历了不断地演进和优化,本篇文章跟着大明哥一起来探索 Java 字符串的进化之路,一起来领略字符串是如何茁壮成长的。 Java 1.0:诞生之初在 Java 诞生之初,字符串是通过 char 类型的数组实现的,char 类型在当时是固定为 16 位的,用于表示 UTF-16 编码的字符。字符串从一开始就设计为不可变的,这意味着一旦一个字符串...
Java
作者小头像 大明哥 2024-11-19 22:42:37
1897
0
0
2024-11-19 22:42:37
999+
0
0
为了NullPointerException,你知道Java到底做了多少努力吗?
null 何错之有?对于 Java 程序员而言,NullPointerException 是最令我们头疼的异常,没有之一 ,大明哥相信到这篇文章为止一定还有不少人在写下面这段代码:if (obj != null) { //...}NullPointerException 是 Java 1.0 版本引入的,引入它的主要目的是为了提供一种机制来处理 Java 程序中的空引用错误。空引用(N...
Java
作者小头像 大明哥 2024-11-19 22:39:15
4465
0
0
2024-11-19 22:39:15
999+
0
0
https://www.baidu.com/s?ie=utf-8&f=3&rsv_bp=0&rsv_idx=1&tn=baidu&wd=sed%20%E6%9B%BF%E6%8D%A2%E5%AD%97%E7%AC%A6%E4%B8%B2&rsv_pq=c7db61a600035dc5&rsv_t=5e19yEsbV9N5fIvdlGRU
作者小头像
作者小头像
快速交付
+ 关注