坚持学习,总会有一些不一样的东西。 一、由单例模式引入 引用一下百度百科的定义—— 线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都…
Java 8 锁机制
主要对Java 8 常用的锁如何使用进行分享 一、synchronized (一)、用法: 1.synchronized可以用在方法(包含静态方法), 2.synchronized块 void…
Java集合(15)--ConcurrentHashMap源码分析
ConcurrentHashMap使用了锁分离技术, 使用了多个锁来控制对hash表的不同部分进行的修改。使用段(Segment)来表示这些不同的…
Java ExecutorService四种线程池及自定义ThreadPoolExecutor机制
一、Java 线程池 Java通过Executors提供四种线程池,分别为:1、newCachedThreadPool:创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。(线程…
ZooKeeper Java例子(六)
A Simple Watch Client 为了向你介绍ZooKeeper Java API,我们开发了一个非常简单的监视器客户端。ZooKeeper客户端监视一个ZooKeeper节点的改变并且通过开始和停止一个程序来…
在JAVA中线程到底起到什么作用!
转自:http://blog.sina.com.cn/s/blog_70a568f40100qbzt.html 这是javaeye上非常经典的关于线程的帖子,写的非常通俗易懂的,适合任何读计算机的同学. 线程同步 我们可…
JVM源码分析之System.currentTimeMillis及nanoTime原理详解
JDK7和JDK8下的System.nanoTime()输出完全不一样,而且差距还非常大,是不是两个版本里的实现不一样,之前我也没注意过这个细节,觉得非常奇怪,于是自己也在本地mac机器上马上测试了一下,得到如下输出: …
Java集合源码分析之超级接口:Collection
Collection是List、Queue和Set的超集,它直接继承于Iterable,也就是所有的Collection集合类都支持for-each循环。除此之外,Collection也是面向接口编程的典范,通过它可以在…
Java集合源码分析→HashMap
HashMap简介 HashMap是基于哈希表和链表实现的,里面的每一个元素都是键值对的形式,通过单链表的形式解决键冲突问题,超过阀值自动扩容。HashMap的size最好是2的倍数,默认大小是16,默认加载因子是0.7…
JAVA集合源码分析系列:ArrayList源码分析
一.ArrayList简介 ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneab…
深入理解java虚拟机——OutOfMemoryError异常
1. Java堆溢出 解决方案:通过内存映像分析工具(如 Eclipse Memory Analyzer)对堆转储快照进行分析,确定时内存泄漏还是内存溢出。 如果是内存泄漏,可进一步通过工具查看泄漏对象到GC Roots…
Java多线程死锁的例子
[java] view plain copy package com.damlab.fz; public class DeadLock&nb…