根据数据类型,可以将JUC包中的原子操作类可以分为4类。 1. 基本类型: AtomicInteger, AtomicLong, AtomicBoolean ;2. 数组类型: AtomicInteg…
Java多线程——Condition条件,Java多线程系列--“JUC锁”06之 Condition条件
简介 Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的signalAll()相当于O…
Java并发编程之——线程池帮助类Executors和Future及Callable相关
Future和FutureTask 接口Future<V>表示异步计算的结果。它提供了检查计算是否完成的方法,以等待计算的完成,并获取计算的结果。计算完成后只能使用get()方法来获取结果,如有必要,计算完成…
java学习问题引导
一、数据结构与算法基础 说一下几种常见的排序算法和分别的复杂度。 用Java写一个冒泡排序算法 描述一下链式存储结构。 如何遍历一棵二叉树? 倒排一个LinkedList。 用Java写一个递归遍历目录下面的所有文件。 …
关于Java内存模型的解读
运行时数据区域 运行时数据区包括以下五大部分:方法区、堆、虚拟机栈、本地方法栈、程序计数器。其中,方法区和堆是由所有线程共享的数据区,其他区域是线程隔离的数据区。 程序计数器: 程序计数器是一块较小的内存…
Java多线程suspend、sleep的控制锁的释放的区别
因为马上毕业了,最近一直在复习Java的基础知识,多线程当然是重点了,今天上午一直在看线程的生命阶段,其中有过时的方法suspend用来挂起一个线程。而…
【Android实战】----Android Retrofit是怎么将回调函数放到UI线程(主线程)中的(源码分析)
一、简介 集成过Retrofit的猿们都知道,callback是运行在主线程中的,不用再通过异步机制处理。那么是怎么实现的呢,下面从源码角度进行分析,其中涉及到Android异步机制(Handler、Message、Lo…
线性时间的中位数查找算法
原帖链接 一、以期望线性时间做选择 一般来说,中位数的查找算法都是基于先排序,后找中间位置的数字的算法,但是因为线性时间排序所收到的限制比较大,而如果使用基于比较的排序,时间复杂度将至少为O(nlogn),如何以线性时间…
二叉树(12)----查找两个节点最低祖先节点(或最近公共父节点等),递归和非递归
1、二叉树定义: typedef struct BTreeNodeElement_t_ { void *data; } BTreeNodeElement_t; typedef struct BTreeNode_t_ { …
Trie树专题
Trie树专题 下面是查询字符串的模板,可以通过做题练习来灵活修改。 1、静态建树 速度快,但可能会浪费内存 有的题用动态建树会超时,静态就不超时 struct trie { int next[maxnode][size…
图的遍历算法详解
http://longpo.iteye.com/blog/2195939 https://segmentfault.com/a/1190000002685939 http://blog.csdn.net/hguisu/a…
遍历图的路径
1,深度优先搜索 Boolean visited[MAX]; Status(*VisitFunc)(int v); void DFSTraverse(Graph G,Status(*Visit)(int v)){ Vis…