albon arith

一些总结,欢迎交流

自动内存管理的艺术【笔记】

自动内存管理的艺术 引言 标记-清扫回收 概述 三色抽象 位图标记 懒惰清扫 标记-整理回收 概述 局限性 复制式回收 引用计数法 分代垃圾回收 概述 时间测量 弱分代假说 分代与堆布局 多分代 年龄记录 分代间指针 自动内存管理的艺术 引言 存活性是一个...

2018-06-02 12:09:53

阅读数:35

评论数:0

消息队列 RocketMQ 设计学习

消息队列 RocketMQ 设计学习 概述 一个消息队列的实现需要关注哪些问题点?需要实现哪些功能? 先说最通用的功能,任何系统都需要考虑的功能: 系统结构 高可用 高性能 再说,MQ 特有的功能: Message Order At Least Once 消息查询 消息堆积能力 ...

2018-05-21 14:40:54

阅读数:88

评论数:0

DirectByteBuffer 里的堆外内存何时释放?

DirectByteBuffer 里的堆外内存何时释放? 简要答案 DirectByteBuffer 在分配堆外内存时: 先要通过 Bits.reserveMemory 来看看是否还有可用的内存,是否达到了堆外内存的上限?有的话,占坑。 通过 unsafe.allocateMemory...

2018-03-11 22:14:07

阅读数:94

评论数:0

利用 Java Agent 和 Instrument 技术录制线上流量

利用 Java Agent 和 Instrument 技术录制线上流量 Java Instrument 技术 遇到的难题 自动打包依赖 ClassNotFound 问题 HttpServletRequest body 只能 get 一次 利用 Java Agent 和 Inst...

2018-02-04 11:06:17

阅读数:166

评论数:0

Netty 权威指南笔记(八):EventLoopGroup 和线程模型

