JVM
文章平均质量分 57
superCleanCoder
希望写的代码和生活一样都能简单但不简陋
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈volatile
而volatile则会保证变量只要修改就会马上同步到主内存中,并且线程读取变量时也是会先从主内存中刷新变量值,以此来保证了变量的可见性。这得从虚拟机的内存模型说起,这里直接引用《深入理解java虚拟机》书中原话:JAVA内存模型规定了所有的变量都存储在主内存中,每条线程还有自己的工作内存,线程的工作内存保存了被该线程使用的变量的主内存副本,线程对变量的所有操作(读取、赋值)都必须在工作内存中进行,而不是直接读写主内存中的数据。上面这个例子执行后,如果是原子性的,那么count的值应该是50000。原创 2024-11-30 21:29:54 · 755 阅读 · 0 评论 -
JVM之Synthetic
这里编译器在内部类生成了一个TestInnerClass的引用对象this$0,因为是编译器自动合成的,所以标记了ACC_SYNTHETIC。所以这也就解释了为什么内部类创建需要外部类对象创建了,如果外部类对象还没有生成,怎么传给内部类的构造方法呢?而下面是内部类的构造方法,可以看到它传入了外部类的实例对象,之后把它赋值给this$0。aload_0默认是实例方法第一个参数是this,即内部类自己的引用。而我们内部类能调用外部类的方法,也正是通过外部类的实例对象调用的。原创 2024-11-28 20:37:23 · 615 阅读 · 0 评论
分享