2018年3月19日

摘要: 1 @Override 2 public boolean downObject(String key, OutputStream outputStream) { 3 if(key == null || "".equals(key) || outputStream == null){ 4 return false; 5 ... 阅读全文

posted @ 2018-03-19 15:13 林浩开发小屋 阅读(104) 评论(0) 推荐(0)


2018年3月17日

摘要: HashSet是基于HashMap来实现的,操作很简单,更像是对HashMap做了一次“封装”,而且只使用了HashMap的key来实现各种特性,我们先来感性的认识一下这个结构: 其大致的结构是这样的: map是整个HashSet的核心,而PRESENT则是用来造一个假的value来用的。 2. 基 阅读全文

posted @ 2018-03-17 11:24 林浩开发小屋 阅读(105) 评论(0) 推荐(0)


2018年3月16日

摘要: 1. 确定哈希桶数组索引位置 不管增加、删除、查找键值对,定位到哈希桶数组的位置都是很关键的第一步。前面说过HashMap的数据结构是数组和链表的结合,所以我们当然希望这个HashMap里面的元素位置尽量分布均匀些,尽量使得每个位置上的元素数量只有一个,那么当我们用hash算法求得这个位置的时候,马 阅读全文

posted @ 2018-03-16 21:55 林浩开发小屋 阅读(252) 评论(0) 推荐(0)


2018年3月15日

摘要: HashMap.comparableClassFor(Object x) instanceof getClass() getGenericInterfaces() getGenericSuperclass()和getSuperclass() ParameterizedType getRawType( 阅读全文

posted @ 2018-03-15 21:24 林浩开发小屋 阅读(629) 评论(1) 推荐(0)


2018年3月11日

摘要: 在父类AbstractList中定义了一个int型的属性:modCount,记录了ArrayList结构性变化的次数。 protected transient int modCount = 0; 在ArrayList的所有涉及结构变化的方法中都增加modCount的值,包括:add()、remove 阅读全文

posted @ 2018-03-11 15:50 林浩开发小屋 阅读(304) 评论(0) 推荐(0)


2018年3月10日

摘要: 1. 如何判断当前迭代器的位置,及如何移动? 首先对于每一个迭代器,保存了三个变量。一个是cursor,一个是lastRet,一个是expectedModCount。 cursor对于每次调用next方法就增加一次。并且将上一个cursor的值传给lastRet(用于可能的删除操作),将刚刚跳过的第 阅读全文

posted @ 2018-03-10 11:54 林浩开发小屋 阅读(279) 评论(0) 推荐(0)


2018年3月8日

摘要: 1 public Object[] toArray() { 2 // Estimate size of array; be prepared to see more or fewer elements 3 Object[] r = new Object[size()]; 4 Iterator it = iterator(); 5 ... 阅读全文

posted @ 2018-03-08 22:07 林浩开发小屋 阅读(250) 评论(0) 推荐(0)


2018年3月7日

摘要: 如果要把一个List直接转化为Object数组,则可以直接使用Object[] o = list.toArray(); 如果要转化为String数组,则有以下两种方式: 方法一、String[] arr = new String[list.size]; list.toArray(arr);//此时a 阅读全文

posted @ 2018-03-07 11:08 林浩开发小屋 阅读(348) 评论(0) 推荐(0)


2018年3月5日

摘要: 原理: jedis底层主要有两个类: redis.clients.jedis.Protocol redis.clients.jedis.Connection Connection负责client与server之间通信,Protocol是client与server之间通信协议。 以Jedis的get方 阅读全文

posted @ 2018-03-05 20:03 林浩开发小屋 阅读(804) 评论(0) 推荐(0)


2017年11月11日

摘要: 内存分配与回收策略 对象的内存分配,往大方向讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接在栈上分配),对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将线程优先在TLAB上分配,少数情况下也可能直接分配在老年代中。 对象优先在Eden分配 大多数情况下,对象在新 阅读全文

posted @ 2017-11-11 21:35 林浩开发小屋 阅读(134) 评论(0) 推荐(0)


博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3