C++ C# JAVA 创建对象
来源:互联网 发布:win10 pe 网络全能版 编辑:程序博客网 时间:2024/06/09 23:45
创建对象:C++和Java的异同
C++
Java
类定义:Class User {...};
类定义:Class User {...}
对象构造: (1)User u(...);
对象构造: (2)
User* p = new User(...);
对象构造:
User q = new User(...);
在标号为(1)的构造函数调用中,我们可以把u本身当作一个User对象。这个构造函数调用填充由u对象所占据的内存区域(栈空间),如下图(a)部分所示。
标号为(2)的构造函数调用创建了一小块内存区域(栈空间),其中存储了p的值(一个内存地址),然后填充一个较大的内存区域(堆空间),赋值符右边所创建的User对象就存储在这块内存中。p所指向的内存地址就是User对象存储位置。如下图(b)部分所示
Java的构造函数调用也保留一个内存位置(栈空间)存储q的值,并填充一块内存(堆空间)保存User对象。在这种情况下,为q的值所保留的内存地址保存了User对象引用,如下图(C)部分所示。
JAVA创建对象和C# 创建对象一样
我们可以把q中存储的对象引用看成是一个伪指针(一个内存伪地址),之所以说它是伪指针,是因为我们不能像C++指针那样对它进行解引用。如果由于内存管理的需要,JVM决定把这个User对象移动到内存中的一个不同位置,q所保存的对象引用仍然能够找到这个对象。反之,如果p所指向的对象转移到内存中的不同位置,那么p的值需要在程序的控制下进行显示的修改
0 0
- C++ C# JAVA 创建对象
- Android NDK c创建java对象
- c# 反射创建对象
- c对象创建
- 用jni的方式c/c++语言创建Java对象
- 用C#创建COM对象
- 用C#创建COM对象
- 用C#创建COM对象
- 用C#创建COM对象
- 用C#创建COM对象
- 用C#创建COM对象
- 如何合理创建c#对象
- 如何合理创建c#对象
- 用C#创建COM对象
- C#构造函数-创建对象
- C# 中创建对象数组
- C#构造函数-创建对象
- C# 对象的创建初识
- 阿录帮帮忙—AOP 的利器:ASM 3.0 介绍
- 我的常用软件汇总
- Ubuntu下安装LAMP及phpmyadmin
- Rich feature hierarchies for accurate object detection and semantic segmentation
- Install VMware Player 6.0.3 in CentOS 7
- C++ C# JAVA 创建对象
- session,cookie 详解
- Clone Graph
- Android核心分析(27)-----Android GDI 之SurfaceFlinger之动态结构示意图
- 7.5 预处理 1
- iOS 设备崩溃日志的查看!!!
- 在ie下与在firefox下长度不一样的解决办法
- iOS设计模式--工厂模式
- Android应用自动更新功能的代码实现