H__D |
|
||
2021年3月26日
摘要:
一、概述 本章使用的是JDK8。 二话不说,一上来就点开源码,发现里面有一段介绍如下: Hash table based implementation of the Map interface. This implementation provides all of the optional map 阅读全文
摘要:
一、概述 本例使用的是JDK8. 一上来,先来看看源码中的这一段注释,我们可以从中提取到一些关键信息: Resizable-array implementation of the List interface. Implements all optional list operations, and 阅读全文
2021年3月25日
摘要:
模板方法模式 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。 例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等, 阅读全文
2021年3月23日
摘要:
一、Atomic包 当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使用synchron 阅读全文
摘要:
一、中缀表达式 我们日常的运算表达式通常是如下形式,这种成为中缀表达式,也就是运算符在运算数的中间。这种表达式人类人容易识别,并根据其进行计算,但计算机识别这种表达式非常困难。 中缀表达式:(a + b) * c - d 中缀表达式的计算机求值:参考:【数据结构】栈,中的计算器应用部分 二、前缀表达 阅读全文
摘要:
一、栈的基本介绍 1.1 栈的基本性质 栈的英文为(stack) 栈是一个先入后出(FILO-First In Last Out)的有序列表 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。 允许插入和删除的一端, 为变化的一端, 称为栈顶(Top), 另一端 阅读全文
2021年3月22日
摘要:
在JDK的并发包里提供了几个非常有用的并发工具类。CountDownLatch、CyclicBarrier 和 Semaphore 工具类提供了一种并发流程控制的手段。三个类的原理都是基于AQS。Exchanger工具类则提供了在线程见交换数据的一种手段。 一、等待多线程完成的CountDownLa 阅读全文
摘要:
一、定义 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。 二、结构 代理模式的结构 代理模式的主要角色如下。 1)抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现 阅读全文
2021年3月21日
摘要:
重入锁 重入锁ReentrantLock,顾名思义,就是支持重进入的锁,它表示该锁能够支持一个线程对资源的重复加锁。除此之外,该锁的还支持获取锁时的公平和非公平性选择。 考虑如下场景:当一个线程调用Mutex的lock()方法获取锁之后,如果再次调用lock()方法,则该线程将会被自己所阻塞,原因是 阅读全文
摘要:
阅读此篇文章请先了解 AQS:【Java多线程】队列同步器AQS(十一) 阻塞队列:【Java多线程】Java中的阻塞队列(十五) 一、ArrayBlockingQueue介绍 ArrayBlockingQueue是一个用数组实现的有界阻塞队列。此队列按照先进先出(FIFO)的原则对元素进行排序。 阅读全文
|
Copyright © 2024 H__D
Powered by .NET 9.0 on Kubernetes |