自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 用字节码解释try、catch、finally、i++、++i的执行结果
原力计划

为什么finally代码块一定会被执行?

2020-07-13 20:04:01 72

原创 JVM系列之垃圾回收器(下篇),最前沿的垃圾回收技术——ZGC
原力计划

目前为止,最牛逼的垃圾回收器

2020-07-13 20:02:23 42

原创 JVM系列之垃圾回收器(下篇)——Shenandoah垃圾回收器
原力计划

为什么Shenandoah垃圾回收器的延时很低?

2020-07-13 20:01:13 74

原创 JVM系列之垃圾回收器(中篇)——G1的运行原理以及调优思路
原力计划

G1垃圾回收器的回收原理

2020-07-13 19:59:53 96

原创 JVM系列之经典垃圾回收器(上篇)
原力计划

垃圾回收器

2020-07-13 19:58:33 163

原创 JVM系列之STW、并行与并发、安全点与安全区域

封面前言在平时实际工作中,其实接触 JVM 的机会比较少,而学习 JVM 时,大部分时候也是看书或者网上看博客教程,然而在学习过程中,经常会碰到很多陌生的名词,难以理解,尤其是在垃圾回收...

2020-06-18 00:56:31 81

原创 JVM系列之垃圾收集算法
原力计划

清除-标记算法、复制算法、清除-压缩算法

2020-06-17 18:24:30 76

原创 垃圾回收之标记算法
原力计划

引用计数算法、可达性分析算法

2020-06-17 18:20:53 60

原创 一道看了答案都不知道为什么的面试题
原力计划

intern()方法、字节码指令、JVM内存结构

2020-06-17 18:18:52 143

原创 优先级队列PriorityQueue源码分析

优先级队列PriorityQueue源码分析

2020-06-17 18:16:25 72

原创 重温《数据结构与算法》之堆与堆排序
原力计划

堆与堆排序

2020-06-17 18:14:39 59

原创 MySQL是如何对LRU算法进行优化的?又该如何对MySQL进行调优?
原力计划

MySQL是如何对LRU算法进行优化的?又该如何对MySQL进行调优?

2020-06-17 18:11:48 123

原创 垃圾回收之垃圾标记算法

封面前言作为 Java 开发人员,其实是非常幸福的,因为 JVM 的存在,使得 Java 开发人员不需要像 C 或者 C++开发人员那样需要手动申请内存、释放内存,这些资源申请、垃圾回收...

2020-06-16 00:26:07 24

原创 MySQL中order by语句的实现原理以及优化手段
原力计划

order by工作原理,SQL如何优化,索引失效

2020-05-12 10:26:05 89

原创 最短路径问题——迪杰斯特拉算法(Dijkstra)
原力计划

迪杰斯特拉算法(Dijkstra)

2020-05-12 10:24:41 122

原创 面试官:为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的?
原力计划

为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的?自增id用完后会出现什么现象?

2020-05-12 10:22:56 496

原创 为什么《阿里巴巴Java开发手册》中强制要求主键id是自增的

前言在《阿里巴巴 Java 开发手册》第五章 MySQL 规定第九条中,强制规定了单表的主键 id 必须为无符号的 bigint 类型,且是自增的。为什么会这样强制规定呢?为什么通常主键...

2020-05-12 02:17:01 54

原创 如何解决八皇后问题
原力计划

回溯法,八皇后问题

2020-04-24 15:09:39 90

原创 MySQL索引的工作原理
原力计划

MySQL中索引是如何工作的?

2020-04-24 15:08:17 142

原创 MySQL为什么不用数组、哈希表、二叉树等数据结构作为索引呢
原力计划

MySQL为什么要用B+Tree作为索引的数据结构,而不用数组、哈希表、二叉树等数据结构作为索引呢

2020-04-24 15:06:47 190

原创 索引数据结构之B-Tree与B+Tree(下篇)
原力计划

B+Tree的数据结构,为什么MySQL选择使用B+Tree作为索引的数据结构,而不是B-Tree

2020-04-21 18:09:57 92

原创 索引数据结构之B-Tree与B+Tree(上篇)
原力计划

B+Tree 和 B-Tree的数据结构究竟长什么样

2020-04-21 18:08:10 76

原创 redo log —— MySQL宕机时数据不丢失的原理
原力计划

redo log如何保证MySQL在宕机时数据不丢失

2020-04-21 18:06:29 362

原创 backlog与TCP三次握手之间不得不说的事

