【java源码解读--queue】教程文章相关的互联网学习教程文章

学以致用——Java源码——增强的自定义日期类(包含nextDay方法)(Enhancing Class Date with nextDay method)

功能介绍: 1. 使用年、月、日构建日期 2. 对年、月、日进行了合法性检查,创建成功的日期都是合法的日期。合法性检查包括:每个月的天数、闰年(存在2月29日)、平年(不存在2月29日) 3. 返回任意日期的nextDay(带参数方法),无参方法可用于循环输出下一日 注:看似简单的一次增强,也花掉了不少时间! 运行结果示例:d1:2018年12月31日 d2:2018年1月1日 d4:2018年2月28日 d5:1918年1月1日 d7:2019年1月1日 2018年12月31日的下...

深入Java源码解析容器类List、Set、Map【代码】【图】

1 常用容器继承关系图先上一张网上的继承关系图个人觉得有些地方不是很准确,比如Iterator不是容器,只是一个操作遍历集合的方法接口,所以不应该放在里面。并且Map不应该继承自Collection。所以自己整理了一个常用继承关系图如下如上图所示,接下去会自顶向下解释重要的接口和实现类。2 Collection和Map在Java容器中一共定义了2种集合, 顶层接口分别是Collection和Map。但是这2个接口都不能直接被实现使用,分别代表两种不同类型的...

干货:阅读跟踪 Java 源码的几个小技巧!【图】

今天跟大家分享一下我平时阅读源码的几个小技巧,对于阅读Java中间件如Spring、Dubbo等框架源码的同学有一定帮助。本文基于Eclipse IDE,我们每天都使用的IDE其实提供了很多强大的功能,掌握它们,往往能够事半功倍。1、Quick Type Hierarchy 快速查看类继承体系。快捷键:Ctrl + T查看类很多人可能都知道,可源码阅读的时候更多用来查看方法体系更重要,可以方便快速的定位到方法的实现类。如:此时如果想查看getBean()方法如何实...

RxJava源码分析(二):常用操作符【代码】

一、map操作符 map操作符的作用是将被观察者Observable发送的数据在apply()方法中转化成自己需要的返回到下游Observer的onNext()方法中。例: Observable.create(new ObservableOnSubscribe<Integer>() {@Overridepublic void subscribe(ObservableEmitter<Integer> emitter) throws Exception {emitter.onNext(1);emitter.onNext(2);emitter.onNext(3);emitter.onNext(4);emitter.onComplete();}}).map(new Function<Integer, Str...

深入Java源码理解线程池原理【代码】【图】

程序运行,其本质上,是对系统资源(CPU、内存、磁盘、网络等等)的使用。如何高效的使用这些资源是我们编程优化演进的一个方向。今天说的线程池是对CPU的利用的优化手段。网上有不少介绍如何使用线程池的文章,那我想说点什么呢?我希望查看线程池原理,明白池化技术的基本设计思路。遇到其他相似问题可以解决。池化技术何为池化技术,简单点来说,就是提前保存大量的资源,以备不时之需。在资源有限的情况下,该技术可以大大提升...

图的宽度优先遍历(BFS)java源码

import java.util.HashSet; import java.util.LinkedList; import java.util.Queue; /*** * 图的宽度优先遍历* */ public class Code_01_BFS {public static void bfs(Node node) {if (node == null) {return;}Queue<Node> queue = new LinkedList<>();HashSet<Node> map = new HashSet<>();queue.add(node);map.add(node);while (!queue.isEmpty()) {Node cur = queue.poll();System.out.println(cur.value);for (Node next : cur...

RxJava2 源码分析【代码】

前言 很多项目使用流行的Rxjava2 + Retrofit搭建网络框架,Rxjava现在已经发展到Rxjava2,之前一直都只是再用Rxjava,但从来没有了解下Rxjava的内部实现,接下来一步步来分析Rxjava2的源码,Rxjava2分Observable和Flowable两种(无被压和有被压),我们今天先从简单的无背压的observable来分析。源码基于rxjava:2.1.1。 简单的例子 先来段最简单的代码,直观的了解下整个Rxjava运行的完整流程。 1 private void doSomeWork() {2 ...

java源码阅读 (二)【图】

#include <stdio.h>#define JRT_ENTRY(result_type , header) JRT_NO(result_type , header)#define JRT_NO(result_type , header) extern "C" { result_type header{ printf("%d" , a);#define JRT_END }}class _jobject {};#include "Header.h"JRT_ENTRY(int , Test(int a))return 30; JRT_ENDint main() {int a = Test(10);printf("%d" , a);return 0; }

Tesseract-OCR 4.1.0 安装及使用—windows及CentOS【附Java源码实现】【代码】【图】

截止笔者发文(2019.12.25),tesseract-ocr 最新发布的稳定版本是4.1.0. 而tesseract-ocr需要依赖leptonica,截止笔者发文,最新稳定版本是1.78.0 经过测试得出如下结论:对于宋体,白色背景,非倾斜等,像素大于等于300dpi—识别率%100英文和数字,识别率超过90%特殊字符识别率不高像素太低,识别率急剧下降多种背景颜色变化,识别率极低字体换成草书等,识别率大幅降低电影屏幕字幕和网页截图识别率较低扫描件如果字体太淡,太小...

Tesseract-OCR 4.1.0 安装及使用—windows及CentOS【附Java源码实现】【代码】【图】

截止笔者发文(2019.12.25),tesseract-ocr 最新发布的稳定版本是4.1.0. 而tesseract-ocr需要依赖leptonica,截止笔者发文,最新稳定版本是1.78.0 经过测试得出如下结论:对于宋体,白色背景,非倾斜等,像素大于等于300dpi—识别率%100英文和数字,识别率超过90%特殊字符识别率不高像素太低,识别率急剧下降多种背景颜色变化,识别率极低字体换成草书等,识别率大幅降低电影屏幕字幕和网页截图识别率较低扫描件如果字体太淡,太小...