文章 2022-05-25 来自:开发者社区

JDK中的排序:Arrays.sort的源码实现

JDK中的排序:Arrays.sort的源码实现文章目录JDK中的排序:Arrays.sort的源码实现Java中的排序并没有那么简单整体看看Arrays.sort的所有重载方法对基本数据类型数组的排序对Object数组和泛型数组的排序在使用Arrays.sort时需要注意的点Java中的排序并没有那么简单  JDK中的排序是如何实现的?用了什么算法?或许有人说用了快排,但事实上JDK中排序的实....

JDK中的排序:Arrays.sort的源码实现
文章 2022-05-19 来自:开发者社区

史上最详细的 JDK 1.8 HashMap 源码解析

我的最新文章:BAT 老兵的经验之谈,成长路上这个道理越早知道越好目录前言几个点:基本属性定位哈希桶数组索引位置get 方法代码块1:getTreeNode代码块2:find代码块3:comparableClassForput 方法代码块4:putTreeVal代码块5:tieBreakOrder代码块6:treeifyBin代码块7:treeify代码块8:moveRootToFront代码块....

史上最详细的 JDK 1.8 HashMap 源码解析
文章 2022-05-14 来自:开发者社区

jvm核心类加载器--jdk源码剖析 (下)

二. jvm核心类加载器 类主要通过类加载器来加载, java里面有如下几种类加载器1. 引导类加载器:负责加载支撑JVM运行的, 位于jre目录的lib目录下的核心类. 比如:rt.jar, charset.jar等,2. 扩展类加载器: 负责加载支撑JVM运行的, 位于jre目录的lib/ext扩展目录中的jar包3. 应用程序类加载器: 负责加载classPath路径下的类包, 主要加载自....

 jvm核心类加载器--jdk源码剖析 (下)
文章 2022-05-14 来自:开发者社区

jvm核心类加载器--jdk源码剖析 (上)

目录前提: 运行环境1. 类加载的过程  1.1 类加载器初始化的过程  1.2 类加载的过程  1.3 类的懒加载2. jvm核心类加载器3. 双亲委派机制4. 自定义类加载器5. tomcat类加载机制 运行环境:我是在mac上操作的. 先找到mac的java地址. 从~/.bash_profile中可以看到java的home目录是: /Library/Java/JavaVirtualMac....

jvm核心类加载器--jdk源码剖析 (上)
文章 2022-04-28 来自:开发者社区

【设计模式】快速理解装饰者模式,及其在JDK源码中的应用

(一)什么是装饰者模式装饰者模式(Decorator)的定义是:在不必改变原类文件情况下,允许向一个现有的对象添加新的功能。比如一个毛坯房,可以使用灰色去装饰厨房,可以使用白色装饰客厅,但是不管使用多少颜料去装饰这个房间,房子的本质是不会发现变化的。使用装饰者模式除了可以在不改变原类的前提下装饰对象之外,还可以随意组合各个装饰类,比如有三个装饰类,分别是给原类上红、黄、绿三种颜色。在使用时,可以....

文章 2022-04-28 来自:开发者社区

【设计模式】快速理解建造者模式,及其在JDK源码中的应用

(一)什么是建造者模式建造者(Builder)模式在百度百科上的定义:是一种将复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。这段话在理解上十分抽象,简单来讲就是如果一个对象很复杂,使用建造者模式允许用户通过简单的方式构建这个对象,而不用关心对象具体构建的细节。且可以使用同样的构建过程可以创建出不同的对象。接下来将会通过具体的代码实例去讲解建造者模式。(二)建造者模式中的几个....

文章 2022-04-22 来自:开发者社区

ConcurrentHashMap基于JDK1.8源码剖析

前言声明,本文用的是jdk1.8前面章节回顾:Collection总览List集合就这么简单【源码剖析】Map集合、散列表、红黑树介绍HashMap就是这么简单【源码剖析】LinkedHashMap就这么简单【源码剖析】TreeMap就这么简单【源码剖析】本篇主要讲解ConCurrentHashMap~看这篇文章之前最好是有点数据结构的基础:Java实现单向链表栈和队列就是这么简单二叉树就这么简....

ConcurrentHashMap基于JDK1.8源码剖析
文章 2022-04-17 来自:开发者社区

2-JDK源码对你最有触动的是哪一段#工具类

目录工具类WeakReference的使用场景ServiceLoaderLockIntegerCache位运算ReentrantReadWriteLock的实现LongAdderAbstractQueuedSynchronizerThreadLocal基于数组结构的拉链法存储工具类WeakReference的使用场景WeakReference (弱引用) ,用来描述非必须存在的对象,但是它的强度....

2-JDK源码对你最有触动的是哪一段#工具类
文章 2022-04-17 来自:开发者社区

2-JDK源码对你最有触动的是哪一段#集合

目录集合可变长度数组是如何实现ArrayList 的 新增元素的 2 个方法Arrays中的二分查找方法容器代码中的溢出集合的fail-fast的机制。集合可变长度数组是如何实现数组在初始化阶段就已经限定了其长度,在对数组的元素操作是不能越界处理的。JDK为我们提供的集合处理工具类,很多都是可变长度的。这点在java学习初期没有正视,就忽视了其可变长度数组是如何实现的。关于可变长度数组的实现,我....

2-JDK源码对你最有触动的是哪一段#集合
文章 2022-04-17 来自:开发者社区

2-JDK源码对你最有触动的是哪一段#HashMap

目录HashMap链表长度>=8转红黑树map的容量算法java8里hashmap计算table大小的方法31奇素数作为乘数来避免冲突HashMap 源码中扰动函数 hash()HashMap链表长度>=8转红黑树HashMap里针对链表长度>=8转红黑树中“8”的选定原因的注释。设计者首先说明了hashmap中使用红黑树的优点——树节点可以通过instanceof方法快速识别....

2-JDK源码对你最有触动的是哪一段#HashMap

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

产品推荐