自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Nacos配置中心服务端源码解析

Nacos配置中心服务端源码解析

2022-11-27 02:15:46 220

原创 Nacos 注册流程分析(二)

nacos服务端注册流程分析

2022-11-19 15:48:11 825

原创 Nacos 注册流程分析(一)

nacos注册流程分析

2022-11-12 21:55:09 545

原创 RocketMQ的push消费过程分析

Push 消费过程主要分为如下几步:1. 通过 DefaultMQPushConsumerImpl 进行拉取消息, 将消息保存在本地缓存队列。2. 消费消息。由消费服务 ConsumeMessageConcurrentlyService 或者 ConsumeMessageOrderlyService 将本地缓存队列中的消息不断放入消费线程池, 异步回调业务消费代码, 此时业务代码可以消费消息。3. 保存消费进度。业务代码消费后,将消费结果返回给消费服务,再由消费服务将消费进度保存在本地。1

2021-04-18 18:45:03 455

原创 RocketMQ的DefaultMQPullConsumerImpl的拉取消息流程分析

1. DefaultMQPullConsumerImpl 通过pullSyncImpl(MessageQueue mq, SubscriptionData subscriptionData, long offset, int maxNums, boolean block, long timeout)来拉取消息。 通过 pullAPIWrapper 该类的方法对broker发起请求PullResult pullResult = this.pull...

2021-03-21 18:20:20 497

原创 Java的反序列化机制

Java反序列化是指把字节序列恢复为Java对象的过程, ObjectInputStream类的 readObject() 方法用于反序列化。 首先看下readObject() 方法。 public final Object readObject() throws IOException, ClassNotFoundException { if (enableOverride) { return readObjec...

2020-12-26 22:29:24 199

原创 Java的序列化机制

Java序列化机制允许将实现序列化后的Java对象转换为字节序列, 这些字节序列可以保存在磁盘上, 或通过网络传输, 最后可以通过反序列化转换为原来的Java对象。对象序列化得到的字节序列包括该对象的数据, 有关对象类型的信息和存储在对象中数据的类型。整个过程都是Java虚拟机独立的,也就是说,在一个平台上序列化的对象可以在另一个完全不同的平台上反序列化该对象。类ObjectOutputStream 和 ObjectInputStream是高层次的数据流, 它们包含反序列化和序列化对象的...

2020-12-12 18:37:05 210

原创 TreeMap的部分源码分析

1. TreeMap是基于红黑树来实现的,它的特点是可排序,既可以按照键的自然顺序排序,也可以按照创建时指定的比较器进行排序。它的增删查改的时间复杂度为O(logn)。2. 它的构造函数public class TreeMap<K,V> extends AbstractMap<K,V> implements NavigableMap<K,V>, Cloneable, java.io.Serializable{ /** * Th

2020-07-25 22:59:28 122

原创 LinkedHashMap源码分析

LinkedHashMap 内部通过双向链表来维护节点的顺序, 可以按插入先后顺序来获取节点的值。 在实现上,它是继承于HashMap的,覆写了其中的部分方法。1. LinkedHashMap 的构造方法构造方法基本是和HashMap的方法类似,它的成员变量增加了头节点指针,尾节点指针,是否按访问顺序迭代 这三个成员变量。 /** * HashMap.Node subclass for normal LinkedHashMap entries. ...

2020-07-18 21:35:20 169

原创 @Async注解的源码分析

1. 首先看下该注解的定义@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface Async { /** * A qualifier value for the specified asynchronous operation(s). * <p>May be used to determine the tar

2020-06-07 15:39:43 654

原创 FutureTask的源码分析

FutureTask 实现了RunnableFuture 这个接口,在run()方法中, 获取任务执行的结果,记录在outcome 字段中。它定义了一个state变量,记录了线程池异步任务执行的状态。通过判断任务状态和比较任务状态,来设置任务运行的结果和异常信息。它把state设置为volatile变量,可以保证它的可见性。public class FutureTask<V> implements RunnableFuture<V> /** The underl.

2020-05-31 16:28:18 1417

原创 ConcurrentHashMap

ConcurrentHashMap的并发思路是将Map分为多个Segment,每个Segment含有一个类似HashMap中的hash表,每个hash表中的元素都是一个 键值对Entry,它可以组成一个链表。

2017-08-27 21:16:40 265

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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