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

    java进阶|java队列源码分析

    今天我要分享的是java里面比较常见的数据结构队列的源码分析,队列,先进先出模式,即FIFO的特点,日常生活中队列的特点也随处可见,超市购物排队,餐厅排队买饭等一系列都满足了队列的先进先出的特点,java...也不是,主要是之前我自己分析了ArrayList,LinkedList以及Stack的源码文章了,到这里就理所应当的应该分析队列的这种数据结构了,满足一下学生时代心心念的数据结构吧。...说了这么多,接下来就逐渐去分析队列的源码吧,写到这时下起了小雨,对,这个时间段是晚上十点左右,这篇文章是自己继五一放假来的第一篇文章,自己玩着玩着手机就突然想起了要写这篇文章了,索性就过来写了,要是学生时代这么努力多好...关于读源码,如何进行梳理整个过程,每个人都有着自己的一套,在这里我就以自己的一套来进行分析好了。...十,到这里就结束了自己对队列的源码分析,其实你会发现我这里没有对队列的每一个方法进行分析,其实都差不多,这里起到一个开头作用就可以了,下面的每个分析方法都差不多。

    74220

    java之CopyOnWriteArraySet源码分析

    上篇我们分享了CopyOnWriteArrayList的源码分析,这次我们打算来分享 CopyOnWriteArraySet的源码分析,当自己整理了一下源码流程时发现这篇文章没什么写头,底层是在基于利用...package com.wpw.asyncthreadpool; import java.util.concurrent.CopyOnWriteArraySet; public class CopyOnWriteArraySetTest...我们看下在CopyOnWriteArrayList源码里面我们没有介绍到的containsAll()方法,由于这篇讲的是set,但是底层还是使用的是CopyOnWriteArrayList,所以我们这里继续分析...destPos, int length); 我们看上面的方法修饰符是由native关键字修饰的,所以它是在本地方法栈执行的,不是在java...到这里我们的分享内容就结束了,今天写了CopyOnWriteArrayList的姊妹篇 CopyOnWriteArraySet的源码分析,其实底层实现是基于CopyOnWriteArrayList的,喜欢文章的可以关注公众号

    50820

    java进阶|PriorityQueue源码分析

    0x01,闲聊一下 本来今天(2020/06/xx)是打算分析一下ArrayBlockingQueue队列的源码的,但是看了半个多小时吧,还有一点没有想明白,索性就没有继续以文章的方式输出了,但是看了ArrayBlockingQueue...的源码,倒是觉得它就是一个线程安全的队列,所以后面打算分享一下吧,谁让当时理解不了那个知识点呢,后面再说了,后面自己就写了java的等待通知机制的文章和限流的文章,所以这是今天写的第三篇文章了,好了,好了...,不闲扯了,这里我就来分析了优先级队列的源码,因为我理解了里面的内容,不写出来总觉得没有掌握这个内容,其实也不是,可能是写文章写多了,不写总觉得不习惯,是的,不习惯。...0x02,步入主题 一般,我在分析源码的时候总是从构造函数入手,想起构造函数还是想起了要写一篇如何创建java对象的文章吗,不知道,还是在自己的内心沉淀一段时间再说吧,毕竟写文章是需要很花费一个人很长的时间的...,这是第15篇源码分析的文章,最近也在思考一下这两年的点点滴滴,如果自己有时间以及自己如果思考的有意义的话语,自己会单独写一篇这两年的点点滴滴分享一下,或许对于自己也是一个总结。

    34520

    java之StopWatch源码分析

    System.out.println("统计计算0~1000000000相加的总和" + sum + "耗时时间为:" + (endTime - startTime) + "ms");     } 我们先分析这段代码涉及的内容吧...想了解本地方法栈和java方法栈的内容可以先看下这两篇文章java虚拟机,应该了解一点点,另外一篇是java内存区域划分详解,后面的一篇是对前面内容的详细描述吧,希望可以帮助到你,喜欢的可以关注此公众号...我们继续说下另外一种计时方法吧,StopWatch,这是spring框架提供的一个工具类,只要你使用了spring框架,就无需导入其它jar包了,好了,我们看下它的常见用法吧,继续按照我们一贯的风格,先将代码看下...下面我们继续看下StopWatch工具类提供的常用方法吧 我们看下stopWatch方法做了什么,和原来的有什么不一样的,除了多了给当前的执行 任务起了一个有明确含义的任务名,在计算时间时任然时调用的是...下面再分析一下这个方法了,在我们的示例中,我们使用了下面的这个方法prettyPrint()进行信息格式友好的输出。

    95310

    java进阶|LinkedBlockingDeque源码分析

    这是关于java集合类源码分析文章的最后一篇,后面或许会随着自己的一些理解,自己还是会再来写一两篇集合源码分析的文章,因为目前自己的理解,有些集合的源码自己确实理解不了,所以我就不继续分析其它集合源码了...,这是源码分析的第14篇,java中常用的集合基本上分析完了,除了HashMap之类的没有分析,都分析完了。...关于HashMap的源码分析,自己在之前的文章中说过自己不会去分析它,因为我觉得你理解了散列函数就差不多了。...一,LinkedBlockingDeque的类结构,理解这个结构才能"登高望远" 这个图可以看出来java作为一门高级语言的"单继承","多实现"的特点,理解这点就可以了。...自己想分析的方法都分析完了,其它的pop()方法就分析了,因为每个方法都在上面分析了,这里暂时不在这里做一下分析源码分析总结的文章了,说不定哪天自己理解好了就会单独写一篇自己对源码分析总结的文章分享出来

    45430

    java进阶|TreeSet源码分析

    这次自己去分析了TreeSet的源码,这里就开始文章的下文吧,首先我还是按照构造函数的分析开始了。...TreeMap的源码,但是这不影响我的分析,因为我已经分析完TreeSet集合的源码,整个的过程中没有阻塞性,所以分析TreeSet集合继续了。...首先,TreeSet集合和其它普通的集合一样,主要是用来作为数据的容器装载,集合嘛可以理解为动态扩容的数组,因为数组的内存空间是静态分配的,记得理解动态和静态分配的这个内容是在18年初,那个时候可谓是对java...这门语言没有一个很高的把握,但是工作中的内容还是可以的,那个时候自己都写了java8的写法,但是时过两年后自己才去输出和分享了java8的文章,所以觉得自己想写的文章是不是拖延了很久,读过我的文章读者的就知道...final Object PRESENT = new Object(); 是的,它就是一个常量值,这样就会直接调用TreeMap的put()方法不用传动态的value值了,其实你看过HashSet的源码就会知道

    46820
    领券