随笔分类 -  javase 源码

关于java的一些基础部分
摘要:HashMap 源码分析 基于jdk1.8分析 1:数据结构: transient Node<K,V>[] table; //这里维护了一个 Node的数组结构; 下面看看Node的数据结构,Node是它的一个内部类: static class Node<K,V> implements Map.En 阅读全文
posted @ 2019-07-19 17:25 beppezhang 阅读(321) 评论(0) 推荐(0)
摘要:CopyOnWriteArrayList 源码分析: 1:成员属性: final transient ReentrantLock lock = new ReentrantLock(); //内部是通过ReentrantLock来保证线程安全的,通过一个非公平锁 private transient v 阅读全文
posted @ 2019-07-19 17:18 beppezhang 阅读(197) 评论(0) 推荐(0)
摘要:1:几个重要的常量定义 private static final int MAXIMUM_CAPACITY = 1 << 30; //map 容器的最大容量 private static final int DEFAULT_CAPACITY = 16; // map容器的默认大小 private s 阅读全文
posted @ 2019-07-19 17:16 beppezhang 阅读(344) 评论(0) 推荐(0)
摘要:1:数据结构: transient Object[] elementData; //说明内部维护的数据结构是一个Object[] 数组 成员属性: private static final int DEFAULT_CAPACITY = 10; private static final Object[ 阅读全文
posted @ 2019-07-19 17:14 beppezhang 阅读(191) 评论(0) 推荐(0)
摘要:hashMap的底层实现是 数组+链表 的数据结构,数组是一个Entry<K,V>[] 的键值对对象数组,在数组的每个索引上存储的是包含Entry的节点对象,每个Entry对象是一个单链表结构,维护这下一个Entry节点的引用;有点绕,用个图来展示吧: Entry<K,V>[] 数组部分保存的是首个 阅读全文
posted @ 2017-03-17 17:25 beppezhang 阅读(438) 评论(0) 推荐(0)
摘要:LinkedList是基于双向链表数据结构来存储数据的,以下是对LinkedList 的 属性,构造器 ,add(E e),remove(index),get(Index),set(inde,e)进行源码分析: 属性: 2构造器: 3:方法:add(E e) linkedLast(e) 源码 Nod 阅读全文
posted @ 2017-03-17 12:21 beppezhang 阅读(826) 评论(0) 推荐(0)
摘要:项目中经常会用到LinkedList集合来存储数据,打算写一篇LinkedList的源码解析,而LinkedList是基于链表结构存储数据的,这篇博文将解析链表数据结构,包括单向链表和双向链表; 1:单向链表: 单向链表的链表对象维护了一个 first 引用,该引用指向节点链表中的第一个节点对象,每 阅读全文
posted @ 2017-03-17 10:53 beppezhang 阅读(24158) 评论(0) 推荐(0)
摘要:在项目中经常会用到list集合来存储数据,而其中ArrayList是用的最多的的一个集合,这篇博文主要简单介绍ArrayList的源码分析,基于JDK1.7: 这里主要介绍 集合 的属性,构造器,和方法:方法主要基于 add(E e),get(int index),remove(int index) 阅读全文
posted @ 2017-03-16 17:34 beppezhang 阅读(432) 评论(0) 推荐(0)
摘要:在项目开发中会碰到各种各样的获取项目路径的一些问题: 1:java项目: 以获取 类路径下的mess.properties 为例来说明; 文件在项目中的位置: src/bz/beppe/demo/resource/mess.properties 1) 通过新建File文件获取其文件所在的路径: 这里 阅读全文
posted @ 2017-03-08 14:54 beppezhang 阅读(395) 评论(0) 推荐(0)
摘要:关于java的内存模型,参照以下的一篇文章: https://isudox.com/2016/06/22/memory-model-of-string-in-java-language/ 阅读全文
posted @ 2017-02-23 14:17 beppezhang 阅读(308) 评论(0) 推荐(0)
摘要:关于省,市,区的三级联动后台的实现有两种方式: 1:分三次请求各自取出 省 市 区 的数据; 2:一次请求获得所有的数据,并且组装成相依的数据结构到前端; 其中第一种方式: 会导致数据的延迟加载,出现的情况是 省 有数据了,市和区一级还没有数据,导致用户的体验不好;这种方式只有省一级的数据可以提前加 阅读全文
posted @ 2017-01-17 16:38 beppezhang 阅读(16061) 评论(0) 推荐(0)