java
文章平均质量分 96
lcjmsr
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
jdk1.8源码阅读ArrayList
ArrayList的实现原理就是大学数据结构书本中的动态数组原理,初始化一个Object数组,然后对Object数组进行插入,扩容,查找,删除等操作。所以可以看出java引用类型所占内存大小是一样的,Object数组类似于c语言中的void*指针数组,每个指针在64位机器上都占8字节, 在hotspot jvm中java引用类型也是占8字节。所以ArrayList无法存放基本类型,只能存放引...原创 2018-05-28 23:42:02 · 360 阅读 · 0 评论 -
从汇编语言看java volatile关键字
一、CPU缓存级别 x86内存变量可以在寄存器中,write buffer中,L1到L3cache中,主存中。寄存器、writebuffer和L1cache或者L2cache是cpu私有的。其中对程序员可编程的是寄存器和主存。cpu如何将变量写到writebuffer和如何写到cache对程序员是透明的。一般cpu读写内存的流程如下: 读内存: ...原创 2018-11-11 23:05:54 · 1452 阅读 · 0 评论 -
jdk1.8 Unsafe类 park和unpark方法解析
park是Unsafe类里的native方法,LockSupport类通过调用Unsafe类的park和unpark提供了几个操作。Unsafe的park方法如下:public native void park(boolean isAbsolute, long time); 第一个参数是是否是绝对时间,第二个参数是等待时间值。如果isAbsolute是true则会实现ms定时。如果i...原创 2018-11-03 13:59:04 · 25766 阅读 · 10 评论 -
jdk1.8 Unsafe类初探
在看java原子类时里有很多方法都调用了Unsafe类方法,Unsafe类方法在jdk里没找到源码,然后下载open jdk找到了源码,在/src/share/classes/sun/misc 目录下。定义如下: public final class Unsafe { private static native void registerNatives(); s...原创 2018-10-24 01:29:32 · 2332 阅读 · 0 评论 -
红黑树原理及实现
一.二叉搜索树 二叉树是最常用的树形数据结构,二叉树可以分为完全二叉树,满二叉树,平衡二叉树。二叉树应用的最多就是二叉搜索树,二叉搜索树的定义是:设x是二叉搜索树中的一个结点。如果y是x的左子树中的一个结点,那么y.key<=x.key。如果y是x右子树中的一个结点,那么y.key>=x.key。 也就是左子树小于根节点,根节点小于右子树。 普通的二...原创 2018-10-19 23:01:58 · 443 阅读 · 0 评论 -
jdk1.8源码阅读PriorityQueue
PriorityQueue是优先队列,可以按照指定的优先级进行排序,比如某个元素优先级最高,当它插入队列时会被插到队列头。jdk优先队列是通过二叉堆实现的,类似堆排序,根节点始终是优先级最高的元素,父结点的优先级要高于左右孩子结点,优先队列的调整时间复杂度是O(logn)。包括从上往下调整和从下往上调整,以满足二叉堆的性质。PriorityQueue的类关系图如下: package ...原创 2018-06-07 21:19:29 · 433 阅读 · 0 评论 -
jdk1.8源码阅读LinkedList
LikedList实现采用了双向链表,并且LinkedList实现了Dqueue接口,所以LinkedList可以当作普通队列和双端队列使用,首先看一下LinkedList的类关系图LinkedList和ArrayList的区别就是继承了AbstractSequentialList,并且实现了Dqueue接口,AbstractSequentialList和AbstractList的主要区别是采用迭...原创 2018-05-29 23:58:08 · 328 阅读 · 0 评论 -
重写equals方法必须重写hashcode
equals方法定义在java的根类Object类,定义如下public boolean equals(Object obj) { return (this == obj);}比较的是引用,也就是对象的地址是否相等,equals在非空对象上需要满足以下特性:1.自反性:x.equals(x) == true,自己和自己比较相等2.对称性:x.equals(y) == y.equa...原创 2018-06-12 13:47:55 · 2151 阅读 · 0 评论
分享