上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 168 下一页
摘要: public class ThreadLocal1 { //当创建了一个 ThreadLocal 的实例后,它的散列值就已经确定了, //threadLocal实例的hashCode是通过nextHashCode()方法实现的,该方法实际上总是用一个AtomicInteger(初始值为0)加上0x61c88647来实现的。 //0x61c88647这个数是有特殊意义的,它... 阅读全文
posted @ 2019-05-23 18:12 无天666 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 在上面的实现中,当线程消亡之后,线程中 cacheMap 也会被回收,它当中存放的副本变量(value)也会被全部回收,并且 cacheMap 是线程私有的,不会出现多个线程同时访问一个 cacheMap 的情况。在 Java 中,ThreadLocal 类的实现就是采用的这种思想,注意只是思想,实 阅读全文
posted @ 2019-05-23 17:15 无天666 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 1.类似于map,这个map存放的地方在线程里面,多个线程调用同一个threadLocal存储在不同的线程里面。2.不是线程安全的。代码用=写的都是强引用,弱引用是虚拟机控制的,public class ThreadLocalTrxt { static ThreadLocal<Object> x1 阅读全文
posted @ 2019-05-23 14:32 无天666 阅读(234) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机内存区域总结:Java虚拟机相当于一个抽象的计算机操作系统, 其管理的内从区域大体上可以分为栈和堆,就像c或c++中对内存的分类一样, 但这样的分类对于Java虚拟机来说太过粗浅, 实际上Java虚拟机管理的内存区域分为程序计数器、虚拟机栈、本地方法栈、堆和方法区, 根据各区域是属于线 阅读全文
posted @ 2019-05-13 22:15 无天666 阅读(249) 评论(0) 推荐(0) 编辑
摘要: package ssss; public class dwd { public static void main(String[] args) { // 看二进制表示,最高位是1就是负数,值0就是正数。 System.out.println(" 负数左移 "); int i = -6; // 负数左 阅读全文
posted @ 2019-05-11 15:05 无天666 阅读(397) 评论(0) 推荐(0) 编辑
摘要: public class WeakReference extends Reference { public WeakReference(T referent) { super(referent); } public WeakReference(T referent, ReferenceQueue q) { super(r... 阅读全文
posted @ 2019-05-09 22:59 无天666 阅读(698) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-05-09 18:00 无天666 阅读(183) 评论(0) 推荐(0) 编辑
摘要: public class ddd { public static void main(String[] args) { ServiceLoader1 sl = ServiceLoader1.load(Hello.class);//传进去了Hello.class和线程上下文类加载器。 for(Hello h : sl) {//调用sl的ite... 阅读全文
posted @ 2019-05-09 16:56 无天666 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2019-05-08 13:21 无天666 阅读(184) 评论(0) 推荐(0) 编辑
摘要: volatile利用的是Lock指令。 Lock指令锁总线,以后的CPU锁缓存。 缓存失效利用嗅探技术。 Lock有内存屏障作用。 内存屏障有3个作用: 阅读全文
posted @ 2019-05-08 13:13 无天666 阅读(186) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 168 下一页