一、基本概念 先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程 ...
一、基本概念 先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。通常,我们无法确保执行读操作的线程 ...
1.for循环方法: 代码灵活,但效率低。 2.System.arraycopy()方法: 通过源码可以看到,其为native方法,即原生态方法。自然效率更高。 ...
这是美团一面面试官的一个问题,后来发现这是一道面试常见题,怪自己没有准备充分:i++;在多线程环境下是否存在问题?当时回答存在,接着问,那怎么解决?。。。好吧,我说加锁或者synchronized ...
简述 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效 ...
简述 这两个操作就好比播放器的暂停和恢复。 但这两个 API 是过期的,也就是不建议使用的。 不推荐使用 suspend() 去挂起线程的原因,是因为 suspend() 在导致线程暂停的同时, ...
两种模式的特点 装饰模式: 在不改变接口的前提下,动态扩展对象的访问。 动态继承,让类具有在运行期改变行为的能力。 装饰模式,突出的是运行期增加行为,这和继承是不同的,继承是在编 ...
概述 一个对象本身的内在结构需要一种描述方式,这个描述信息是以字节码的方法存储在方法区中的。Class 本身就是一个对象,都以 KB 为单位,如果 new Integer() 为了表示一个数据就占用 ...
简介 Condition中的await()方法相当于Object的wait()方法,Condition中的signal()方法相当于Object的notify()方法,Condition中的sign ...
Java提供的原子类是靠 sun 基于 CAS 实现的,CAS 是一种乐观锁。关于乐观锁与悲观锁。 原子变量类相当于一种泛化的 volatile 变量,能够支持原子的和有条件的读-改-写操作 ...
简述 ReentrantLock 是一个可重入的互斥(/独占)锁,又称为“独占锁”。 ReentrantLock通过自定义队列同步器(AQS-AbstractQueuedSychronized,是 ...