![](https://i-blog.csdnimg.cn/columns/default/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java总结
文章平均质量分 72
Java总结
苏繁星
这个作者很懒,什么都没留下…
展开
-
Java中的Vector,看着陌生?
Vector和ArrayList都是AbstractList的子类,二者有啥区别呢?Vector很少用,但是其父类Stack却常见在各类项目工程中。Vector和ArrayList是 Java 中两种常用的动态数组实现,但它们之间有一些重要的区别。原创 2024-10-23 21:31:35 · 313 阅读 · 0 评论 -
CountDownLatch与AQS
1 CountDownLatch初始化 public CountDownLatch(int count) { if (count < 0) throw new IllegalArgumentException("count < 0"); this.sync = new Sync(count); } private static final class Sync extends AbstractQueuedSynchronizer {原创 2020-05-12 22:21:53 · 224 阅读 · 0 评论 -
ReentrantLock源码实现(下):AQS再探
1. 源码预览java.util.concurrent.locks.AQS以及静态内部类Nodepublic abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serializable { private transient vol...原创 2020-05-07 08:51:02 · 217 阅读 · 0 评论 -
ReentrantLock源码实现(上)
ReentrantLock的实现依赖Sync;Sync的子类有FairSync和NonfairSyncpublic class ReentrantLock implements Lock, java.io.Serializable { private static final long serialVersionUID = 7373984872572414699L; /** S...原创 2020-04-29 00:52:53 · 167 阅读 · 0 评论 -
ArrayList源码分析
1. ArrayList初始化ArrayList是线性数据结构,底层实现是数组,默认capacity为10提供了2种构造方法:带capacity参数,立即初始化数组大小;不带capacity参数,引用指向一个空数组。public class ArrayList<E> extends AbstractList<E> implements List...原创 2020-04-14 08:12:52 · 90 阅读 · 0 评论 -
Deque
Deque(double ended queue)是一个接口,继承自接口Queue。public interface Deque<E> extends Queue<E> { void addFirst(E e); void addLast(E e); boolean offerFirst(E e); E pollFirst(); E...原创 2020-04-11 15:02:23 · 105 阅读 · 0 评论 -
类加载过程与自定义ClassLoader
1.类加载过程a.通过一个类的全限定名来获取定义此类的二进制字节流 (在JVM外实现,也就便于自定义类加载器实现这个动作)b.将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构c.在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据结构访问入口2.自定义ClassLoader示例自定义ClassLoader,需要覆写findClass方法。...原创 2020-04-01 19:18:50 · 139 阅读 · 0 评论 -
LinkedHashMap源码理解
1 概览public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> ... static class LinkedHashMapEntry<K,V> extends HashMap.Node<K,V> { LinkedHashMapEntry<K,V> before, after; Li原创 2020-05-12 20:59:09 · 801 阅读 · 0 评论 -
ConcurrentHashMap源码分析
基于JDK 13.0.21.源码分析public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable { private static final long serialVersionUID = 72...原创 2020-04-05 17:19:45 · 130 阅读 · 0 评论 -
HashMap源码理解
1.HashMap源码分析关于HashMap的几点说明:默认初始容量16默认loadFactor为0.75Map集合容量必须是2的倍数HashMap集合key可为null对象,value也可为null对象如何解决hash冲突:红黑树、链表 public HashMap() { this.loadFactor = DEFAULT_LOAD_FACTOR; //...原创 2020-03-28 21:31:19 · 122 阅读 · 0 评论 -
AtomicInteger如何保证线程安全?
1. AtomicInteger不是final类型,如何保证线程安全?先看一下局部源码public class AtomicInteger extends Number implements java.io.Serializable { private static final long serialVersionUID = 6214790243416807050L; /*...原创 2020-03-28 16:47:04 · 2830 阅读 · 0 评论 -
CountDownLatch、CyclicBarrier、Semaphore
/** * Copyright (C), 2016-2020 * FileName: CountDownLatchTest * Author: wei.zheng * Date: 2020/3/9 19:55 * Description: 测试CountDownLatch */public class CountDownLatchTest { private CountDow...原创 2020-03-09 20:56:23 · 164 阅读 · 0 评论 -
ClassLoader与双亲委派模型
类加载器java.lang.ClassLoader是一个抽象类,用于加载class。public abstract class ClassLoader { ... public Class<?> loadClass(String name) throws ClassNotFoundException { return loadClass(name, fa...原创 2020-03-05 22:00:46 · 160 阅读 · 0 评论 -
Java 值传递 or 引用传递 ?
1.结论其实无需纠结答案是值传递还是引用传递,关键是理解它们的含义。如果一定要记住一个答案,那就认为是值传递(一切传引用其实本质上是传值)。我的理解:传递基本类型参数:改变行参(赋值操作)不影响实)传递对象(引用)类型参数:行参指向新的对象,则实参不改变;行参调用内部方法,实参改变解释:基本类型:变量中存储的是具体的值引用类型:变量中存储的是对象的地址,行参是变量的拷贝,指向...原创 2020-03-01 11:32:31 · 113 阅读 · 0 评论