java
narutocxp
这个作者很懒,什么都没留下…
展开
-
Integer a=1,b=1,c=128,d=128 问a==b,c==d结果分别是什么?
1. ==和equals的区别==表示内存地址是否相等。equals表示两个对象的内容是否相等。2. Integer a=1,b=1,c=128,d=128底层实现整型值赋给一个Integer对象,出现了自动包装的效果,自动将调用Integer.valueOf方法public static Integer valueOf(int i) { assert IntegerCac...原创 2019-08-15 11:18:27 · 2018 阅读 · 1 评论 -
线程安全问题和解决方案
什么是线程安全当多个线程对同一个资源进行访问的时候,可能出现非原子性操作,造成数据出现意想不到的结果。多线程抢夺资源案例代码package com.shopping.thread;import java.util.concurrent.CountDownLatch;public class ShareData { private int count; public voi...原创 2019-08-15 17:48:13 · 154 阅读 · 0 评论 -
dubbo源码双重检查锁原理分析
dubbo源码中多处用到双重检查锁,比如ExtensionLoader#getExtensionClasses以上源码中,cachedClasses为多个线程共享资源。比如多个线程调用getExtensionClasses()方法的时候,假设X,Y线程都判断第558行classes==null,都进入了559行。接着X线程抢先拿到锁,从cachedClasses获取值,发现为空,为其赋值,...原创 2019-08-28 13:58:58 · 329 阅读 · 0 评论