指针int ival=1024,ival2=2048;int *pi=&ival,*pi2=&ival2;pi=pi2;//pi now points to ival2赋值结束后,pi所指向的对象ival不变,赋值操作修改了pi的值,使其指向另一个对象,引用int &ri=ival,&ri2=iva...
分类:
其他好文 时间:
2015-07-01 08:35:46
阅读次数:
112
值类型:直接存放于栈中,取的时候是直接取得值。值类型继承自System.ValueType。(自定义对象)引用类型:存在于托管堆中,取的时候是从栈取该对象的地址,然后用这个地址去托管堆中取值。引用类型继承自System.Object。(int,bool,struct)
分类:
其他好文 时间:
2015-06-29 20:03:11
阅读次数:
104
内存管理内存管理的核心思想:谁分配 谁释放分配在栈里的数据 不用程序员管理 系统管理分配在堆里面的数据 需要程序员管理特殊的 NSString 也不用管理通过引用计数来判断是否需要销毁这个对象,为零时销毁这个对象。引用计数加+1(alloc new copy retain)———引用计数减-1(re...
分类:
其他好文 时间:
2015-06-28 17:03:49
阅读次数:
90
Java中对象、对象引用、堆、栈、值传递以及引用传递的详细解释
1.对象和对象引用的区别:
(1).对象:
万物皆对象。对象是类的实例。在Java中new是用来在堆上创建对象用的。一个对象可以被多个引用所指向。
(2).对象引用:
类似于C++中的地址。通过对象引用可以找到对象。一个引用可以指向多个对象。操纵...
分类:
编程语言 时间:
2015-06-27 11:42:22
阅读次数:
203
这是一个经典面试问题,它迷惑Java新手。在这篇文章中,我将用一个例子和一些图来证明:Java是按值传递的。定义:
- 按值传递:在内存中做一个实际参数值拷贝进行传递。
- 传引用:传递实际参数的地址的副本。
Java是永远是值传递。原始数据类型和对象引用都只是值。...
分类:
编程语言 时间:
2015-06-27 09:58:35
阅读次数:
177
必须返回对象时,别妄想返回其reference我们上节分析了对象引用传递的好处,现在说明函数返回引用对象带来的种种坏处。
先来一段代码:class Rational{
public:
Rational(int numerator=0, int denominator=1);
……
private:
int n, d;
friend
const Rationa...
分类:
编程语言 时间:
2015-06-26 11:04:44
阅读次数:
105
?深复制(深拷贝,内容拷贝,deepcopy)Ø源对象和副本对象是不同的两个对象Ø源对象引用计数器不变,副本对象计数器为1(因为是新产生的)Ø本质是:产生了新的对象Ø?浅复制(浅拷贝,指针拷贝,shallowcopy)Ø源对象和副本对象是同一个对象Ø源对象(副本对象)引用计数器+1,相当于做一次re...
分类:
移动开发 时间:
2015-06-23 15:00:02
阅读次数:
147
1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被...
分类:
编程语言 时间:
2015-06-21 17:03:16
阅读次数:
194
C#的类可以有静态方法和属性,可以类名或实例引用,并且是所有实例共享的。 JS中有类方法、对象方法,分别对应C#中的静态方法、实例方法。 此外JS中还有原型方法,通过给一个类的Prototype变量添加一个对象引用,动态的让该类的所有实例拥有属性和方法。 总之,一个类的prototype存储了类的特...
分类:
Web程序 时间:
2015-06-21 15:39:58
阅读次数:
205
1 ?public class Test { 2 public static void main(String[] args) { 3 Human aPerson = new Human(122); 4 } 5 6 } 7 class H...
分类:
其他好文 时间:
2015-06-19 18:40:47
阅读次数:
101