首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    java进阶|Vector源码分析和理解

    这一篇文章算是从java基础性文章结束到进阶的一个过渡,虽然自己从未使用过Vector这样的容器进行数据的增删改查操作,但还是按照一贯的思路进行分析一下它的源码。...先简单看下它的结构图,然后看下提供的方法都有哪些,逐步分析每个方法的使用和源码。 ? 默认的无参构造函数,默认初始容量为10。...(o.equals(elementData[i])) return i; } return -1; } 上面主要体现了java...public void clear() { removeAllElements(); } 上面的基本方法,其用法和写法都很优秀,值得学习,后面进行总结的时候会慢慢输出自己对其的理解...package com.wpw.springbootjuc.java8.map; import lombok.extern.slf4j.Slf4j; import java.util.Vector;

    34210

    JDK核心JAVA源码解析(5) - JAVA File MMAP原理解

    本篇文章针对JAVA中的MMAP的文件映射读写机制,来分析为何很多告诉框架用了这个机制,以及这个机制好在哪里,快在哪里。 本文基于JDK 1.8 JAVA File MMAP原理解析 1....引入NIO后,Java IO已经相当快,而且内存映射文件提供了Java有可能达到的最快IO操作,这也是为什么那些高性能Java应用应该使用内存映射文件来持久化数据。...通过上面的源码分析,我们可以看到返回的是DirectByteBuffer,但是这个DirectByteBuffer并没有占用到JVM的-XX:MaxDirectMemorySize的空间。...源码解析(4) - 堆外内存、零拷贝、DirectByteBuffer以及针对于NIO中的FileChannel的思考 这个mmap占用的内存是一块独立于JVM之外的,可以进程间共享的内存。...这个不开放也可以理解,因为用户如果主动调用,会导致GC DirectBuffer的时候,报出内存访问异常导致JVM崩溃(如果用户调用了munmap,对应的MappedByteBuffer被GC时,会在被调用一次

    1.2K20

    深入理解Java——ConcurrentHashMap源码的分析(JDK1.8)

    4-8-3.jpg 一、前提 在阅读这篇博客之前,希望你对HashMap已经是有所理解的,如果你对java的cas操作也是有一定了解的,因为在这个类中大量使用到了cas相关的操作来保证线程安全的。...Ⅱ、java内存模型和cas操作 这里我只是简单的说一下java的内存模型和cas,因为这篇文章的主角的ConcurrentHashMap。...java内存模型:在java中线程之间的通讯是通过共享内存(即我们在变成时声明的成员变量或叫全局变量)的来实现的。...事实上已经有其他线程修改过了这个值了,这个就是 A ---> B ---> A 的问题; Ⅲ、获取table对应的索引元素的位置 通过(n-1)& hash 的算法来获得对应的table的下标的位置,如果对于这条公式不是很理解的同学可以到...: jdk1.8源码分析-hashMap 博客中了解。

    1.2K00

    深入理解Java中的PriorityQueue底层实现与源码分析

    本文将深入探讨Java中PriorityQueue的底层实现与源码分析,帮助读者更好地理解PriorityQueue的内部原理。...摘要  本文将从PriorityQueue的定义、特性入手,逐步分析其底层实现、源码解析以及应用场景案例、优缺点分析等方面,全面深入地理解PriorityQueue。...最终输出结果为:队列中的元素(从小到大):1 2 3 5 10小结  本文通过对Java中PriorityQueue的定义、特性、底层实现及源码解析进行详细分析,深入探讨了PriorityQueue的内部原理...总结  本文从PriorityQueue的定义、特性和底层实现入手,深入剖析了Java中PriorityQueue的源码和应用场景案例,并对其进行了优缺点分析。...附录源码  如上涉及所有源码均已上传同步在「Gitee」,提供给同学们一对一参考学习,辅助你更迅速的掌握。

    44121

    深入理解ThreadPoolExecutor源码

    2.基础介绍 ThreadPoolExecutor得7个参数 ThreadPoolExecutor最常用的构造方法有7个参数如下: 1.corePoolSize(核心线程数),核心线程数可以理解为公司的人员...2.maximumPoolSize(最大线程数),最大线程数可以理解为公司最多的员工能达到多少,包括了外包人员。...3.keepAliveTime(非核心线程存活时间),非核心线程可以理解为公司的外包人员,存活时间就是指外包在公司最多只能待多久时间,超过这个时间就要离开。...4.unit(非核心线程存活时间单位) 5.workQueue(任务队列),任务队列是指线程提交的任务存放的地方,可以理解为公司的需求量太大,此时本部人员忙不过来了。...其中拒绝策略能够进行自定义,Java中提供的4中拒绝策略如下。

    38440
    领券