问:运行Test 函数会有什么样的结果? 由于数组p是栈上数据,返回数组名就是返回栈内存即动态数据区的地址,函数结束会被释放,所以返回的地址也就指向了不确定的位置了,str就成了乱码! 如果改成: 就可以正确的输出了,原因是返回字符串常量的指针,返回的就是静态数据区(常量区)的地址,可以正确打印! ...
分类:
编程语言 时间:
2016-06-28 12:23:23
阅读次数:
168
1)Object类中的''==''和''equals'' Object类中的equals方法和''==''是一样的,比较的都是【栈内存中存放的对对象堆内存地址的引用】,也就是说这两个变量如果引用的是同一个堆内存对象的话,那么他们是''==''的和''equals''的。 2)String类、Inte ...
分类:
其他好文 时间:
2016-06-27 23:15:29
阅读次数:
496
1、JS中的内存空间分为两种:栈内存、堆内存 栈内存:提供JS代码执行的环境;存储基本数据类型的值; ->全局作用域或者私有的作用域其实都是栈内存 堆内存:存储引用数据类型的值(对象是把属性名和属性值存储进去,函数是把函数体中的代码当做字符串存储进去) 2、当浏览器加载我们HTML页面的时候,首先会 ...
分类:
Web程序 时间:
2016-06-27 19:59:58
阅读次数:
151
一、Block的类型
根据Block在内存中的位置分为三种类型NSGlobalBlock,NSStackBlock,
NSMallocBlock。
NSGlobalBlock:类似函数,位于text段;NSStackBlock:位于栈内存,函数返回后Block将无效;NSMallocBlock:位于堆内存。
二、Block的copy、retain、release操作...
分类:
移动开发 时间:
2016-06-24 15:15:57
阅读次数:
307
1:成员变量定义在类中,整个类中都可以访问.2:局部变量定义在函数,语句,局部代码块中,只在所属的区域有效.3:成员变量存在于堆内存的对象中.4:局部变量存在于栈内存的方法中.5:成员变量随着对象的创建而存在,随着对象的小事而消失.6:局部变量随着所属区域的执行而存在,随着所属区域的结束而释放.7: ...
分类:
编程语言 时间:
2016-06-20 21:55:54
阅读次数:
142
int 是基本类型,直接存数值 Integer是类,产生对象时用一个引用指向这个对象 Java把内存划分成两种:一种是栈内存,另一种是堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配 而实际的对象是在存储堆内存中 即 int i = 5;//直接在栈中分配空间 Int ...
分类:
编程语言 时间:
2016-06-18 17:03:02
阅读次数:
120
1 使用了未实例化的对象会出现java.lang.NullPointException 2 一个栈内存空间只能指向一个堆内存空间,如要指向其他堆内存空间,需先断开当前指向 3 只要是被封装的属性就必须通过gette/setter方法设置和取得 4 匿名对象就是没有明确给出名字的对象。一般匿名对象只使 ...
分类:
其他好文 时间:
2016-06-16 23:14:10
阅读次数:
255
1.原理 1.1block类型 a.全局bock块 贯彻整个程序 b.栈块 存在于栈内存中,作用域中使用 c.堆块 自行管理其内存 1.2定义 类函数,闭包 注*:1.block捕获块中出现的外部变量 2.栈块copy之后会形成堆块 3.__weak(ARC)或__block(MRC)来避免循环引用 ...
分类:
其他好文 时间:
2016-06-15 16:02:28
阅读次数:
188
传统的socket IO中,需要为每个连接创建一个线程,当并发的连接数量非常巨大时,线程所占用的栈内存和CPU线程切换的开销将非常巨大。使用NIO,不再需要为每个线程创建单独的线程,可以用一个含有限数量线程的线程池,甚至一个线程来为任意数量的连接服务。由于线程数量小于连接数量,所以每个线程进行IO操 ...
分类:
其他好文 时间:
2016-06-14 01:03:17
阅读次数:
148
Java的垃圾回收机制是通过GC线程执行的,它是java虚拟机自己使用的守护线程。 Java把内存分成两种,一种叫做栈内存,一种叫做堆内存,有着不同的作用。栈内存用来存储局部变量和方法调用。栈内存归属于单个线程,每个线程都会有一个栈内存,其存储的变量只能在其所属线程中可见,即栈内存可以理解成线程的私 ...
分类:
编程语言 时间:
2016-06-13 15:35:05
阅读次数:
234