自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

anlian523的博客

今天不学习,明天变垃圾,后天垃圾分类

  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 从String获得ByteBuffer、从ByteBuffer获得CharBuffer的正确姿势

cb.toString()时,认为cb对象持有的ByteBuffer成员的字节数组都是UTF-16字符集转换而来的字节,同时它又利用了当Unicode码<0x10000时,UTF-16字符集对应字节与Unicode码一样。而java的char类型就是使用二字节长度的Unicode码作为底层存储,所以执行cb.toString()时,就是把每两个字节作为一个char来进行的转换。

2020-01-27 00:41:38 2004

原创 Java源码分析 ByteBuffer.asCharBuffer打印字符串乱码原因

如上图可见cb对象是一个ByteBufferAsCharBufferB实例,它持有一个ByteBuffer类型的对象(实际上就是那个bb对象),也就是说,打印CharBuffer时,它的实际数据来源于它持有的那个ByteBuffer类型的对象。

2020-01-26 15:24:47 1868

原创 Java 遍历目录下的所有文件(深度优先遍历,宽度优先遍历)

只要是调用了递归方法体,传进来的startDir必定是一个目录(isDirectory返回true),这是由循环中调用递归的前提判断来保证的。在循环中,如果发现循环变量item是一个当前目录下的文件,那么执行else分支,不会调用到递归函数;如果发现循环变量item是一个当前目录下的子目录,那么执行if分支,会调用到递归函数,调用前先添加这个子目录。

2020-01-15 22:04:16 2683

原创 JDK8 HashMap源码行级解析 红黑树操作 史上最全最详细图解

源码面前,了无秘密。本文对HashMap红黑树部分的1790~2388行源码进行了详细解析。本文将会在代码里把注释写得尽可能地全,以理解源码的各个细节,而在源码片段后则将进行提纲挈领的总结性讲解,在行文中可能穿插大量的图片以配合讲解,因为红黑树这种东西真的很需要看图来理解。本文既适合已经阅读过部分源码的同学,可以来这里查漏补缺,或解决疑惑;也适合从头开始阅读HashMap源码的同学。

2020-01-12 17:54:30 8369 11

原创 听说你看过HashMap源码,来面试下这几个问题

HashMap的主要成员都有哪些?Entry<K,V>[] table。这个Entry类型的数组存储了HashMap的真正数据。size大小。代表HashMap内存储了多少个映射。capacity容量。实际上HashMap没有一个成员叫capacity,它是作为table这个数组的大小而隐式存在。threshold阈值和loadFactor装载因子。threshold是通过capacity * loadFactor得到的。当size超过threshold时(刚好相等时不会扩容),HashMap会扩容

2020-01-05 00:12:37 2298 1

原创 JDK8 HashMap源码行级解析 史上最全最详细解析

源码面前,了无秘密。 除了红黑树部分,本文对HashMap的1789行源码进行了详细解析。 本文将会在代码里把注释写得尽可能地全,以理解源码的各个细节,而在源码片段后则将进行提纲挈领的总结性讲解。本文既适合已经阅读过部分源码的同学,可以来这里查漏补缺,或解决疑惑;也适合从头开始阅读HashMap源码的同学。

2020-01-04 20:55:13 2650 6

原创 深入理解HashMap:那些巧妙的位操作

capacity永远为2的幂我们都知道HashMap的容量永远为2的幂,而HashMap没有一个成员名叫capacity,capacity是作为table这个数组的size而隐式存在的。当用户构造HashMap时给了一个奇怪的容量时,会通过this.threshold = tableSizeFor(initialCapacity)计算出一个刚好大于或等于用户给定容量的2的幂。比如,用户给了10...

2020-01-02 23:45:19 1856

原创 JDK8 HashMap源码 clone解析

分析源码Returns a shallow copy of this HashMap instance: the keys and values themselves are not cloned. 英文注释已经说了这个一个浅拷贝操作,但到底浅到什么程度呢,接下来本文将进行详细分析。 public Object clone() { HashMap<K,V> ...

2020-01-02 21:49:51 1202

原创 走进科学之——为何刚初始化的HashMap的entrySet不为null

疑团重重当你调试以下代码时,你会发现oldMap的entrySet不为null:HashMap<Object,Integer> oldMap = new HashMap<Object,Integer>();System.out.println();//此处打断点从图中可以看出,oldMap的各个成员都是刚初始化时的状态,除了entrySet这个成员不为null以外(后面有个@500,代表这个引用已经指向了某个对象了),但HashMap的默认构造器只是:

2020-01-02 20:42:29 2280 1

ArcGIS 10.1 破解文件.rar

ArcGIS 10.1 破解文件。在你安装完ArcGIS 10.1 for Desktop.iso后使用的。

2019-05-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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