文章 2024-06-27 来自:开发者社区

重温JAVA线程池精髓:Executor、ExecutorService及Executors的源码剖析与应用指南

1️⃣引言 在Java并发编程中,线程池是一个非常重要的概念。它可以帮助我们更好地管理和控制线程的使用,避免因为大量线程的创建和销毁带来的性能开销。Java的java.util.concurrent(简称JUC)包 中提供了一套丰富的线程池工具,包括Executor接口、ExecutorService接口以及Executors工厂类等。本文将详细介绍这些工具的使用和原理,帮助大家...

文章 2024-05-22 来自:开发者社区

【JAVA学习之路 | 进阶篇】HashMap源码剖析

1.JDK7版本创建与添加数据的的过程 (1). HashMap<String, Integer> map =new HashMap<>(); //创建对象过程中,底层会初始化数组Entry[] table =new Object[16];16是2的倍数. ... map.put("hexua", 66); ...

【JAVA学习之路 | 进阶篇】HashMap源码剖析
文章 2024-01-02 来自:开发者社区

Java Review - 并发编程_ThreadPoolExecutor原理&源码剖析

线程池主要解决两个问题一是当执行大量异步任务时线程池能够提供较好的性能。在不使用线程池时,每当需要执行异步任务时直接new一个线程来运行,而线程的创建和销毁是需要开销的。线程池里面的线程是可复用的,不需要每次执行异步任务时都重新创建和销毁线程。二是线程池提供了一种资源限制和管理的手段,比如可以限制线程的个数,动态新增线程等。每个ThreadPoolExecutor也保留了一些基本的统计数据,比如....

Java Review - 并发编程_ThreadPoolExecutor原理&源码剖析
文章 2024-01-02 来自:开发者社区

Java Review - 并发编程_ConcurrentLinkedQueue原理&源码剖析

概述JDK中提供了一系列场景的并发安全队列。总的来说,按照实现方式的不同可分为阻塞队列和非阻塞队列,阻塞队列使用锁实现非阻塞队列则使用CAS非阻塞算法实现ConcurrentLinkedQueueConcurrentLinkedQueue是线程安全的无界非阻塞队列,其底层数据结构使用单向链表实现,对于入队和出队操作使用CAS来实现线程安全。【类图】ConcurrentLinkedQueue内部的....

Java Review - 并发编程_ConcurrentLinkedQueue原理&源码剖析
文章 2024-01-02 来自:开发者社区

Java Review - 并发编程_独占锁ReentrantLock原理&源码剖析

Synchronized vs ReentrantLockReentrantLock概述ReentrantLock是可重入的独占锁,同时只能有一个线程可以获取该锁,其他获取该锁的线程会被阻塞而被放入该锁的AQS阻塞队列里面。类图结构如下底层基于AQS实现,ReentrantLock的lock等方法,委托给其依赖sync的lock方法AQS 是典型的模板方法设计模式,父类(AQS)定义好骨架和内部....

Java Review - 并发编程_独占锁ReentrantLock原理&源码剖析
文章 2023-10-08 来自:开发者社区

java框架集合List子接口之ArrayList源码剖析

ArrayListArrayList实现了List接口 , 它是有序且可以重复的 , 允许存放所有所有元素 , 包括null , 除了实现List接口之外这个类还提供了一些方法来操作内部存储列表数组的大小 , 这个类大致相当于Vector , 只是它不是同步的 , 同时ArrayList还实现了RandomAccess, Cloneable, java.io.SerializableRandom....

文章 2023-10-08 来自:开发者社区

java集合框架List子接口之LinkedList源码剖析

LinkedListLinkendList是一个双向链表 , 并且实现了Deque接口 , 可以作为一个队列来使用 , 虽然LinkendList是线性结构 , 但是数据的存储并不是按照线性的接口来存储的 , 而是在每一个节点里存数据及下一个节点的地址, 同时实现了Cloneable接口 , 支持拷贝 , 并且实现了java.io.Serializable支持序列化和反序列化Cloneable ....

文章 2023-10-08 来自:开发者社区

java集合框架Set子接口之HashSet源码剖析

HashSetHashSet类实现了由哈希表(实际上是HashMap实例)支持的Set接口 , 底层采用HashMap来保存的数据 , 存在HashSet中的元素是无序且不重复的并且HashSet是线程不安全的 , 这种不重复其实是由HashMap实现的 , 所以HashSet的实现也是相对比较简单的 , 对于它的操作其实都是调用HashMap的方法来实现的HashSet类结构图HashSet基....

java集合框架Set子接口之HashSet源码剖析
文章 2023-09-14 来自:开发者社区

深入Java源码剖析之字符串常量

字符串在Java生产开发中的使用频率是非常高的,可见,字符串对于我们而言非常关键。那么从C语言过来的同学会发现,在C中是没有String类型的,那么C语言要想实现字符串就必须使用char数组,通过一个个的字符来组拼成字符串。 Java中是如何实现字符串的 那其实在Java中,关于字符串的实现,其实用的也是char数组,这可以从源码中得到体现。 /** * Initializes ...

深入Java源码剖析之字符串常量
文章 2023-09-14 来自:开发者社区

深入Java源码剖析之Set集合

Java的集合类由Collection接口和Map接口派生,其中: List代表有序集合,元素有序且可重复 Set代表无序集合,元素无序且不可重复 Map集合存储键值对 那么本篇文章将从源码角度讨论一下无序集合Set。 HashSet HashSet实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持。它不保证 set 的迭代顺序;特别是它不保证该顺序恒久不变...

深入Java源码剖析之Set集合

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

Java开发者

Java开发者成长课堂,课程资料学习,实战案例解析,Java工程师必备词汇等你来~

+关注