
java必知笔记
文章平均质量分 84
柚子味儿的西瓜
这个作者很懒,什么都没留下…
展开
-
一篇解决Java内存模型
简述 Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。 定义模型的目标 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。 这里说的变量包括实例字段、静态字段和构成数组对象的元素,不包括局部变量与方法参数,因为后者是线程私有的,不会共享,也就不存在竞争的问题。 主内存与工作内存原创 2021-01-07 15:38:37 · 116 阅读 · 0 评论 -
String源码的自我解读
1. Stirng的修饰符和实现类 public final class String implements java.io.Serializable, Comparable<String>, CharSequence { final修饰符 String不能被继承 成员方法都默认是final修饰的方法 类一旦创建就无法改变,对String对象的任何操作,不会影响到原对象 Serializable ,Comparable, CharSequence接口 2. String类的成原创 2021-01-05 12:07:05 · 271 阅读 · 2 评论 -
一篇解决Volatile关键字
一、基本概念 先补充一下概念:Java 内存模型中的可见性、原子性和有序性。 可见性: 可见性是一种复杂的属性,因为可见性中的错误总是会违背我们的直觉。 通常,我们无法确保执行读操作的线程能适时地看到其他线程写入的值,有时甚至是根本不可能的事情。为了确保多个线程之间对内存写入操作的可见性,必须使用同步机制。 可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的。 也就是一个线程修改的结果。另一个线程马上就能看到。 比如:用volatile修饰的变量,就会具有可见性。 volat原创 2021-01-07 15:16:30 · 192 阅读 · 0 评论