将两个char类型链接。 char d[20]="GoldenGlobal"; char *s="View"; strcat(d,s); 结果放在d中 printf("%s",d); 输出 d 为 GoldenGlobalView (中间无空格) d和s所指内存区域不可以重叠且d必须有足够的空间来容 ...
分类:
其他好文 时间:
2016-07-05 15:29:45
阅读次数:
128
1. page cache linux操作系统默认情况下写都是有写缓存的,可以使用direct IO方式绕过操作系统的写缓存。当你写一串数据时,系统会开辟一块内存区域缓存这些数据,这块区域就是我们常说的page cache(操作系统的页缓存)。查看系统内存常用的命令有:vmstat、free、top ...
分类:
系统相关 时间:
2016-07-02 10:33:39
阅读次数:
408
2.1 运行时数据区域 Java虚拟机在执行Java程序的过程中把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。如下图所示: 2.1.1 程序计数器 程序计数器是一块较小的内 ...
分类:
编程语言 时间:
2016-07-01 21:26:56
阅读次数:
290
Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途、创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随线程的开始和结束而创建和销毁。 Java虚拟机所管理的内存将会包括以下几个运行时数据区域: 1 程序 ...
分类:
编程语言 时间:
2016-06-30 19:47:23
阅读次数:
135
1.java的内存区域
线程共享
(1)堆:是java虚拟机所管理的内存中最大一块,用于存放对象实例,所有对象实例和数组都在堆上分配
基于垃圾收集器分为新生代和老年代,并可以进一步划分为Eden,survivor,默认比例为8:1 Eden、From survivor、To survivor三个部分
依据是否开启线程私有的分配缓冲区(TLAB)
也存在OutOfMemoryError异常...
分类:
编程语言 时间:
2016-06-30 12:54:34
阅读次数:
206
本文参考自《深入理解Java虚拟机》一书。主要总结一下java虚拟机内存的各个区域,以及这些区域的作用、服务对象以及其中可能产生的问题。
1. 运行时数据区域
java虚拟机在执行java程序的过程中会把它说管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。具体如下图所示:...
分类:
编程语言 时间:
2016-06-30 08:43:01
阅读次数:
174
伪共享 false sharing,顾名思义,“伪共享”就是“其实不是共享”。那什么是“共享”?多CPU同时访问同一块内存区域就是“共享”,就会产生冲突,需要控制协议来协调访问。会引起“共享”的最小内存区域大小就是一个cache line。因此,当两个以上CPU都要访问同一个cache line大小... ...
分类:
编程语言 时间:
2016-06-28 20:23:51
阅读次数:
267
1.什么是共享内存在前面讲虚拟内存机制时,有讲到Linux的内存映射机制:初始化虚拟内存区域时,会把虚拟内存和磁盘文件对象对应起来。由于内存映射机制,一个磁盘文件对象可被多个进程共享访问,也可被多个进程私有访问。当共享访问时,一个进程的对该对象的修改会显示到其他进程。当私有访问时,修改时会产生保护故 ...
分类:
系统相关 时间:
2016-06-27 10:26:35
阅读次数:
333
本文内容来源于《深入理解Java虚拟机》一书,非常推荐大家去看一下这本书。本系列其他文章:【深入理解Java虚拟机】Java内存区域模型、对象创建过程、常见OOM【深入理解Java虚拟机】垃圾回收机制1、类加载机制概述虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。在java中,类型的加载、连...
分类:
编程语言 时间:
2016-06-27 09:09:57
阅读次数:
368
本文内容来源于《深入理解Java虚拟机》一书,非常推荐大家去看一下这本书。本系列其他文章:【深入理解Java虚拟机】Java内存区域模型、对象创建过程、常见OOM1、垃圾回收要解决的问题垃圾收集(Garbage Collection,GC),要设计一个GC,需要考虑解决下面三件事情:(1)哪些内存需要回收?(2)什么时候回收?(3)如何回收?哪些内存需要回收?根据《Java内存区域模型、对象创建过...
分类:
编程语言 时间:
2016-06-24 10:55:31
阅读次数:
282