我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存,用户缓冲用户IO等待导致CPU的等待成本,但是随着CPU的发展,内存的读写速度也远远跟不上CPU的读写速度,因此,为了解决这一纠纷,C...
分类:
其他好文 时间:
2015-11-09 22:16:56
阅读次数:
187
用字符数组和字符串指针都可实现字符串的存储和运算,但是两者是有区别的。1) 字符数组是一个数组,每个元素的值都可以改变。而字符串指针指向的是一个常量字符串,它被存放在程序的静态数据区,一旦定义就不能改变。这是最重要的区别。关于静态存储区的概念请查看:C语言内存模型(内存组织方式)下面的代码在运行期间...
分类:
编程语言 时间:
2015-11-09 20:54:13
阅读次数:
204
一、JVM内存模型及垃圾收集算法 ?1.根据Java虚拟机规范,JVM将内存划分为: New(年轻代) Tenured(年老代) 永久代(Perm) ? 其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:3G)指定的内存中分配...
分类:
其他好文 时间:
2015-11-06 11:25:54
阅读次数:
249
http://www.infoq.com/cn/articles/java-memory-model-5 深入理解Java内存模型(五)——锁http://www.ibm.com/developerworks/cn/java/j-jtp10264/ Java 理论与实践: JDK 5.0 中更灵活、...
分类:
编程语言 时间:
2015-11-05 20:41:14
阅读次数:
242
对于 final 域,编译器和处理器要遵守两个重排序规则:在构造函数内对一个 final 域的写,与随后把这个构造对象的引用赋值给一个变量,这两个操作之间不能重排序初次读一个包含 final 域的对象的引用,与随后初次读这个 final 域,这两个操作之间不能重排序举个例子:123456789101...
分类:
编程语言 时间:
2015-11-02 15:23:25
阅读次数:
216
在Java内存模型中,有main memory,每个线程也有自己的memory (例如寄存器)。为了性能,一个线程会在自己的memory中保持要访问的变量的副本。这样就会出现同一个变量在某个瞬间,在一个线程的memory中的值可能与另外一个线程memory中的值,或者main memory中的值不一...
分类:
其他好文 时间:
2015-10-29 19:47:19
阅读次数:
146
Ring buffer算法优点:高内存使用率,在缓冲buffer内存模型中,不太容易发生内存越界、悬空指针等 bug ,出了问题也容易在内存级别分析调试。做出来的系统容易保持健壮。 package?main
import?(
"bytes"
"fm...
分类:
其他好文 时间:
2015-10-20 22:54:32
阅读次数:
520
最近在读java并发编程相关的书籍,蚂蚁金服团队的杰作,可以好好把java并发相关的内容好好研究一下 要理解volatile和synchronized的区别,首先还是需要来理解下java的内存模型 java内存模型 java中,线程之间的通...
分类:
编程语言 时间:
2015-10-09 12:28:32
阅读次数:
277