java虚拟机的自动化内存可以归结为自动化解决了两个问题,一个是内存分配,一个是内存回收。了解虚拟机的分配与回收机制,能让我们对项目的把控更加有力,尤其是对性能调优时,各个参数的设置可能会有意想不到的效果。本文结合事例分析各种场景的回收。 堆内存区域(不包括永久代)种类:1,eden spac...
分类:
其他好文 时间:
2015-09-15 18:19:26
阅读次数:
158
一,分配对象。 分配是一个样的对象诞生的过程。最美好的时刻,是从操作系统获得一块内存并将其指定为存放对象的实例变量的位置。向某个类发送alloc消息的结果,就是为该类分配一块足够大的内存,以存放该内的全部实例变量。同时,alloc方法还顺便将这块内存区域全部初始化为0.由于未初始化内存而引起的各种....
分类:
移动开发 时间:
2015-09-15 08:10:57
阅读次数:
213
java虚拟机在执行java程序的过程中会把它所管理的内存划分为若干个区域,包含方法区域,堆,虚拟机栈,本地方法栈,程序计数器,其中方法区域和堆是所有线程共享的数据区。结构如图: 程序计数器: 占的空间较小...
分类:
编程语言 时间:
2015-09-14 00:47:41
阅读次数:
256
左值和右值得问题,初步理解就是: int i = 5; 左值是一个变量(内存区域)的引用,是可变的,i是左值;右值是不变的,5是右值; 注意: ++i是左值,i++是右值。 因为++i 返回 i 本身,而 i++ 返回 i 的值。a++ 即是...
分类:
其他好文 时间:
2015-09-12 10:50:54
阅读次数:
215
有人说栈区存放引用,这种说法并不准确。public void Method1(){ int i = 4; int y = 2; class1 cls1 = new class1();} java虚拟机栈是线程私有,他的生命周期与线程相同,每个方法在执行的同时都会创建一个栈帧(St...
分类:
编程语言 时间:
2015-09-11 18:54:24
阅读次数:
149
操作系统iOS中应用程序使用的计算机内存不是统一分配空间,运行代码使用的空间在三个不同的内存区域,分成三个段:“text segment“,“stack segment”,“heap segment”。段“text segment”是应用程序运行时应用程序代码存在的内存段。每一个指令,每一个单个函数...
分类:
移动开发 时间:
2015-09-11 09:11:39
阅读次数:
185
jvm内存区域程序计数器一块很小的内存空间,作用是当前线程所执行的字节码的行号指示器。java栈与程序计数器一样,java栈(虚拟机栈)也是线程私有的,其生命周期与线程相同。通常存放基本数据类型,对象引用(一个指向对象起始地址的引用指针或一个代表对象的句柄),reeturnAddress类型(指向一...
分类:
编程语言 时间:
2015-09-09 12:48:02
阅读次数:
210
Static:定义类的时候一般不用static来修饰,在一定意义上,用static修饰的字段可以作为全局变量,static修饰的字段和方法存储在类的内存区域,所有实例共享。static字段和方法都是属于类的,static方法只能处理类的静态成员,不能处理非静态的成员。,静态方法中不能访问实例变量,不...
分类:
编程语言 时间:
2015-09-07 10:49:16
阅读次数:
159
原型声明:extern char *strcpy(char *dest,const char *src);头文件:string.h功能:把从src地址开始且含有‘\0’结束符的字符串赋值到以dest开始的地址空间说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符...
分类:
其他好文 时间:
2015-09-05 20:51:01
阅读次数:
195
原型 extern char *strcat(char *dest,char *src);用法 #include 功能 把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。返回指向dest的指针。说明 src和dest所指内存区域不可以重叠且...
分类:
其他好文 时间:
2015-09-05 20:49:48
阅读次数:
125