线程安全之原子操作 发表于 2019-06-28 线程安全之原子操作案例1234567891011121314151617181920212223package com.wyj.jvm.lock;public class LockDemo { volatile int i = 0; public void add() ... 阅读全文 »
并发系列之JVM内存模型、线程安全可见性 发表于 2019-06-27 并发系列之JVM内存模型、线程安全可见性为什么会有内存模型?案例12345678910111213141516171819202122232425262728package com.wyj.jvm.thread;import java.util.concurrent.TimeUnit;public ... 阅读全文 »
RocketMQ-消息发送基本流程 发表于 2019-04-24 RocketMQ-消息发送基本流程 消息发送流程主要的步骤:验证消息、查找路由、消息发送(包括异常处理机制) 从org.apache.rocketmq.client.producer.DefaultMQProducer类的send方法开始追踪 1234567891011121314DefaultMQ ... 阅读全文 »
聊聊线程 发表于 2019-03-27 聊聊线程1.volatile和synchronized对比?1).volatile仅能使用在变量级别; synchronized则可以使用在变量、方法、和类级别的2).volatile仅能实现变量的修改可见性,并不能保证原子性; synchronized则可以保证变量的修 ... 阅读全文 »
聊聊IO流 发表于 2019-03-26 聊聊IO流1.什么是IO流?计算机中的流就是连续的数据流,I/O流就是输入源和输出目标之间的数据流。 2.讲讲五种IO模型?参考:IO模型 3.仔细讲讲IO多路复用模型, select, poll, epoll?参考:select, poll, epoll详解 4.java中有哪些类型的流?从两个角 ... 阅读全文 »
聊聊GC 发表于 2019-03-25 聊聊GC1.为什么java需要GC?GC是垃圾收集的意思(Gabage Collection),当一个对象不能再被后续程序所引用到时,这个对象所占用的内存空间就没有存在的意义了,java虚拟机会不定时的去检测内存中这样的对象,然后回收这块内存空间。用域从而达到自动回收内存的目的,Java语言没有提供 ... 阅读全文 »
聊聊JVM 发表于 2019-03-22 聊聊JVM1.为什么java需要虚拟机?JVM,Java Virtual Machine,中文名就是虚拟机。Java 的原始码文件格式名为*.java,经过编译器翻译过后,会变成*.class的格式文件位元码。如果想要执行这个位元码档案,目标平台上必须安装有JVM(Java Virtual Mach ... 阅读全文 »
聊聊类加载机制 发表于 2019-03-21 聊聊类加载机制类加载机制虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 1:什么是类加载器类加载器负责加载java类到java虚拟机的内存空间中,类通常是按需加载,即第一次使用该类时才加载。由 ... 阅读全文 »
聊聊java集合 发表于 2019-03-20 聊聊java集合1:java中有哪些集合类型主要有三种list(有序、可重复),set(无序、不能重复),map(键值对,键唯一、值不唯一) 集合主要有:ArrayList、LinkedList、HashSet、LinkedHashSet、HashMap、TreeMap 2:ArrayList和Li ... 阅读全文 »
RocketMQ路由中心NameServer 发表于 2019-02-22 RocketMQ路由中心NameServerNameServer架构设计 Producer同一时间,与NameServer集群中其中一台建立长连接。 Producer与Broker之间的Master保持长连接。 Consumer同一时间与NameServer集群中一台建立长连接。 Consumer与 ... 阅读全文 »