解释1、栈是编译期间就分配好的内存空间,因此你的代码中必须就栈的大小有明确的定义;堆是程序运行期间动态分配的内存空间,你可以根据程序的运行情况确定要分配的堆内存的大小解释2、存放在栈中时要管存储顺序,保持着先进后出的原则,他是一片连续的内存域,有系统自动分配和维护。而堆是无序的,他是一片不连续的内存...
Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。我不会详细...
分类:
其他好文 时间:
2014-12-31 20:07:29
阅读次数:
255
程序运行时,我们定义的局部变量一般都存放于栈内存中,这些局部变量既可以是基本数据类型的变量(基本数据类型的变量在栈中直接保存它的值),也可以是引用类型的变量(引用类型的变量在栈中保存的是它所指向的堆内存中对象的地址)。
堆内存中存放的就是引用类型变量的地址所指向的对象。...
分类:
编程语言 时间:
2014-12-31 01:04:57
阅读次数:
241
一、概述
Block是C级别的语法和运行时特性。Block比较类似C函数,但是Block比之C函数,其灵活性体现在栈内存、堆内存的引用,我们甚至可以将一个Block作为参数传给其他的函数或者Block。
二、热身
先看一个比较简单的Block例子:
int multiplier = 7;
int (^myBlock)(int) = ^(int num) {
retu...
分类:
其他好文 时间:
2014-12-30 20:47:31
阅读次数:
306
透视Java垃圾回收 1、命令行参数透视垃圾收集器的运行 2、使用System.gc()可以不管JVM使用的是哪一种垃圾回收的算法,都可以请求Java的垃圾回收。在命令行中有一个参数-verbosegc可以查看Java使用的堆内存的情况,它的格式如下: java -verbosegc clas...
分类:
编程语言 时间:
2014-12-23 15:24:29
阅读次数:
170
为什么我们常说基本类型传递的是具体的值,而对象传递的是对象的内存地址呢。要搞清楚这个问题就要搞清楚栈内存与堆内存。java的内存分为栈内存和堆内存,两者的作用是不同的,我们可以简单的理解如下:当我们创建一个java基本类型的变量时,只会用到栈内存而不会用到堆内存,栈内存中所存储的内容就是基本类型的值...
分类:
编程语言 时间:
2014-12-19 21:52:51
阅读次数:
175
android培训------我的java笔记,期待与您交流!1.数组内存----栈 堆栈内存:数据使用完毕,会自动释放堆内存:放的都是 new 出来的实体(对象或数组),有内存地址值,且数组都有默认值,例如:0,false,0.0,当堆内存中实体无引用后,一段时间内会被JVM的垃圾回收机制回收,释...
分类:
编程语言 时间:
2014-12-18 20:26:25
阅读次数:
235
Java中创建一个字符串的方式有很多种,常见如:String s = new String("riqi");String s = "riqi";但两者有什么区别呢?要知道,Java中new一个对象实际上是在栈内存中创建一个引用类型指向到堆内存中的对象,而字符串对象一旦创建就不能变更。Java为Str...
分类:
其他好文 时间:
2014-12-18 01:29:12
阅读次数:
155
一般我们在遇到内存问题时,解决方案大体有如下几种:
1.在内存引用上做些处理,常用的有软引用、强化引用、弱引用;
2.在内存中加载图片时直接在内存中做处理,如:边界压缩;
3.动态回收内存;
4.优化Dalvik虚拟机的堆内存分配;
5.自定义堆内存大小;
6.尽量不要使用setImageBitmap、setImageResource或BitmapFactory.decodeResou...
分类:
移动开发 时间:
2014-12-17 12:57:52
阅读次数:
160
要了解Java垃圾收集机制,先理解JVM内存模式是非常重要的。今天我们将会了解JVM内存的各个部分、如何监控以及垃圾收集调优。Java(JVM)内存模型正如你从上面的图片看到的,JVM内存被分成多个独立的部分。广泛地说,JVM堆内存被分为两部分——年轻代(YoungGeneration)和老年代(O...
分类:
编程语言 时间:
2014-12-16 11:18:34
阅读次数:
308