刚开始学习C#的时候,就听说CLR对于String类有一种特别的内存管理机制:有时候,明明声明了两个String类的对象,但是他们偏偏却指向同一个实例。如下:String
s1 = "Hello";String s2 = "Hello"; //s2和s1的...
分类:
其他好文 时间:
2014-05-24 04:16:56
阅读次数:
184
转载了两篇文章:第一篇:本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java
Virtual Machine,Java虚拟机)上,...
分类:
编程语言 时间:
2014-05-23 10:11:27
阅读次数:
400
栈是系统为一个程序所分配的一块固定的区域,函数的局部变量都存在这堆允许程序在运行时动态地申请某个大小的内存空间。使用malloc等内存分配函数获取内存即是从堆中分配内存,而在一个函数体中例如定义一个数组之类的操作是从栈中分配内存所能申请的大小区别:栈:只要栈的剩余空间大于所申请空间,系统将为程序提供...
分类:
其他好文 时间:
2014-05-20 09:23:16
阅读次数:
246
Java内存分配:1. 寄存器:我们在程序中无法控制 2.
栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中 3. 堆:存放用new产生的数据 4.
静态域:存放在对象中用static定义的静态成员 5. 常量池:存放常量 6. 非RAM存储:硬盘等永久存储空间 -----...
分类:
其他好文 时间:
2014-05-19 23:44:20
阅读次数:
446
多线程的概念 进程 ·正在运行中的程序被成为进程,负责程序运行的内存分配
·没一个进程都有自己独立的虚拟内存空间 线程 ·线程是进程中一个独立的执行路径也称之为控制单元 ·一个进程至少包含一条线程,主线程
·可以将耗时的执行路径如网络请求放在其他线程中执行 创建线程的目的就是为了开启一...
分类:
移动开发 时间:
2014-05-19 16:55:33
阅读次数:
326
当程序启动手机越多的模块,那耗电就越快当你的程序运行时只占用CPU的时候,这时候耗电量是最少的。当然这时候如果cpu的运行速度很慢那是最好的。。程序耗电量控制首要从下面3个方面抓起:1.频繁的I/O操作(启动本地外部存储模块和网络通信模块)2.同时开过多的线程运行(cpu模块)。3.频繁的内存分配以...
分类:
移动开发 时间:
2014-05-19 15:44:00
阅读次数:
287
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java
Virtual Machine,Java虚拟机)上,可以把JVM理解成Jav...
分类:
编程语言 时间:
2014-05-18 20:31:20
阅读次数:
530
原文链接:http://blog.jobbole.com/37273/在Java中,它的内存管理包括两方面:内存分配(创建Java对象的时候)和内存回收,这两方面工作都是由JVM自动完成的,降低了Java程序员的学习难度,避免了像C/C++直接操作内存的危险。但是,也正因为内存管理完全由JVM负责,...
分类:
编程语言 时间:
2014-05-18 19:02:14
阅读次数:
439
什么是堆,什么是栈,什么是数据段,什么是代码段...这些都是历史遗留问题,如今编程真的没有必要在意这些了!不要被/proc/xx/{maps,smaps}里面的内容所迷惑和萦绕,自己管理好自己的内存分配就好,如果程序不是自己写的,那么就找写它的人。本文将从一个链接动态库的可执行文件如何载入进程地址空间开始,谈一下我对进程地址空间布局的看法。我没有采用精确的方式描述ELF或PE文件如何载入的,而仅仅...
分类:
其他好文 时间:
2014-05-18 18:23:26
阅读次数:
378
//使用动态分配内存时,要包含头文件
//malloc的参数为要分配的内存的字节数
//其返回所分配内存的第一个字节的地址
//返回类型是void*,但实际中常常转换为具体类型便于使用
//如果因某种原因而不能分配将返回NULL指针,所以使用时应验证是否分配成功
int *pNumber1=(int *)malloc(100*sizeof(int));
//callo...
分类:
其他好文 时间:
2014-05-15 23:21:54
阅读次数:
338