JUC源码学习之AbstractQueuedSynchronizer
源码基于的Oracle JDK版本为:11.0.5什么是CLH队列简单理解是一个双向链表,链表中存放的是包含线程在内的信息,队首的是正在执行的线程,后面的是等待执行的线程,如下图所示:Node概述The wait queue is a variant of a "CLH" (Cr
源码基于的Oracle JDK版本为:11.0.5什么是CLH队列简单理解是一个双向链表,链表中存放的是包含线程在内的信息,队首的是正在执行的线程,后面的是等待执行的线程,如下图所示:Node概述The wait queue is a variant of a "CLH" (Cr
面试必问题吧,但是好像还有一个比较容易漏的地方。总体的流程,搞清楚执行此代码后,他们的结果是什么,以及为什么就差不多算理解了。String a1 = new String("ab");System.out.println(a1 == a1.intern());//falseStr
在Spring中,有很多的注解,比如@Controller、@Service什么的。之前对注解的了解不够,在使用SSM时,在想到底什么是注解,它的工作原理又是什么或者说它是怎么工作的,为什么注解了之后就能达到某个功能呢?带着这样的一个疑问,开始探索之旅吧!常见的Java内置的注解以及源代码@Over
CountDownLatchA synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.A Cou
注意synchronized关键字使用的是实例锁即可。即m1()与m2()是按照某个次序执行,所以在m1()中,一定会输出b = 1000。至于主线程中的输出,则需要考虑执行顺序。package basic.multithread;public class TestSync2 implements
ExceptionThe class Exception and its subclasses are a form of Throwable that indicates conditions that a reasonable application might want to catch.Th
流与块的比较原来的 I/O 库(在 java.io.*中) 与 NIO 最重要的区别是数据打包和传输的方式。正如前面提到的,原来的 I/O 以流的方式处理数据,而 NIO 以块的方式处理数据。面向流 的 I/O 系统一次一个字节地处理数据。一个输入流产生一个字节的数据,一个输出流消费一个字节的数据。
finally一定会执行return以最后一次为准return后的finally是否修改了数据,得看具体类型try{} catch(){}finally{} return按照正常的顺序执行:有错会执行catch,finally都会执行,最后执行return。 private static in
此篇主要解析 ArrayList 的源码处理逻辑继承关系几个有意思的参数// 默认初始容量private static final int DEFAULT_CAPACITY = 10;// 共享空数组private static final Object[] EMPTY_ELEMENTDATA =
从Camera获取到了byte[]类型的图像数据之后,需要送到so库中,让so库进行相应的处理,并对其处理的结果进行相应的反馈;1s大概有30帧的数据,但是除去一些装载数据的事件,时间就变大了,实际可拿到的帧率就变小了;在此每秒取5帧,每张图片大致1~3M。这大致就是解决这个问题的背景框架。起因处理
在项目中遇到一种情况,我想通过了解某个Intent里面到底存了哪些数据来解决这个问题。但是我们知道,Intent里面的数据需要知道key才能调用相应的函数取出来,所以如何才能找出这些key呢?通过对Intent代码里面对存数据的观察,我们可以看到,通过putExtra()存的数据,都放在一个叫做mE