一个想写小说的程序员

苟日新,日日新,又日新。

JAVA知识总结目录

1,NIO 5种网络IO模型介绍 5种网络IO模型介绍 多路复用IO模型中的select和epoll 多路复用IO模型中的select和epoll 2,JVM内存模型+垃圾回收机制 JVM内存模型+垃圾回收机制 3,MQ 4,redis 5,源码,hashMap,Concurre...

2018-11-14 19:42:40

阅读数 140

评论数 0

ThreadLocal 变量和 与线程池配合使用时可能会出现的问题

ThreadLocal 变量和 与线程池配合使用时可能会出现的问题 ThreadLocal 的介绍和使用 先看下ThreadLocal变量的使用 public void set(T value) { Thread t = Thread.currentThread(); ...

2019-01-16 11:46:18

阅读数 187

评论数 0

JAVA垃圾回收的几点知识

JAVA垃圾回收的几点知识 GC Root对象 因为java垃圾回收机制都是采用可达性分析法,所以需要有根对象来作为起始点,下面是可以作为GC Root的对象: 1.虚拟机栈(栈帧中的本地变量表)中引用的对象 2.方法区中的类静态变量引用的对象 3.常量池中对象。(方法区中) 4.本...

2019-01-15 14:27:37

阅读数 53

评论数 2

二叉树的层序遍历算法 + 打印二叉树所有最左边的元素(算法)

二叉树的层序遍历算法 + 打印二叉树所有最左边的元素(算法) 层序遍历 /** * 树结构定义 */ private static class BinaryNode<T> { BinaryNode(T theElemen...

2018-12-26 17:00:24

阅读数 232

评论数 0

快排算法的Java实现

快排算法的Java实现 快排的核心是找到在无序数组中找到一个数,然后将比他小的数字放在他的左边,比他大的数字放在他的右边。然后递归的对左右两边进行继续排序,直到完成,下面看算法的实现: public static void sort(int a[], int start, int end) { ...

2018-12-26 14:30:07

阅读数 411

评论数 0

二叉树前序、中序、后序遍历求法

二叉树前序、中序、后序遍历相互求法 二叉树的三种遍历方法: 前序遍历: 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树 中序遍历: 1.中序遍历左子树 2.访问根节点 3.中序遍历右子树 后序遍历: 1.后序遍历左子树 2.后序遍历右子树 3.访问根节点 三种方法的特点: 前序:开头是头...

2018-12-17 16:24:55

阅读数 29

评论数 2

Java中 synchronized 关键字的理解

synchronized 关键字的理解 在Java中,synchronized 是一个重量级的控制并发的关键字。 这个关键字可以保证并发过程所必须的“原子性”,“可见性”,“有序性” 一,用法: 在方法内加锁: synchronized 块在代码编译后生成的字节码中实际上是加上monit...

2018-12-13 21:49:31

阅读数 53

评论数 0

LinkedHashMap 的理解以及借助其实现LRU

LinkedHashMap 的理解以及借助其实现LRU LinkedHashMap中有一个参数 accessOrder,这个参数定义了LinkedHashMap的访问顺序。 LinkedHashMap中继承了Node,给Node新增了2个新的属性before和after static clas...

2018-12-12 17:32:28

阅读数 84

评论数 0

ConcurrentHashMap源码学习

ConcurrentHashMap源码学习 自从学习了AQS之后,想着重新读一下ConcurrentHashMap的源码来加深下理解,所以有了这篇文章,针对ConcurrentHashMap常用的方法进行分析。 0,基础知识以及一些字段的含义 1.8中的ConcurrentHashMap使用...

2018-12-11 22:35:25

阅读数 27

评论数 0

AQS理解之七——AQS中的条件队列

AQS中的条件队列 在AQS中还实现了一个类,ConditionObject,它实现了Condition接口,实现一个绑定在锁上的条件队列。 先看看他的uml图。 主要方法 它实现了Condition接口,主要实现的方法是await和signal以及它们的带时间参数方法。 条件队列的一般用法: ...

2018-12-10 16:58:42

阅读数 73

评论数 0

AQS理解之六,AQS的其他实现类

AQS理解之六,AQS的其他实现类 1,ThreadPoolExecutor 中的 Worker 类 protected boolean tryAcquire(int unused) { if (compareAndSetState(0, 1)) { set...

2018-12-10 13:44:05

阅读数 43

评论数 0

AQS理解之五—并发编程中AQS的理解

AQS理解之五—并发编程中AQS的理解 首先看下uml类图: AbstractOwnableSynchronizer 这个类定义是提供一个创建锁的基础,设置一个排它线程,帮助控制和监控访问。 先看下AbstractQueuedSynchronizer 这个类的内部变量。 Head和tail是...

2018-12-09 11:45:09

阅读数 95

评论数 0

AQS理解之四—看看我们写的和 ReentrantLock 的公平不公平锁的区别

AQS理解之四,看看我们写的和 ReentrantLock 的公平不公平锁的区别 首先看下ReentrantLock的lock和unlock方法。 不公平锁版本lock方法 final void lock() { if (compareAndSetState(0, 1)) ...

2018-12-09 11:34:32

阅读数 116

评论数 0

AQS理解之三,由刚才写的锁转变成一个公平锁

AQS理解之三,由刚才写的锁转变成一个公平锁 在第二节里我们实现了一个不公平的锁,之所以说它不公平,主要是因为加锁后解锁时,阻塞的其他线程获取到的锁的可能是随机的,并不是按照顺序来确定的,如果要转变为公平锁,我们应该要记录这个进入的顺序,并在解锁时必须满足是第一个阻塞等待的线程才解锁。 其次,...

2018-12-09 10:37:02

阅读数 35

评论数 0

AQS理解之二,自己设计一个锁

AQS理解之二,自己设计一个锁 一,实现锁的条件 首先我们想一想,如果我们自己实现一个类似于java中的锁,我们可能需要哪些必要的东西: 1,记录是哪个线程持有了锁。 2,如果有一个变量代表加锁,A线程加锁,需要让B线程能看见,这里需要可见性,所以我们可能要用到volatile变量。 3...

2018-12-08 23:33:41

阅读数 27

评论数 0

深入浅出理解锁之—— AbstractQueuedSynchronizer

并发编程中AQS的深入理解 前一段时间学习了AQS的代码,对java中的锁有了新的理解,用这篇博客来记录下。大概分为以下几个部分。 一,基础知识——LockSupport 二,自己设计一个锁 三,由刚才写的锁转变成一个公平锁 四,看看我们写的和ReentrantLock的公平不公平锁的区...

2018-12-08 21:24:24

阅读数 88

评论数 0

Java内存模型与happens-before原则

Java内存模型 Java内存模型不同于Jvm内存模型,Java内存模型(JMM)规定了JVM必须遵循一组最小保证,这组保证规定了对变量的写入操作在何时将于其他线程可见。 一,平台的内存模型 二,重排序 再没有充分同步的程序中,如果调度器采用不恰当的方式来交替执行不同线程的操作,那...

2018-12-05 16:11:48

阅读数 93

评论数 0

线程池工作原理

线程池工作原理 线程池状态的切换: 线程池关键类的uml图: 线程池就是把任务提交和任务执行解耦。 首先看一下线程池的使用: public static void main(String args[]) throws InterruptedException { Ex...

2018-11-29 11:54:21

阅读数 58

评论数 0

java.util.concurrent 包下面的所有类

java.util.concurrent 包下面的所有类 原子操作数类: java.util.concurrent.atomic.AtomicBoolean.class java.util.concurrent.atomic.AtomicInteger.class java.util.concur...

2018-11-20 16:44:54

阅读数 216

评论数 0

RocketMq namesvr 最佳实践

RocketMq namesvr 最佳实践 翻译自RocketMQ官方文档 Apache RocketMQ中,name servers被设计用来协调分布式系统的每个部分,协调主要是完成topic路由信息管理。 管理包含两部分 Brokers 定期更新在name server中的 meta dat...

2018-11-19 16:39:41

阅读数 109

评论数 0

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