java
阿踏踏踏踏
这个作者很懒,什么都没留下…
展开
-
log4j配置
废话不多说,先上代码: <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPElog4j:configurationSYSTEM"log4j.dtd"> <log4j:configurationxmlns:log4j="http://jakarta.apache.org/log4j/"> <...原创 2015-09-24 10:29:02 · 322 阅读 · 0 评论 -
编写可执行的jar
这里写了一个批量删除zookeeper节点的工具jar,关于如何生成可执行jar请参照我的另外一篇博客:Maven生成可以直接运行的jar包的多种方式, 主要是在main函数中对传入的参数进行处理: package com.zk; import com.zk.util.ZookeeperCuratorUtils; import org.apache.curator.framework.C原创 2017-07-13 11:15:12 · 889 阅读 · 0 评论 -
面试必备:LinkedHashMap源码解析(JDK8)
概括的说,LinkedHashMap 是一个关联数组、哈希表,它是线程不安全的,允许key为null,value为null。 它继承自HashMap,实现了Map接口。其内部还维护了一个双向链表,在每次插入数据,或者访问、修改数据时,会增加节点、或调整链表的节点顺序。以决定迭代时输出的顺序。 默认情况,遍历时的顺序是按照插入节点的顺序。这也是其与HashMap最大的区别。 也可以在构转载 2018-05-09 15:44:23 · 170 阅读 · 0 评论 -
JAVA7/8中的HashMap
Java7 HashMapHashMap 是最简单的,一来我们非常熟悉,二来就是它不支持并发操作,所以源码也非常简单。首先,我们用下面这张图来介绍 HashMap 的结构。如图,HashMap 里面是一个数组,数组中每个元素是一个单向链表,每个元素对应一个Entry,通过next指向下一个Entry。put 过程分析public V put(K var1, V var2) { //...原创 2018-05-06 20:19:10 · 458 阅读 · 0 评论 -
Java8 - IdentityHashMap源码
一、概述先来看看源码中的部分注释,这能够让我们对这个容器有一个初步的了解:This class implements the Map interface with a hash table, using reference-equality in place of object-equality when comparing keys (and values). In other words, i...转载 2018-05-13 17:22:59 · 187 阅读 · 0 评论 -
源码上分析ArrayList/LinkedList的性能
环境: JDK8 概述: ArrayList底层是一个数组,数组又容量限制,超出限制时会增加50%容量,默认第一次插入元素时创建大小为10的数组。 LinkedList是一个双向链表 参考其内部类Node private static class NodeE> { E item; //当前元素 NodeE> next; //前驱元素原创 2018-05-08 17:45:05 · 300 阅读 · 0 评论 -
ReentrantLock源码解析
前言: ReentrantLock是java并发包中的同步组件,属于排他锁,其通过CAS的加锁方式相比较synchronized更加轻便,不会造成死锁,其核心实现是其两个内部类FairSync和NonfairSync,意为公平锁和非公平锁,ReentrantLock相关的加锁解锁等方法内部其实都是调用的这两个内部类的对应方法,公平锁和非公平锁都继承了AbstractQueuedSynchroni...原创 2019-02-28 18:20:20 · 280 阅读 · 0 评论