一般情况下,I/O 复用机制需要事件分发器(event dispatcher)。 事件分发器的作用,即将那些读写事件源分发给各读写事件的处理者,就像送快递的在楼下喊: 谁谁谁的快递到了, 快来拿吧!开发人员在开始的时候需要在分发器那里注册感兴趣的事件,并提供相应的处理者(event handler...

2017-11-16 23:51:22

阅读数:203

评论数:0

Netty 权威指南笔记(七):ChannelPipeline 和 ChannelHandler 源码分析

Netty 的 ChannelPipeline 和 ChannelHandler 机制类似于 Servlet 和 Filter 过滤器,这类拦截器实际上是职责链模式的一种变形,主要是为了方便事件的拦截和用户业务逻辑的定制。 Servlet Filter 过滤器提供了一种面向对象的模块化机制,用来...

2017-11-07 14:14:33

阅读数:535

评论数:0

Netty 权威指南笔记(六):Channel 解读

JDK 的 NIO 类库中,提供了 SocketChannel 和 ServerSocketChannel 用于非阻塞 I/O 操作。类似于 NIO 的 Channel,Netty 提供了自己的 Channel 和其子类实现。

2017-11-06 09:48:35

阅读数:212

评论数:0

Netty 权威指南笔记(五):ByteBuf 源码解读

Java 本身提供了 ByteBuffer 类,为什么 Netty 还要搞一个 ByteBuf 类呢?因为 ByteBuffer 类有着许多缺点: 1. ByteBuffer 长度固定,无法动态伸缩。 2. ByteBuffer 只有一个位置指针 position,读写的时候需要手工调用 fli...

2017-11-03 14:04:10

阅读数:331

评论数:0

Netty 权威指南笔记(四):架构剖析

对 Netty 的架构进行剖析,学习其设计,便于在今后的架构设计中,设计出高性能、高可靠、可扩展的产品。

2017-11-02 12:54:04

阅读数:236

评论数:0

Netty 权威指南笔记(三):TCP 粘包和拆包

TCP 是一个“流”协议,所谓“流”就是没有界限的一串数据。大家可以想像河流里的水,期间并没有分界线。TCP 底层并不了解上层业务数据的具体含义,它会根据 TCP 缓冲区的实际情况进行包的划分。所以,在业务上,一个完整的包可能会被 TCP 拆分成多个包进行发送,也有可能把多个小的包,封装成一个大的...

2017-11-01 15:33:07

阅读数:178

评论数:0

《深入理解 Java 内存模型》笔记总结

简单的说,内存模型描述了某个程序的可能行为。内存模型包含一组规则,规定了一个线程的写操作何时对另一个线程可见。在程序行为满足这些规则的情况下,JVM 可以自由地进行代码转换,比如重排序和非必要的同步移除,代码转换往往是为了提升性能。

2017-10-31 10:29:14

阅读数:180

评论数:0

Netty 权威指南笔记(二):Java NIO 和 Netty 对比

Netty 是业界流行的 NIO 框架之一,它的健壮性、功能、性能、可定制性和可扩展性在同类框架中都说首屈一指的,也已经得到了成百上千商用项目的验证。Netty 框架都有什么优点呢? 1. API 使用简单,开发门槛低。 2. 功能强大,预置多种编解码功能,支持多种主流协议。 3. 定制能力强,...

2017-10-30 15:29:22

阅读数:2162

评论数:1

Netty 权威指南笔记(一):网络 I/O 模型和 Java NIO 入门

网络 I/O 模型和 Java NIO 入门Java I/O 模型的实现离不开底层操作系统的支持,所以这里先讲一下 Linux 网络 I/O 模型。Linux 网络 I/O 模型简介同步阻塞 I/O 模型最常见的模型是

2017-10-29 15:58:30

阅读数:470

评论数:0

Spring 框架学习(四):AOP

Aspect 是一种新的模块化机制,用来描述分散在对象、类或函数中的横切关注点。从关注点中分离出横切关注点是面向切面的程序设计的核心概念。分离关注点使得解决特定领域问题的代码从业务逻辑中独立出来,业务逻辑代码中不再含有针对特定领域问题代码的调用,业务领域同特定领域问题的关系通过切面来封装、维护,这...

2017-10-26 15:09:37

阅读数:177

评论数:0

Spring 框架学习(三):IoC 容器

IoC 容器的核心是依赖反转模式。许多应用都是由两个或多个类通过彼此的合作来实现业务逻辑的,这是的每个对象都需要与其合作对象的引用。如果这个获取过程要靠自己实现,那将导致代码高度耦合并且难以测试。在 Spring 中通过把依赖对象的获取交给 IoC 容器来完成,在解耦代码的同时提高了代码的可测试性。

2017-10-25 11:15:25

阅读数:222

评论数:0

Spring 框架学习(二):Spring 应用配置文件讲解

初学 Spring 的时候,只是照猫画虎,对于每一项配置的由来并不十分了解。这里,我们深入了解一下,这些配置都起到了什么作用?

2017-10-22 10:29:12

阅读数:164

评论数:0

Spring 框架学习(一):设计理念、整体架构

总结一下,Spring 的设计理念是: 1. IoC 控制反转:降低了对象之前的耦合关系,简化了应用的开发。 2. AOP 面向切面编程:方便以动态的、非侵入的方式,增强服务的功能。 3. 面向接口编程:作为平台,核心功能之外服务,都可以选择不同的技术实现。

2017-10-20 14:21:39

阅读数:422

评论数:0

Java 并发框架 Disruptor 源码分析:RingBuffer

Disruptor 是一个高性能的线程间通信库。它来自于 LMAX 对并发、性能和非阻塞算法的研究,如今交易系统基础架构的核心部分。这里,我们围绕其基础数据结构 RingBuffer,深入源码学习一下其实现。

2017-10-17 20:05:08

阅读数:319

评论数:0

Effective Java 读书笔记(十):序列化

谨慎地实现 Serializable 接口 考虑使用自定义的序列化形式 保护性地编写 readObject 方法 对于实例控制枚举类型优先于 readResolve 考虑用序列化代理代替序列化实例

2017-10-16 16:00:19

阅读数:144

评论数:0

Effective Java 读书笔记(六):方法

检查参数的有效性 必要时进行保护性拷贝 谨慎设计方法签名 慎用重载 慎用可变参数 返回零长度的数组和集合而不是 null 为所有导出的 API 元素编写文档注释

2017-10-15 19:53:47

阅读数:170

评论数:0

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