
Java
文章平均质量分 63
Daisytheboy
黛西男孩
展开
-
【回炉重造】Java虚拟机知识总结
Java虚拟机基础知识原创 2020-11-24 00:25:17 · 169 阅读 · 0 评论 -
【回炉重造】Java的线程基础知识总结
Java线程基础和源码知识汇总原创 2020-11-22 22:25:43 · 162 阅读 · 0 评论 -
【回炉重造】Java方法重载中返回值的问题
不能通过设置不同的返回值来实现方法重载,这样的方法不一定会编译通过,但Class文件中可以共存。 IDEA工具,JDK8测试: 参考自《深入理解Java虚拟机》(第3版),如图原创 2020-11-09 23:06:44 · 1209 阅读 · 0 评论 -
【回炉重造】Hashtable源码分析
参考博文:https://blog.youkuaiyun.com/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 · 254 阅读 · 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 · 283 阅读 · 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 · 140 阅读 · 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 · 136 阅读 · 0 评论 -
【回炉重造】Java基础灵魂不够100问
参考来源: Java基础:https://github.com/Snailclimb/JavaGuide#%E5%9F%BA%E7%A1%80 局部变量和全局变量的区别: https://blog.youkuaiyun.com/wanghuan0/article/details/81158007 接口和抽象类的十二种异同: https://www.zhihu.com/question/20149818 基础 JDK和JRE有什么区别? 面向过程和面向对象的区别?面向对象有什么优点? 详述面向对象的特点 8中基本数据类型原创 2020-09-25 20:41:13 · 565 阅读 · 0 评论