最后的 main 方法,不是有示例么
编译原理-LR(0)文法算法实现(java)本篇文章内的源码: 这里[https://gitee.com/wo883721/compilers] 我们知道 LL1 文法是自顶而下的语法分析,从文法开始符号起,采用最左推...
Rocketmq 使用 namesrv 来管理所有的元数据信息,包括主题 Topic 路由信息和 Broker 信息。首先我们介绍一下一些基础概念: Broker : 储存消...
Rocketmq 使用 Netty 实现了 remoting模块(即 RPC 模块)。 一. RemotingClient 和 RemotingServer 接口 1.1 R...
@歇尔一赫 是的,A是被消除的
编译原理-消除左递归算法(java代码实现)本篇文章内的源码: 这里[https://gitee.com/wo883721/compilers] 当我们自顶向下的语法分析时,就需要采用最左推导方式。而这个时候,如果产生...
对于Mac无法读取硬盘\U盘问题 怎么解决? 首先,硬盘不能正常在mac上显示可能是硬盘出现了错误无法使用,也可能是硬盘的文件系统格式不适合在mac上使用,或者是之前对硬盘的...
今天我们来分析AOP 技术的核心: 代理。 代理的作用就是在不改变目标方法的情况下,为目标方法添加新功能。 一. 介绍 1.1 静态代理 运行结果: 这是一个静态代理的标准写...
这里总结一下我使用Redis的一些心得,主要是参考了Redis设计与实现 和 Redis开发与运维 这两本书。 一. Redis 对象 1.1 简单动态字符串 SDS len...
在前面的文章中,我们分析了Class 这个字节码文件的格式,知道了字节码的作用,那么我们就可以直接生成字节码文件,加载到当前的 JVM 中运行,这个在AOP 场景中经常用到。...
上一章[https://www.jianshu.com/p/131cc4e3b87e]中介绍了字节码文件的基本结构,这一章我们介绍字节码文件中的属性,属性的通用格式如下: a...
我们知道javac 命令可以将 .java 文件编译成 .class 文件,而这个Class 文件 中包含了Java虚拟机指令集、符号表以及若干其他辅助信息;最终将在Java...
在内存管理(jemalloc3)[https://www.jianshu.com/p/c9b6f8735f5d] 这篇文章中,我们介绍了在Netty 4.1.45 版本之前使...
在平常开发的时候,经常使用到线程本地变量,这种类型的变量会在每个线程中都有一份,互相不会产生影响,这样来解决多线程并发问题。那么是如何实现的呢? 一. ThreadLocal...
一. 前置内容 本篇文章是对JVM 指令集的详解,为了防止读者没有接触过这方面内容,对读懂指令集的前置知识做一个简单介绍。 1.1 数据类型 众所周知,java 的数据类型分...
Netty 是一个高性能的网络应用程序框架,主要就是进行数据的交互,所以必须有一个高效的内存分配器。内存分配器的功能就两个: 用户申请内存时,分配给它内存块。 用户主动释放内...
这个解码器是用来处理那种包含头和内容体结构的数据。 它是 MessageToMessageDecoder 的子类: 名字定义I它是 S,C,O 的父接口S表示开始类型数据,即...
每个网络应用程序都必须定义如何解析在两个节点之间来回传输的原始字节,以及如何将其和目标应用程序的数据格式做相互转换。这种转换逻辑由编解码器处理,编解码器由编码器和解码器组成,...
一. NioSocketChannel 1.1 构造方法 NioSocketChannel 继承自AbstractNioByteChannel 类,先看看AbstractNi...
一. NioUnsafe 接口 NioUnsafe 接口比 Unsafe 多了四个方法: SelectableChannel ch() 返回底层的NIO通道 剩下三个方法都与...
一. AbstractChannel 1.1 构造方法 可以看出在构造方法中,就绑定了这个通道的四个成员变量 parent,id,unsafe,pipeline。 id 和 ...