自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(5)
  • 收藏
  • 关注

原创 CAS

乐观锁与悲观锁Synchronized这种独占锁,属于悲观锁。悲观锁始终假定会发生并发冲突,因此会屏蔽一切可能会违反数据完整性的操作。乐观锁假设不会发生并发冲突,因此只在提交操作时检查是否违反数据完整性,如果提交失败,则会进行重试。乐观锁最常见的就是CAS了。CAS(Compare and Swap)是一种高效实现线程安全性的方法支持原子更新操作,适用于计数器,序列发生器等场景属于乐观锁机制,号称lock-freeCAS操作失败时有开发者决定是继续尝试,还是执行别的操作.

2020-09-28 19:56:05 211

原创 volatile

volatile是JVM提供的轻量级同步机制保证被volatile修饰的共享变量对所有线程总是可见的。当一个线程修改了一个被volatile修饰的共享变量时,其他线程能够立即感知到变动 禁止指令重排序优化。使用volatile修饰的变量仍然会存在线程安全的问题如下程序所示,两个线程可能在同一时间读取value值为同一值,对value值进行加1的操作,就会导致线程安全的问题。要解决线程安全的问题,就要在increase方法前加上synchronized关键字。由于synchro..

2020-09-28 19:54:55 311

原创 synchronized底层实现原理

实现synchronized的基础是java对象头和MonitorJava对象头对象在内存中的布局分为三个部分:对象头、实例数据、对齐填充一般来说,synchronized使用的锁对象是存储在Java对象头中对象头结构:对象头是与对象自身定义的数据没有关系的额外存储成本,考虑到JVM的空间效率,Mark Word被设计成非固定的数据结构,以便存储更多有效的数据。它会根据对象本身的状态复用自己的存储空间。Monitor每个Java对象天生自带了一把看不见的...

2020-09-28 19:51:49 341

原创 面试常问题目

JAVAjre和jdk的区别Java环境根据需求分为:开发环境和运行环境。开发环境需要安全JDK,运行环境需要安装JREJDK(Java Development Kit)是Java开发工具集。包含了Java基础类库,Java运行环境(JRE)和Java开发工具,是做Java开发必须安装的。JRE(Java Runtime Environment)指的是Java运行时环境。Java程序运行时必需要JRE的支持。如果系统中安装JRE的话,则意味着系统可以跑Java程序,但是不能进行Java开发。

2020-09-26 15:07:05 296

原创 GC垃圾回收机制

判定对象是否为垃圾的算法?对象被判定为垃圾的标准:没有被其他对象引用判定对象是否为垃圾的算法?1.引用计数算法该算法通过判断对象的引用数量来决定对象是否可以被回收。堆中的每个对象实例都有一个引用计数器,当一个对象被创建时,若对象被分配给一个引用变量,则该对象的引用计数+1;当对象的某个引用变量超过了生命周期或者被设置成一个新值时,该对象的引用计数-1。任何引用计数为0的对象实例可以被当作垃圾收集。优点:由于只需要过滤出引用计数为0的对象,将其内存回收即可,所以算法的执行.

2020-09-22 18:20:03 254

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除