Just play around
'锁升级过程' '锁升级过程'
JVM中每一个对象都有一个对象头,用于保存对象的系统信息,对象头中有一个部分被称为Mark Word,它存放了对象的哈希值、对象年龄、锁的指针等信息。 如果将所有的线程竞争都交给操作系统处理,那么并发性能是非常低下的,因此虚拟机在操作系统挂
2024-11-28
线程池面试常问知识点 线程池面试常问知识点
1.基本概述线程池:一个容纳多个线程的容器,容器中的线程可以重复使用,省去了频繁创建和销毁线程对象的操作 线程池作用: 降低资源消耗,减少了创建和销毁线程的次数,每个工作线程都可以被重复利用,可执行多个任务 提高响应速度,当任务到达时,如
2024-11-05
可以打破双亲委派机制吗 可以打破双亲委派机制吗
1.什么是双亲委派模型双亲委派模型(Parents Delegation Model)默认的类加载逻辑是:一个类加载器首先将类加载请求转发到父类加载器,只有当父类加载器无法完成时才尝试自己加载。 双亲委派机制的优点: 可以避免某一个类被重
2024-10-21
并发编程的原子性和数据库的原子性相同吗? 并发编程的原子性和数据库的原子性相同吗?
并发编程中的原子性和ACID事务中的原子性虽然共享了“原子性”这个名字,但其核心含义和应用层面有显著的区别。它们追求的是类似的“不可分割性”概念,但针对的层次和解决的问题截然不同。 下面是对两者关键差异的分析: 抽象的层级与应用范围:
2024-10-18
接口和抽象类的区别 接口和抽象类的区别
本文基于jdk1.8谈论接口和抽象类的区别 1.抽象类1.1抽象类的定义抽象类通常包含抽象方法、非抽象方法和属性。子类要么实现这些抽象方法,要么也声明为抽象类。非抽象方法和属性可以有具体的实现代码,并且可以被子类继承,根据需要进行覆盖和修改
2024-06-27
深入理解HashSet:可变对象引发的问题 深入理解HashSet:可变对象引发的问题
问题遇到了一奇怪的问题,现象是同一个对象,在一个HashSet里面存了两份。当时以为是hashcode和equals方法没有写对,但是仔细检查后没有发现错误。仔细debug发现,其hashcode不同。于是想到也许是对象的hashcode发
2024-06-12
synchronized的常见面试题 synchronized的常见面试题
synchronized 关键字是Java中实现线程同步的基本机制之一。它用于保护共享资源不被多个线程同时访问,从而避免数据不一致和保证线程安全。synchronized 可以用于方法和代码块,有助于确保在同一时刻只有一个线程可以进入同步代
2024-06-08
JVM之类加载机制 JVM之类加载机制
概述当 Java 虚拟机将 Java 源码编译为字节码之后,虚拟机便可以将字节码读取进内存,从而进行解析、运行等整个过程,这个过程我们叫:Java 虚拟机的类加载机制。JVM 虚拟机执行 class 字节码的过程可以分为七个阶段:加载、验证
2024-04-02
JVM之垃圾回收器 JVM之垃圾回收器
总的来说,Java 虚拟机的垃圾回收器可以分为四大类别:串行回收器、并行回收器、CMS 回收器、G1 回收器。 1.串行回收器串行回收器是指使用单线程进行垃圾回收的回收器。因为每次回收时只有一个线程,因此串行回收器在并发能力较弱的计算机上
2024-03-30
从源码上理解CAS操作 从源码上理解CAS操作
1背景在高并发的业务场景下,线程安全问题是必须考虑的,在JDK5之前,可以通过synchronized或Lock来保证同步,从而达到线程安全的目的。但synchronized或Lock方案属于互斥锁的方案,比较重量级,加锁、释放锁都会引起性
2024-03-04
1 / 2