阿呆的博客
正在加载今日诗词....
08
04
01
AQS学习笔记 AQS学习笔记
AQS简介 AbstractQueuedSynchronizer简称AQS,是一个用于构建锁和同步容器的框架。事实上concurrent包内许多类都是基于AQS构建,例如ReentrantLock,Semaphore,CountDownL
2019-08-01
07
31
谈谈volatile 谈谈volatile
Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurrent包等。 volatile的用法volatile通常被比喻
25
java源码之二叉查找树与二叉平衡树 java源码之二叉查找树与二叉平衡树
二叉排序树 解决查询速度慢的方案除了哈希表外,还可以使用二叉排序树。查询慢主要是因为不知道元素的位置,使用hash函数映射虽然解决了问题,但其并不稳定,当出现大量的哈希碰撞后其表现更像一个链表,查询速度大大降低。二叉排序树的方案则是使元素有
2019-07-25
09
java源码之树与二叉树 java源码之树与二叉树
树的定义树(Tree)是n(n≥0) 个结点的有限集。n=0 时称为空树。在任意一棵非空树中: 1.有且仅有一个特定的称为根(Root)的结点; 2.当n>1 时,其余结点可分为m (m>0) 个互不相交的有限集T1 、T2、
2019-07-09
09
java源码之数组、链表与哈希表 java源码之数组、链表与哈希表
数组在java中,数组定义为一种基本类型,其可以通过下标获取到对应位置的数据。数组在内存中是一段连续的存储单元,每个数据依次放在每个单元中。分析这种结构,可以得出以下几个结论: 创建一个数组,必须声明其长度,以在内存中寻找合适的一段连续
2019-07-09
06
04
线程池 线程池
为什么要用线程池?单线程方式存在以下几个问题: 线程的工作周期:假设线程创建所需时间为T1,线程执行任务所需时间为T2,线程销毁所需的时间为T3,往往是T1+T3大于T2,所以如果频繁的创建线程会损耗过多的额外时间。 如果有任务来了,再去
2019-06-04
02
Docker基础(二) Docker基础(二)
一、Docker数据管理   在实际使用Docker的过程中,往往需要对数据进行持久化,或者需要在多个容器之间进行数据共享,这必然涉容器的数据管理操作。  容器中的数据
2019-06-02
05
31
Docker基础(一) Docker基础(一)
今天开始正式学习Docker,边学习边总结,任重而道远。 启动docker服务:systemctl start docker 启动守护进程:systemctl daemon-reload 重启docker服务:systemctl re
2019-05-31
30
28
线程基本概念 线程基本概念
一、程序、进程与线程首先区分一下程序、进程与线程这三个之间的概念。 程序 (Program):程序是一段静态的代码,它是应用程序执行的蓝本 进程 (Process):进程是指一种正在运行的程序,有自己的地址空间。进程是分配资源的最小
2019-05-28
25
ORM与反射 ORM与反射
ORM(Object Relation Mapping)对象关系模型关系模型(数据库表): 表、字段、字段类型对象模型(java实体类):类、属性、属性类型通过ORM框架解除模型之间的阻抗。 利用反射实现ORM中的准备预编译SQL语句
2019-05-25
1 / 2