01 2022 档案
摘要:AtomIcLong介绍: 递增操作代码: public final long incrementAndGet() { return unsafe.getAndAddLong(this, valueOffset, 1L) + 1L; } 递减操作代码: public final long decre
阅读全文
摘要:Random介绍: Random: 随机数的生成需要一个默认的种子,这个种子其实是一个long类型的数字,你可以在创建Random对象时通过构造函数指定,如果不指定则在默认构造函数内部生成一个默认的值。 新的随机数的生成需要两个步骤:● 首先根据老的种子生成新的种子。● 然后根据新的种子来计算新的随
阅读全文
摘要:悲观锁:对数据被外界修改持保守态度,任务数据很容易被其他线程修改,所以在数据被处理以前先对数据进行加锁,并在整个数据处理过程中,使数据处于锁定状态,其它线程就无法访问。悲观锁是排它锁。 乐观锁:总认为资源和数据不会被别人所修改,所以读取不会上锁,但是乐观锁在进行写入操作的时候会判断当前数据是否被修改
阅读全文
摘要:多线程并发编程: 并发是指同一个时间段内多个任务同时都在执行,并且都没有执行结束,并发任务强调在一个时间段内同时执行,而一个时间段由多个单位时间累积而成,所以说并发的多个任务在单位时间内不一定同时在执行。在单CPU的时代多个任务都是并发执行的,这是因为单个CPU同时只能执行一个任务。在单CPU时代多
阅读全文
摘要:(一)背景: 相对其他数据库而言,MySQL 的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-levellocking),但也支持表级锁;Inn
阅读全文
摘要:JAVA 虚拟机收集垃圾的区域: 【垃圾回收主要是指方法区和堆内存的回收,这些区域的内存是变化的。其它区域的内存跟随方法的结束或者线程的结束而自动回收】 程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。因此这几个区域的内
阅读全文
摘要:Hotspot JVM架构细节与运行机制 首先,java Complier将.java文件编译为.class字节码文件,之后由类加载器子系统装载.class文件,该部分的主要工作是查找并验证类文件,完成相关内存空间的分配和对象赋值。类文件加载到内存之后,由运行时数据据完成数据存储与数据交换。 运行时
阅读全文
摘要:在设计模式中我们讲述观察者模式的实现方式,这里着重讲述一下如何使用Lambda表达式实现观察者模式,从而达到让代码更加简洁和阅读性更好。 还是依据设计模式中观察者模式的相关对象进行展开: 定义观察者的接口,也就是观察者的响应接口。事实上这是一个函数式接口 public interface NewOb
阅读全文
摘要:collect(toList()) collect(toList())方法由Stream里的值生成一个列表,是一个及早求值操作。 public class collect { public static void main(String[] args) { List<Integer> list =
阅读全文
摘要:命令接口: public interface Command { public void execute();} 接收者接口: public interface Light { public void on(); public void off();} public interface Door {
阅读全文
摘要:package lambda.functionalProgramming; import java.util.Arrays; import java.util.List; import java.util.function.BiConsumer; import java.util.function.
阅读全文