随笔分类 - JAVA
摘要:在对线程池的介绍中,提到了一个非常特殊的等待队列SynchronousQueue。SynchronousQueue的容量为0,任何一个对SynchronousQueue的写需要等待一个对SynchronousQueue的读,反之亦然。因此,SynchronousQueue与其说是一个队列,不如说是一个数据交换通道。那SynchronousQueue的其妙功能是如何实现的呢?
阅读全文
摘要:除了提供基本数据类型外,JDK还为我们准备了数组等复合结构。当前可用的原子数组有:AtomicIntegerArray、AtomicLongArray和AtomicReferenceArray,分别表示整数数组、long型数组和普通的对象数组。
阅读全文
摘要:很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书,其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。
阅读全文
摘要:AtomicStampedReference正是这么做的。它内部不仅维护了对象值,还维护了一个时间戳(我这里把它称为时间戳,实际上它可以使任何一个整数,它使用整数来表示状态值)。
阅读全文
摘要:只用一张图,了解Java高并发程序设计的所有技术点
阅读全文
摘要:Java中的指针有你看不到的一面。
阅读全文
摘要:在Java程序中,多线程几乎已经无处不在。与单线程相比,多线程程序的设计和实现略微困难,但通过多线程,我们却可以获得多核CPU带来的性能飞跃,从这个角度说,多线程是一种值得尝试的技术。那么如何写出高效的多线程程序呢?
阅读全文
摘要:实战java虚拟机,入门最佳好书,就这一天。
阅读全文
摘要:Java虚拟机有3种执行方式,分别是解释执行、混合模式和编译执行,哪种模式会最快呢?
阅读全文
摘要:默认情况下,System.gc()会显式直接触发Full GC,同时对老年代和新生代进行回收。而一般情况下我们认为,垃圾回收应该是自动进行的,无需手工触发。如果过于频繁地触发垃圾回收对系统性能是没有好处的。
阅读全文
摘要:新生代GC的主要工作是回收eden区和survivor区。一旦eden区被占满,新生代GC就会启动。新生代GC收集前后的堆数据如图5.6所示,其中E表示eden区,S表示survivor区,O表示老年代。
阅读全文
摘要:目前的Java虚拟机支持Client和Server两种运行模式。使用参数-client可以指定使用Client模式,使用参数-server可以指定使用Server模式。默认情况下,虚拟机会根据当前计算机系统环境自动选择运行模式。
阅读全文
摘要:在Java程序的运行过程中,如果堆空间不足,则有可能抛出内存溢出错误(Out Of Memory),简称为OOM。
阅读全文
摘要:JVM学起来太不容易了,好好规划下,如何更好的学习JVM。
阅读全文
摘要:因为WeakHashMap不是线程安全的,如果在多线程里乱用,数据就有可能被破坏,破坏的结果就是可能成环。导致一个死循环。
因此,这个问题的推断结论就是因为WeakHashMap被不正确的同步使用,导致死循环 卡死整个系统
阅读全文
摘要:在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,所以也使Java很多程序员不再关心内存分配,导致很多程序低效,耗内存。因此就有了Java程序员到最后应该去了解JVM,才能写出更高效,充分利用有限的内存的程序。
阅读全文
摘要:【深入JVM内核—原理、诊断与优化】的讲师“葛一鸣”,人称“一哥”,毕业于浙江工业大学,计算机软件与理论专业硕士,是国家认证系统分析师,OCP。2012年出版过《Java程序性能优化》,荣获51CTO读书频道“最受读者喜爱的原创IT技术图书奖”!!
阅读全文
摘要:BigInteger是什么?BigInteger如何使用?BigInteger在java8中有什么改进?
阅读全文
摘要:Java NIO提供了一套网络api,可以用来处理连接数很多的情况。他的基本思想就是用一个线程来处理多个channel。
阅读全文

浙公网安备 33010602011771号