
Java SE
文章平均质量分 74
飞翔的卡其啦
这个作者很懒,什么都没留下…
展开
-
双重检查锁定与延迟初始化
在java程序中,有时候可能需要推迟一些高开销的对象初始化操作,并且只有在使用这些对象时才进行初始化。此时程序员可能会采用延迟初始化。但要正确实现线程安全的延迟初始化需要一些技巧,否则很容易出现问题。比如,下面是非线程安全的延迟初始化对象的示例代码:public class UnsafeLazyInitialization {private static Instance instance转载 2014-01-02 11:04:06 · 649 阅读 · 0 评论 -
volatile在java server模式和client模式下的不同(主内存和工作内存)
因为要做一个java多线程的培训,而自己对多线程的理解也是一知半解。尤其困惑的地方是对volatile关键字的理解。好了,现在步入正题。volalte的关键字是在多线程共享数据时,共享数据不会备份到各线程的工作内存中,而是直接从主内存中获取最新值,即是线程可见性。以下是对volatile关键字的测试代码public class VolatileTest { public原创 2013-12-26 18:17:00 · 1376 阅读 · 1 评论 -
如何Debug jdk源码,查看局部变量
学习java最好的办法就是看jdk源代码,面对浩瀚的jdk(光源码就有40M多,比一个大型网站的源码都多)从何入手呢,要是能单步调试跟进到jdk源码里并且能查看其中的局部变量最好了。可惜的是sun提供的jdk并不能查看运行中的局部变量,需要重新编译一下rt.jar。废话少说,下面是编译jdk的具体步骤:1.把C:\java\jdk1.6.0\src.zip解压到C:\java\转载 2014-01-17 14:01:06 · 1437 阅读 · 0 评论