zl程序教程

jdk 源码

  • jdk1.7 hashmap扩容_Java并发实现原理:JDK源码剖析

    jdk1.7 hashmap扩容_Java并发实现原理:JDK源码剖析

    大家好,又见面了,我是你们的朋友全栈君。目录HashMap简介HashMap的主要成员变量HashMap的构造方法有四种put(K key, V value)扩容机制核心方法Node[] resize(),v>负载因子loadFactor测试 get(Object key)HashMap简介 HashMap在底层数据结构上采用了数组+链表+红黑树,通过散列映射来存储键值对数据因为

    日期 2023-06-12 10:48:40     
  • 支持JDK19虚拟线程的web框架,之四:看源码,了解quarkus如何支持虚拟线程

    支持JDK19虚拟线程的web框架,之四:看源码,了解quarkus如何支持虚拟线程

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 前文链接支持JDK19虚拟线程的web框架,之一:体验 支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用支持JDK19虚拟线程的web框架,之三:观察运行中的虚拟线程本篇概览本篇是《支持JDK19虚拟线程的web

    日期 2023-06-12 10:48:40     
  • 在openjdk8下看Unsafe源码

    在openjdk8下看Unsafe源码

    目录一、前言二、底层native方法(底层C++不拓展了)三、上层应用方法(调用了native方法实现)正文尽管有传言JAVA9可能会移除Unsafe类,但不妨碍我们理解它的原理。因为类不在了,native方法还在那里。就像菜换样了,食材就那些没变。一个好厨师不仅仅需要会做菜,还需要能识别食材特性...来吧,直接上干货。注:强烈不建议程序中自己调用Unsafe类方法,这一点没有质疑。目录1.前言2

    日期 2023-06-12 10:48:40     
  • 直击灵魂!美团大牛手撸并发原理笔记,由浅入深剖析JDK源码

    直击灵魂!美团大牛手撸并发原理笔记,由浅入深剖析JDK源码

    并发编程并发编程这四个字想必大家最近都在网上看到过有很多的帖子在讨论。我们都知道并发编程可选择的方式有多进程、多线程和多协程。在Java中,并发就是多线程模式。而多线程编程也一直是一个被广泛而深入讨论的领域。如果遇到复杂的多线程编程场景,大多数情况下我们就需要站在巨人的肩膀上利用并发编程框架——JDK Concurrent包来解决相关线程问题。Concurrent包很复杂吗?相信很多人对于Conc

    日期 2023-06-12 10:48:40     
  • JDK 1.8 源码阅读和理解详解编程语言

    JDK 1.8 源码阅读和理解详解编程语言

    根据 一篇文章教会你,如何做到招聘要求中的“要有扎实的Java基础” 的指引,决定开始阅读下JDK源码。 本文将作为源码阅读总纲 一、精读部分 1 java.io 2 java.lang 3 java.util 随笔列表:     二、深刻理解部分 1 java.lang.reflect 2 java.net 3 javax.

    日期 2023-06-12 10:48:40     
  • JDK源码阅读:ByteBuffer详解编程语言

    JDK源码阅读:ByteBuffer详解编程语言

    Buffer是Java NIO中对于缓冲区的封装。在Java BIO中,所有的读写API,都是直接使用byte数组作为缓冲区的,简单直接。但是在Java NIO中,缓冲区这一概念变得复杂,可能是对应Java堆中的一块内存,也可能是对应本地内存中的一块内存。而byte数组只能用来指定Java堆中的一块内存,所以Java NIO中设计了一个新的缓冲区抽象,涵盖了不同类型缓冲区,这个抽象就是Buffer

    日期 2023-06-12 10:48:40     
  • JDK源码阅读:InterruptibleChannel与可中断IO详解编程语言

    JDK源码阅读:InterruptibleChannel与可中断IO详解编程语言

    Java传统IO是不支持中断的,所以如果代码在read/write等操作阻塞的话,是无法被中断的。这就无法和Thead的interrupt模型配合使用了。JavaNIO众多的升级点中就包含了IO操作对中断的支持。InterruptiableChannel表示支持中断的Channel。我们常用的FileChannel,SocketChannel,DatagramChannel都实现了这个接口。 I

    日期 2023-06-12 10:48:40     
  • JDK 源码阅读 : DirectByteBuffer详解编程语言

    JDK 源码阅读 : DirectByteBuffer详解编程语言

    在文章JDK源码阅读-ByteBuffer中,我们学习了ByteBuffer的设计。但是他是一个抽象类,真正的实现分为两类:HeapByteBuffer与DirectByteBuffer。HeapByteBuffer是堆内ByteBuffer,使用byte[]存储数据,是对数组的封装,比较简单。DirectByteBuffer是堆外ByteBuffer,直接使用堆外内存空间存储数据,是NIO高性能

    日期 2023-06-12 10:48:40     
  • Eclipse 如何查看jdk源码

    Eclipse 如何查看jdk源码

    1、首先,在安装jdk的时候要安装源码,或许你没注意到,其实源码就在我们的jdk安装目录下面。(安装的时候是可以选择源码安装路径的,如果选择了其他路径就不会在jdk下面了,默认是在jdk下面的。) 2、打开eclipse,点 “window”- “Pref 1、首先,在安装jdk的时候要安装源码,或许你没注意到,其实源码就在我们的jdk安装目录下面。(安装的时候是可以选择源码安装路径的,如果

    日期 2023-06-12 10:48:40     
  • Eclipse 如何查看jdk源码

    Eclipse 如何查看jdk源码

    1、首先,在安装jdk的时候要安装源码,或许你没注意到,其实源码就在我们的jdk安装目录下面。(安装的时候是可以选择源码安装路径的,如果选择了其他路径就不会在jdk下面了,默认是在jdk下面的。) 2、打开eclipse,点 “window”- “Pref 1、首先,在安装jdk的时候要安装源码,或许你没注意到,其实源码就在我们的jdk安装目录下面。(安装的时候是可以选择源码安装路径的,如果

    日期 2023-06-12 10:48:40     
  • 【项目实战】从0开始入门JDK源码 - LinkedList源码

    【项目实战】从0开始入门JDK源码 - LinkedList源码

    一、源码位置 一般来说IDEA配置好JDK以后 ,JDK的源码其实也配置好了,本文是基于JDK1.8的源码说明 rt - java - util - LinkedList 二、 继承关系图 Linked

    日期 2023-06-12 10:48:40     
  • 【项目实战】从0开始入门JDK源码 - ArrayList源码 之 overflow-conscious code

    【项目实战】从0开始入门JDK源码 - ArrayList源码 之 overflow-conscious code

    一、说明 在JDK源码中,会有很多考虑了溢出而编写的代码,这些代码前会有注释:“overflow-conscious code”,说明下面这段代码是考虑了溢出的情况的

    日期 2023-06-12 10:48:40     
  • java并发:jdk1.8中ConcurrentHashMap源码浅析

    java并发:jdk1.8中ConcurrentHashMap源码浅析

    ConcurrentHashMap是线程安全的。可以在多线程中对ConcurrentHashMap进行操作。 在jdk1.7中,使用的是锁分段技术Segment。数据结构是数组+链表。 对比jdk1.7,在jdk1.8中,ConcurrentHashMap主要使用了CAS(compareAndSwap)、volatile、synchronized锁。 跟jdk1.8中的HashMap一样,数据结

    日期 2023-06-12 10:48:40     
  • JDK源码详解之File类

    JDK源码详解之File类

    JDK源码详解之File类 1. 类释义 2. 类方法 listFiles() File[] listFiles() Returns an array of abstract pathnames denoting

    日期 2023-06-12 10:48:40     
  • Jdk源码详解之ThreadPoolExecutor 类

    Jdk源码详解之ThreadPoolExecutor 类

    Jdk源码详解之ThreadPoolExecutor 类 1.类释义 An ExecutorService that executes each submitted task using one of possibly

    日期 2023-06-12 10:48:40     
  • Jdk源码详解之ProcessBuilder类

    Jdk源码详解之ProcessBuilder类

    Jdk源码详解之ProcessBuilder()类 1.ProcessBuilder类 2.方法简介 构造器ProcessBuilder /** Constructs a process bui

    日期 2023-06-12 10:48:40     
  • OpenJDK 源码阅读之 LinkedList

    OpenJDK 源码阅读之 LinkedList

    概要 类继承关系 java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.AbstractSequentialList<E> java.util.LinkedL

    日期 2023-06-12 10:48:40     
  • 2022 最新 JDK 17 HashMap 源码解读 (一)

    2022 最新 JDK 17 HashMap 源码解读 (一)

    目录 HashMap简介 HashMap简介 Map 接口的基于哈希表的实现。此实现提供所有可选的映射操作,并允许空值和空键。 (HashMap 类大致相当于 Hasht

    日期 2023-06-12 10:48:40     
  • OpenJDK 源码

    OpenJDK 源码

    https://download.java.net/openjdk/jdk8

    日期 2023-06-12 10:48:40     
  • P9 力荐!阿里巴巴最新出品 776 页 JDK 源码 + 并发核心原理解析小册

    P9 力荐!阿里巴巴最新出品 776 页 JDK 源码 + 并发核心原理解析小册

    程序员读源码的重要性 最近有出去面试过的小伙伴想必都被问到源码了吧。源码这东西大多数人都会觉得:这东西我工作中又用不上你面试非得问,我不学还不行,给我卷 yue 了;这种理解属实片面!设想当你长期停留在业务层面的 CRUD 开发不思进取,不管你工作多久,

    日期 2023-06-12 10:48:40     
  • JDK集合源码之HashTable解析

    JDK集合源码之HashTable解析

    HashTable与HashMap对比 对于HashMap源码剖析,可以参考:JDK集合源码之HashMap解析(上) 以及JDK集合源码之HashMap解析(下) ,HashMa

    日期 2023-06-12 10:48:40     
  • JDK集合源码之Vector解析

    JDK集合源码之Vector解析

    Vector简介 ArrayList 和 Vector 其实大同小异,基本结构都差不多,但是一些细节上有区别:比如线程安全与否,扩容的大小等,Vecto

    日期 2023-06-12 10:48:40     
  • JDK集合源码之LinkedHashMap解析

    JDK集合源码之LinkedHashMap解析

    LinkedHashMap简介 LinkedHashMap内部维护了一个双向链表,能保证元素按插入的顺序访问,也能以访问顺序访问。LinkedHashMap可以看成是 LinkedList &#

    日期 2023-06-12 10:48:40     
  • JDK集合源码之HashMap解析(下)

    JDK集合源码之HashMap解析(下)

    由于上篇文章JDK集合源码之HashMap解析(上)篇幅较长,为阅读方便,分成两篇博客来分析HashMap! 特别说明:由于HashMap底层的红黑树结构比较复杂&#

    日期 2023-06-12 10:48:40     
  • jdk源码剖析一:OpenJDK-Hotspot源码包目录结构

    jdk源码剖析一:OpenJDK-Hotspot源码包目录结构

    开启正文之前,先说一下源码剖析这一系列,就以“死磕到底”的精神贯彻始终,JDK--》JRE--》JVM(以openJDK代替)最近想看看JDK8源码,但JDK中JVM(安装在本地C:\Program Files\Java\jdk1.8.0_121\jre\bin\server下jvm.dll)本身并不开源,只能找来openJDK来看(说是和JDK相似度很高)。源码包下载飞机票:http://do

    日期 2023-06-12 10:48:40     
  • HashMap jdk1.7和1.8源码剖析

    HashMap jdk1.7和1.8源码剖析

    1 概述 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. HashMap是非线程安全的,只适用于单线程环境,多线程环境可以采用并发包下的concurrentHashMap HashMap 实现了Serializable接口,因此它支持序列化

    日期 2023-06-12 10:48:40     
  • 并发编程之ConcurrentHashMap jdk1.7和1.8源码剖析

    并发编程之ConcurrentHashMap jdk1.7和1.8源码剖析

    目录 一、背景: 线程不安全的HashMap 效率低下的HashTable容器 二、应用场景 三、源码分析: 3.1 jdk1.7的源码 3.1.1锁分段技术 3.1.2 ConcurrentHashMap的主要数据结构 3.1.3 hash槽的的个数 3.1.4 定位操作: 3.1.5rem

    日期 2023-06-12 10:48:40     
  • eclipse如何debug调试jdk源码

    eclipse如何debug调试jdk源码

    eclipse如何debug调试jdk源码

    日期 2023-06-12 10:48:40     
  • JDK 1.8  ArrayBlockingQueue源码解读(不含迭代器)

    JDK 1.8 ArrayBlockingQueue源码解读(不含迭代器)

    /** items index for next take, poll, peek or remove */ //下次拿元素的下标 take, poll, peek or remove中使用 int takeIndex; /** items index for next put, offer, or add */ //下次放元素的下标 put, offer, or add中使用

    日期 2023-06-12 10:48:40     
  • JDK 1.8  ArrayList源码解读

    JDK 1.8 ArrayList源码解读

    * Shared empty array instance used for empty instances. 默认的空数组,用于构造函数或者重置ArrayList private static final Object[] EMPTY_ELEMENTDATA = {}; * Shared empty array instance used for default sized emp

    日期 2023-06-12 10:48:40     
  • 曹工说JDK源码(4)--抄了一小段ConcurrentHashMap的代码,我解决了部分场景下的Redis缓存雪崩问题

    曹工说JDK源码(4)--抄了一小段ConcurrentHashMap的代码,我解决了部分场景下的Redis缓存雪崩问题

    曹工说JDK源码(1)--ConcurrentHashMap,扩容前大家同在一个哈希桶,为啥扩容后,你去新数组的高位,我只能去低位? 曹工说JDK源码(2)--ConcurrentHashMap的多线程扩容,说白了,就是分段取任务 曹工说JDK源码(3)--ConcurrentHashMap,Hash算法优化、位运算揭秘 什么是缓存雪崩 基本概念梳理 这个基本也是redis 面试的经典题目了,然

    日期 2023-06-12 10:48:40