JDK在创建套接字,可以为服务端配置backlog参数的值,在netty中我们也可以通过ChannelOption.SO_BACKLOG来设置。那么backlog参数到底有什么作用呢?它又是如何工作的呢?

2020-01-17 10:16:24 210

原创 Netty源码分析系列之writeAndFlush()下

write()只会将数据只是发送到了ChannelOutboundBuffer 缓冲区中,还没有被发送到操作系统的套接字中只有当调用了 flush()方法后,才会真正将数据发送到套接字中。那么 flush()方法的源码又是如何执行的呢?

2020-01-11 15:47:52 171

原创 Netty源码分析系列之writeAndFlush()上

当我们的业务逻辑处理完成后,就需要给客户端响应消息,这就涉及到服务端如何通过 channel 将响应消息写出去的流程了,同时还会涉及到消息的编码过程,因为在 TCP 协议中,数据最终是通过字节流传输的,而我们通常在业务代码中是返回一个对象,因此需要进行编码。接下来本文将会重点分析这两个的过程的源码实现。

2020-01-07 21:36:11 128

原创 Netty源码分析系列之常用解码器(下)——LengthFieldBasedFrameDecoder

在上一篇文章中分析了三个比较简单的解码器,今天接着分析最后一个常用的解码器:**LengthFieldBasedFrameDecoder**,这是一个基于长度字段的解码器。什么意思呢?就是在发送的数据中,使用一个字段来表示数据的长度,这样当接收方接收到数据后,先读出这个长度字段,读到了长度字段,那就知道了这次发送的数据有多长,这样就能解码出数据了。

2019-12-31 19:49:30 62

原创 Netty源码分析系列之常用解码器(上)

netty中几种常用的解码器,你知道它们的实现原理吗?一文带你搞懂解码器的原理

2019-12-30 23:47:05 54

原创 Netty源码分析系列之TCP粘包、半包问题以及Netty是如何解决的

什么是粘包、半包现象?UDP协议会存在这个问题吗?netty又是如何解决粘包、半包问题的呢?

2019-12-29 19:57:37 98 1

原创 Netty源码分析系列之新连接的接入

当 netty 的服务端启动以后,就可以开始接收客户端的连接了。那么在 netty 中,服务端是如何来进行新连接的创建的呢?

2019-12-27 10:45:40 31

原创 Netty源码分析系列之NioEventLoop的执行流程

NioEventLoop作为一个NIO事件轮询器,到底在循环处理什么呢?JDK中臭名昭著的空轮询BUG,在netty中又是如何避免的呢?

2019-12-23 02:09:37 73

原创 Netty源码分析系列之NioEventLoop的创建与启动

NioEventLoop的启动时机是什么时候?

2019-12-21 19:59:16 47

原创 Netty源码分析系列之服务端Channel的端口绑定

扫描下方二维码或者微信搜索公众号菜鸟飞呀飞,即可关注微信公众号,阅读更多Spring源码分析和Java并发编程文章。微信公众号问题本文内容是接着前两篇文章写的,有兴趣的朋友可以先去阅读下两篇文章: Netty 源码分析系列之服务端 Channel 初始化 和 Netty 源码分析系列之服务端 Channel 注册由于 Netty 是对 JDK 原生 NIO 的封装,对比 J...

2019-12-15 20:18:12 120

原创 Netty源码分析系列之服务端Channel注册

Netty中服务端channel是如何注册到多路复用器上的?

2019-12-15 14:35:09 56

原创 阻塞队列LinkedBlockingQueue实现原理

阻塞队列时如何实现阻塞的?为什么它是线程安全的?

2019-12-13 10:13:55 41

原创 Netty源码分析系列之服务端Channel初始化

Netty中服务端的Channel是如何初始化的

2019-12-06 07:58:48 50

原创 Netty源码分析系列之Reactor线程模型

什么是Reactor线程模型?Netty作为一款高性能的网络框架,其底层使用的网络IO模型是什么呢?

2019-12-02 10:47:53 83

原创 别再问我Runnable、Callable、Future、FutureTask有什么关联了

Runnable和Callable有什么区别?Future和FutureTask又有什么关联?

2019-11-30 14:13:33 72

原创 如何从BIO演进到NIO,再到Netty

如何从BIO演进到NIO,再到Netty

2019-11-25 10:19:12 85

原创 面试官:为什么《阿里巴巴Java开发手册》上要禁止使用Executors来创建线程池

面试官:为什么《阿里巴巴Java开发手册》上要禁止使用Executors来创建线程池

2019-11-22 21:28:15 1612

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