
JavaCore
JeremyJiaming
知其然,知其所以然。
展开
-
文件传输——JavaIO流
前言 近期发现自己IO流掌握的不够熟练,遂跟着慕课的一套课花了半天时间系统练了一遍手。整理笔记和代码如下,也参杂了自己的理解。课程链接 代码按照章节上传到了我的GitHub上: 脑图概览(简要): 注:每章内容前都有本章的脑图,方便复习,也可根据需要查看内容。 第1章 文件的编码 文本文件就是字节序列,可以是任意编码的字节序列。 所以一切从文件的编码说起。 utf-8...原创 2019-08-13 18:36:44 · 581 阅读 · 0 评论 -
ConcurrentHashMap源码分析
put方法 public V put(K key, V value) { return putVal(key, value, false); } final V putVal(K key, V value, boolean onlyIfAbsent) { if (key == null || value == null) throw new NullPointerExc...原创 2019-09-01 23:35:31 · 248 阅读 · 0 评论 -
ArrayBlockingQueue源码分析
前言 如果说CHM的源码对并发分片和CAS操作运用的淋漓尽致,那么ABQ则是Lock & Condition类的使用参考书~ 阻塞队列的应用 见名知义,ABQ是基于数组实现的阻塞队列。 大家常用的MQ、Kafka使得程序之间实现解耦。同理,阻塞队列使得线程之间进行数据通信与解耦。 举一个熟悉场景——用户注册成功后,增加积分。通常,我们可以通过MQ来实现注册、积分操作的异步与...原创 2019-09-02 13:26:27 · 260 阅读 · 0 评论 -
AtomicInteger源码分析
前言 AtomicInteger使得在高并发的场景下,可以安全的操作整数的增减。主要原理是采用Unsafe.CAS操作。 原子操作类 多线程同时对int i进行操作,可能导致原子性问题。 可以加Synchronized悲观锁解决,考虑到性能问题,JDK1.5后,J.U.C包提供Atomic包 → 对常用数据结构做原子操作。 J.U.C中的原子操作类有: 原子基本类型 Atomi...原创 2019-09-02 15:02:00 · 281 阅读 · 0 评论