Java
文章平均质量分 63
Daisytheboy
黛西男孩
展开
-
【回炉重造】Java虚拟机知识总结
Java虚拟机基础知识原创 2020-11-24 00:25:17 · 139 阅读 · 0 评论 -
【回炉重造】Java的线程基础知识总结
Java线程基础和源码知识汇总原创 2020-11-22 22:25:43 · 138 阅读 · 0 评论 -
【回炉重造】Java方法重载中返回值的问题
不能通过设置不同的返回值来实现方法重载,这样的方法不一定会编译通过,但Class文件中可以共存。IDEA工具,JDK8测试:参考自《深入理解Java虚拟机》(第3版),如图原创 2020-11-09 23:06:44 · 1176 阅读 · 0 评论 -
【回炉重造】Hashtable源码分析
参考博文:https://blog.csdn.net/dingjianmin/article/details/79774192继承关系继承了Dictionary抽象类参数:大小:count容量:默认11(>=1的任何整数)负载因子:0.75扩容阈值:容量*负载因子(或是两倍的同映射Map的size)数据结构实现:数组(一个Entry类型的Table)Entry<K,V> implements Map.Entry<K,V>线程安全性线程安全插入过程原创 2020-10-14 20:26:32 · 216 阅读 · 0 评论 -
【回炉重造】ConcurrentHashMap源码分析
继承关系继承了AbstractMap抽象类和ConcurrentMap接口线程安全性线程安全的JDK1.7里容器有多把锁,每一把锁锁一段数据(segement数组,加上HashEntry单向队列table)JDK1.8版本:①取消segments字段,直接采用transient volatile HashEntry<K,V>[] table保存数据,采用table数组元素作为锁,从而实现了对每一行数据进行加锁,并发控制使用Synchronized和CAS来操作将原先table数组+原创 2020-10-14 20:25:52 · 257 阅读 · 0 评论 -
【回炉重造】LinkedList源码分析
底层数据结构Node节点连成的双向链表 private static class Node<E> { E item; Node<E> next; Node<E> prev; Node(Node<E> prev, E element, Node<E> next) { this.item = element; this.next原创 2020-10-14 20:25:10 · 115 阅读 · 0 评论 -
【回炉重造】ArrayList源码分析
容量默认容量:10扩容后的容量:旧容量的的1.5倍(也可能是1.5倍-1,因为新容量=旧容量+旧容量右移一位())底层数据结构Object类型数组复杂度分析get(int index):O(1)add(E e):O(1)add(int index, E element):O(n)remove(int index):O(n)扩容机制新容量为旧容量的1.5倍,或1.5倍-1。由于底层是使用了Object类型数组,所以扩容后这个数组的大小为原来的1.5倍,但是其size取决于你到底添加了多原创 2020-10-14 20:24:35 · 116 阅读 · 0 评论 -
【回炉重造】Java基础灵魂不够100问
参考来源:Java基础:https://github.com/Snailclimb/JavaGuide#%E5%9F%BA%E7%A1%80局部变量和全局变量的区别:https://blog.csdn.net/wanghuan0/article/details/81158007接口和抽象类的十二种异同:https://www.zhihu.com/question/20149818基础JDK和JRE有什么区别?面向过程和面向对象的区别?面向对象有什么优点?详述面向对象的特点8中基本数据类型原创 2020-09-25 20:41:13 · 518 阅读 · 0 评论