上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 20 下一页
摘要: AQS全称AbstractQueueSynchronized,抽象同步队列器。 public abstract class AbstractQueuedSynchronizer extends AbstractOwnableSynchronizer implements java.io.Serial 阅读全文
posted @ 2023-04-21 16:58 壹索007 阅读(35) 评论(0) 推荐(0) 编辑
摘要: synchronized 是 Java 中的一个关键字,同步,主要解决的是多个线程之间访问资源的同步性,可以保证被它修饰的方法或者代码块在任意时刻只能有一个线程执行。 在 Java 早期版本中,synchronized 属于 重量级锁,效率低下。这是因为监视器锁(monitor)是依赖于底层的操作系 阅读全文
posted @ 2023-04-21 16:14 壹索007 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 什么是悲观锁? 悲观锁总是假设最坏的情况,认为共享资源每次被访问的时候就会出现问题(比如共享数据被修改),所以每次在获取资源操作的时候都会上锁,这样其他线程想拿到这个资源就会阻塞直到锁被上一个持有者释放。 像 Java 中synchronized和ReentrantLock等独占锁就是悲观锁思想的实 阅读全文
posted @ 2023-04-19 23:50 壹索007 阅读(26) 评论(0) 推荐(0) 编辑
摘要: volatile关键字:保证变量的可见性;禁止指令重排序 volatile(不稳定的)如何保证变量的可见性: 在 Java 中,volatile 关键字可以保证变量的可见性,如果我们将变量声明为 volatile ,这就指示 JVM,这个变量是共享且不稳定的,每次使用它都到主存中进行读取(也就是标志 阅读全文
posted @ 2023-04-19 22:53 壹索007 阅读(24) 评论(0) 推荐(0) 编辑
摘要: CPU缓存模型: CPU缓存为了解决CPU处理速度和内存处理速度不对等的问题,内存缓存的是硬盘数据用于解决硬盘访问速度过慢的问题。 指令重排序: 为了提升执行速度/性能,系统在执行代码的时候并不一定是按照你写的代码的顺序依次执行。 编译器优化重排 :编译器(包括 JVM、JIT 编译器等)在不改变单 阅读全文
posted @ 2023-04-19 22:31 壹索007 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 1.进程和线程 进程是资源分配和程序运行的基本单位,线程是能够进行运算调度的最小单位。 一个进程中可以并发多个线程,每条线程并行执行不同的任务。 2.进程与线程的关系,区别及优缺点 一个进程中可以有多个线程,多个线程共享进程的堆和方法区 (JDK1.8 之后的元空间)资源,但是每个线程有自己的程序计 阅读全文
posted @ 2023-04-19 16:05 壹索007 阅读(107) 评论(0) 推荐(0) 编辑
摘要: ConcurrentHashMap:线程安全的HashMap 1.7 JDK 1.7 中 的 ConcurrentHashMap 采用了分段锁的设计,只有在同一个分段内才存在竞态关系,不同的分段锁之间没有锁竞争。相比于对整个 Map 加锁,分段锁大大提高了高并发环境下的处理能力。 Concurren 阅读全文
posted @ 2023-04-19 15:58 壹索007 阅读(42) 评论(0) 推荐(0) 编辑
摘要: == 和 equals() 的区别 ·== 对于基本类型和引用类型的作用效果是不同的: 对于基本数据类型来说,== 比较的是值。 对于引用数据类型来说,== 比较的是对象的内存地址。 因为 Java 只有值传递,所以,对于 == 来说,不管是比较基本数据类型,还是引用数据类型的变量,其本质比较的都是 阅读全文
posted @ 2023-04-19 15:34 壹索007 阅读(21) 评论(0) 推荐(0) 编辑
摘要: HashMap:线程不安全,key无序不可重复,value无序可重复 HashMap 可以存储 null 的 key 和 value,但 null 作为键只能有一个,null 作为值可以有多个。 JDK1.8 之前 HashMap 由 数组+链表 组成的,数组是 HashMap 的主体,链表则是主要 阅读全文
posted @ 2023-04-17 23:43 壹索007 阅读(54) 评论(0) 推荐(0) 编辑
摘要: Java几种基本数据类型: byte(字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、char(2字节)、boolean(1位) 区别: 用途:除了定义一些常量和局部变量之外,我们在其他地方比如方法参数、对象属性中很少会使用基本类型来 阅读全文
posted @ 2023-04-17 23:14 壹索007 阅读(15) 评论(0) 推荐(0) 编辑
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 20 下一页