自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 Java锁升级---偏向锁、轻量级锁、自旋锁、重量级锁

一,锁的分类:锁从宏观上分类,分为悲观锁(synchronized)与乐观锁(偏向锁,轻量级锁,自旋锁)。1.乐观锁:认为读多写少,并发写的可能性低。每次读数据都认为别人不会修改,不会加锁,只在更新的时候判断别人有没有更新这个数据。使用CAS实现:在更新之前会保存一个原始值,在写时读取原始值与当前值进行比较如果相同则更新,否则失败。重复进行读—比较—写的操作。CAS存在ABA问题:即一个线程1将A改为B,另一个线程2将B又改回A。判断的时候就不知道有没有人改过。在需要记录修改过程时一般加上版本控

2020-06-30 10:32:23 362

原创 强引用,软引用,弱引用,虚引用

一,强引用Student student = new Student(); // 这就是强引用强引用表示一个对象处在【有用,必须】的状态,是使用最普遍的引用,当JVM内存空间不足,JVM宁愿抛出OutOfMemoryError运行时错误(OOM),使程序异常终止,也不会靠随意回收具有强引用的“存活”对象来解决内存不足的问题。如果没有其他的引用关系,只要超过了引用的作用域或者显式地将相应(强)引用赋值为 null,就是可以被垃圾收集的了。二,软引用Student st...

2020-06-30 10:26:23 206

原创 JVM与GC垃圾回收(各种垃圾收集器,Jvm相关工具)

1.JVM内存区域:虚拟机栈,本地方法栈,程序计数器线程隔离,方法区,本地内存,直接内存,堆线程共享。①.虚拟机栈:描述方法执行时的内存模型,主要保存执行方法时的局部变量表、操作数栈、动态连接和方法返回地址等信息,方法执行时入栈,方法执行完出栈,出栈就相当于清空了数据,入栈出栈的时机很明确,不需要进行 GC。②.本地方法栈:与虚拟机栈类似,本地方法栈针对于本地方法(该方法并非 Java 实现的,可能由 C 或 Python等其他语言实现的, Java 通过 JNI 来调用本地方法),不需要进

2020-06-30 10:23:50 147

原创 Java类加载机制

Java类加载机制类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构。类的加载的最终产品是位于堆区中的Class对象,Class对象封装了类在方法区内的数据结构,并且向Java程序员提供了访问方法区内的数据结构的接口。(1) 装载:查找和导入Class文件;(2) 链接:把类的二进制数据合并到JRE中;(a)校验:检查载入Class文件数据的正确性;(b)准备:给类的

2020-06-30 10:07:53 78

空空如也

空空如也

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

TA关注的人

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