java
文章平均质量分 95
周英俊520
这个作者很懒,什么都没留下…
展开
-
JPDA学习
一、JPDA简介JPDA is a multi-tiered debugging architecture that allows tools developers to easily create debugger applications which run portably across platforms, virtual machine (VM) implementations and JDK versions.---文档原介绍, 我理解JPDA就是对Java整个调试和监控体系的集成,我们实际原创 2021-03-08 17:15:24 · 2434 阅读 · 0 评论 -
Spark Streaming源码阅读(0)楔子
本篇文章主要是引出作者阅读源码的主要原因: 主要原因就是最近前端和后端BUG都写的太多了,老大无路可走,强心干预我进行项目开发,所以就派了个阅读源码的活交给我,想让我学懂了以后进行分享,基于感恩心理,作者打算认真阅读源码. 最后感叹一句, 写BUG真是太好了!!! ...原创 2018-11-19 13:04:58 · 98 阅读 · 1 评论 -
构建器模式
在学习Spark和Flink的时候对相应的SparkSession和TableSource的创建方式有着较深印象,看了effective java后了解到了一个构建器模式, 这个构建器模式的设计是为了弥补静态工厂方法和构造器方法各自的不足而产生的。1.静态工厂方法有名称,构造器一直是类名, 这样静态工厂方法的代码更为清晰, 防止开发人员容易使用错的构造器API,并且...翻译 2019-02-17 21:21:16 · 157 阅读 · 0 评论 -
Spark Streaming源码阅读(2)DAGScheduler
(一)DAGSchedulerdagScheduler会为每个job计算出它的Stage有向无环图(DAG),它会把每个stage作为1个tasksets提交到taskScheduler 然后将他们运行在集群当中,一个taskset包含多个task, (stage划分的阶段是在submitJob中将job提交到EventLoop的时候,在DAGScheduler当中有一个doOnReceive...原创 2019-05-09 16:24:33 · 250 阅读 · 0 评论 -
Redis分布式锁
上班摸鱼, 良心难安https://www.cnblogs.com/mengchunchen/p/9647756.html转载 2019-03-01 11:13:55 · 113 阅读 · 0 评论 -
HashMap接口
// 1. putMap<String, String> map = new HashMap<>(); map.put("a","A"); map.put("b","B"); String v = map.put("b","v"); // 输出 B System.out.println(v); ...原创 2019-06-15 12:08:20 · 2633 阅读 · 0 评论 -
volatile学习
代码编译成字节码被类加载器加载到jvm当中,jvm执行这个字节码转成汇编指令在cpu上执行,volatile修饰的共享变量在进行写操作的这个代码转化成汇编时会多出一个Lock指令前缀, 这个指令在多核处理器下会引发两件事1)将当前处理器缓存行的数据写回到系统内存。2)这个写回内存的操作会使在其他CPU里缓存了该内存地址的数据无效.先说一下带有高速缓存的CPU执行计算的流程 程序以...原创 2019-05-10 16:16:28 · 89 阅读 · 0 评论 -
JVM学习
JVM内存模型管理1.程序计数器可看做是当前线程所执行的字节码的行号指示器,字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器完成。(线程执行Java方法时计数器记录的是虚拟机字节码指令的地址,Native方法时计数器值为空)。2.虚拟机栈描述的是Java方法执行的内存模型,每个方法在执行的同...翻译 2019-05-10 14:22:03 · 78 阅读 · 0 评论 -
图解ConcurrentHashMap1.8源码
1.8的ConcurrentHashMap在线程安全方面做的设计主要是通过CAS + Synchronized 来保证并发操作的。数据结构和HashMap一致,但是在设计方面会有细节的区别, 首先从Node类开始参考,我会尽量找出一些和HashMap不同的关键点来做分析有助于帮助理解线程安全的设计思想。另外补充一个CAS的开销问题https://www.jianshu.com/p/21be83...翻译 2019-05-13 18:56:15 · 635 阅读 · 2 评论 -
HashMap源码分析
HashMap 成员变量主要是负载因子和阈值。// 根据构造函数查看阈值的计算public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial...翻译 2019-05-14 15:51:10 · 88 阅读 · 0 评论 -
AQS原理解析
AQS(AbstractQueueSynchronizer) 即 抽象队列同步器, 听起来非常拗口, 没有关系,暂且先记住队列、同步这两个关键字,需要把它理解为一个框架,即用来实现多线程访问共享资源的同步框架。比如ReentrantLock、Semaphore、CountDownLatch等等的实现都依赖于这个同步框架。AQS的原理是CLH锁的一个变种,根据某大佬的博客讲解,一般的自旋锁会将并...原创 2019-04-09 23:54:34 · 250 阅读 · 0 评论 -
寻找链表存在环时 环的头结点
偶然发现很多文章和牛客、leetcode上的说明都是错的, 大部分的公式貌似都以为fast结点多走一圈就和slow相遇, 貌似没有考虑到fast可能会多跑了n圈的结果.fast结点每次走两步, slow结点每次走一步公式如下:假设链表头结点到环的头结点长度为A环的头结点到第一次相遇的结点距离为B,环的长度为 R那么 slow走过的距离为 A + B, fast走过的...原创 2019-03-02 11:42:26 · 339 阅读 · 0 评论 -
幂等实现方案
https://segmentfault.com/a/1190000015884659转载 2019-03-01 11:18:37 · 441 阅读 · 0 评论 -
Redis学习和使用
https://www.cnblogs.com/think-in-java/p/5123884.html 已实现 easyhttp://blog.csdn.net/u013256816/article/details/51125842 jedis操作详解!写一个接口类JedisClient 然后用下面的实现类将具体代码补上。 第二步在spring中配置这个bean1.public class...转载 2018-03-16 16:08:18 · 283 阅读 · 0 评论