随笔分类 -  Java

摘要:volatile被视作是轻量级的sychronized。与sychronied关键字比较,volatile只能保证共享变量数据的可见性,即,当一个变量被多个线程共享,可修改时,一个线程的修改结果会立刻对其他线程可见。 volatile是如何做到可见性的? 首先,要明白为什么会有可见性问题。 CPU负 阅读全文
posted @ 2019-01-06 16:15 无名码者 阅读(282) 评论(0) 推荐(0)
摘要:作者:RednaxelaFX链接:http://www.zhihu.com/question/41922036/answer/93079526来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对HotSpot VM的实现,它里面的GC其实准确分类只有两大种: Part 阅读全文
posted @ 2018-05-09 18:04 无名码者 阅读(13403) 评论(0) 推荐(2)
摘要:通常我们会有这样的需求,即停止一个线程。在java的api中有stop、suspend等方法可以达到目的,但由于这些方法在使用上存在不安全性,会带来不好的副作用,不建议被使用。具体原因可以参考Why is Thread.stop deprecated。 在本文中,将讨论中断在java中的使用。 中断 阅读全文
posted @ 2017-10-07 17:13 无名码者 阅读(54163) 评论(9) 推荐(17)
摘要:java.util.concurrency中的CountDownLatch,主要用于等待一个或多个其他线程完成任务。CountDownLatch在初始化时,会被赋一个整数,每次执行countDown()方法,该整数都会减一,直至到0,这一过程不可逆转。其await()方法会在该整数不为0时当前线程阻 阅读全文
posted @ 2016-11-19 14:24 无名码者 阅读(251) 评论(0) 推荐(0)
摘要:网上有位大大对这个主题讲解的比较透彻,我在下面粘贴: 看下面一段代码 1 Number num = new Integer(1); 2 ArrayList<Number> list = new ArrayList<Integer>(); //type mismatch 3 4 List<? exte 阅读全文
posted @ 2016-07-17 13:16 无名码者 阅读(413) 评论(0) 推荐(0)
摘要:子类覆盖父类方法所必须满足的条件 阅读全文
posted @ 2015-12-06 23:24 无名码者 阅读(1921) 评论(0) 推荐(0)
摘要:作为上一篇使用for循环演示的跳转,这一篇将使用while。相比较来说,while比for循环更简单。代码如下: 运行结果为: 阅读全文
posted @ 2015-11-07 19:39 无名码者 阅读(302) 评论(0) 推荐(0)
摘要:java 中跳转语句使用break、continue和标签,各自或组合完成相应的功能。 今天做题时遇到关于标签命名规范,顺便将跳转语句语法都看了一遍,很有收获。 在《Java编程思想》一书中,作者详细阐述,现将案例代码写在下面: 运行结果见下图: 自认为比较重要的一点是,break中断for循环,而 阅读全文
posted @ 2015-11-07 18:59 无名码者 阅读(4571) 评论(0) 推荐(0)
摘要:在解决一道面试题目时遇到问题。 题目答案是输出0。 查阅相关资料时,才知道i=i++这一步,真实执行情况是temp = i;i=i+1;i=temp; 未验证真是如此,我将代码改为如下: 输出结果依旧是0,这符合预期。即:temp=i;i=i+1;j=temp; 而不仅仅是像有些C/C++那样只执行 阅读全文
posted @ 2015-11-06 20:58 无名码者 阅读(253) 评论(0) 推荐(0)