随笔分类 -  JDK1.8源码学习

摘要:1. 背景 某天,我在写代码的时候,无意中点开了 String hashCode 方法。然后大致看了一下 hashCode 的实现,发现并不是很复杂。但是我从源码中发现了一个奇怪的数字,也就是本文的主角31。这个数字居然不是用常量声明的,所以没法从字面意思上推断这个数字的用途。后来带着疑问和好奇心, 阅读全文
posted @ 2019-09-30 11:41 流浪喵 阅读(411) 评论(0) 推荐(0)
摘要:JDK1.8源码学习-String 目录 一、String简介 String类是Java中最常用的类之一,所有字符串的字面量都是String类的实例,字符串是常量,在定义之后不能被改变。 二、定义 1.String类是由final修饰的,表明String类不能被继承,并且String类中的成员方法都 阅读全文
posted @ 2019-07-16 17:28 流浪喵 阅读(597) 评论(0) 推荐(0)
摘要:JDK1.8源码学习-Object 目录 一、方法简介 1.一个本地方法,主要作用是将本地方法注册到虚拟机中。 2.获取类的字节码对象 3.返回当前对象的hash值 4.比较党当前对象的引用是否和要比较的对象的引用指向同一对象 5.克隆对象,浅拷贝 6.返回当前对象的一个字符串表示形式 7.唤醒一个 阅读全文
posted @ 2019-07-16 11:50 流浪喵 阅读(373) 评论(0) 推荐(0)
摘要:JDK1.8源码学习-LinkedList 目录 一、LinkedList简介 LinkedList是一个继承于AbstractSequentialList的双向链表,是可以在任意位置进行插入和移除操作的有序序列。 LinkedList基于链表实现,在存储元素的过程中,无需像ArrayList那样进 阅读全文
posted @ 2019-04-25 14:14 流浪喵 阅读(205) 评论(0) 推荐(0)
摘要:JDK1.8源码学习-ArrayList 目录 一、ArrayList简介 为了弥补普通数组无法自动扩容的不足,Java提供了集合类,其中ArrayList对数组进行了封装,使其可以自动的扩容或缩小长度,相当于动态数组。 ArrayList封装了一个动态的可以重新分配的Object[]数组,其中每一 阅读全文
posted @ 2019-04-24 18:28 流浪喵 阅读(270) 评论(0) 推荐(0)
摘要:JDK1.8源码学习-HashMap 目录 一、HashMap简介 HashMap 主要用来存放键值对,它是基于哈希表的Map接口实现的,是常用的Java集合之一。 我们都知道在JDK1.8 之前 的HashMap是 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲 阅读全文
posted @ 2019-04-11 16:01 流浪喵 阅读(214) 评论(0) 推荐(0)