C++和Java动态数组比较
来源:互联网 发布:txt转azw3软件 编辑:程序博客网 时间:2024/04/30 19:02
在C++和Java中经常要动态数组,下面我们看看两个的区别和联系。
我们知道Java中的引用和C++的中的指针很像,那么我们将在下面的代码中展示它们。
C++代码
#include <vld.h>#include <iostream>using namespace std;class UniArray{public:UniArray(int length){cout << "malloc memory" << endl;this->length = length;elem = new int[length];}virtual ~UniArray(){delete[] elem;}private:int length;int* elem;};class TwoDimArray{public:TwoDimArray(int x, int y){xLength = x;yLength = y;pArray = new int * [xLength];for (int i = 0; i < xLength ; i++){pArray[i] = new int [yLength];}}virtual ~TwoDimArray(){for (int i = 0 ; i < xLength ; i++){delete[] pArray[i];}delete pArray;}private:int xLength;int yLength;int** pArray;};int main(){TwoDimArray(5, 5);UniArray array(5);return 0;}
public class ArrayTest {public static void main(String[] args){for(int i = 0 ; i < 10 ; i++){System.out.println(i);UniArray uniArray = new UniArray(6);uniArray = null;System.gc();}for(int i = 0 ; i < 10 ; i++){System.out.println(i);TwoDiArray twoDiArray = new TwoDiArray(5, 5);twoDiArray = null;System.gc();}System.gc();}static class UniArray{public UniArray(int length){pArray = new int[length];}protected void finalize(){System.out.println("UniArray Garbage Collection");}private int[] pArray; }static class TwoDiArray{public TwoDiArray(int x,int y){pArray = new int[x][];for(int i = 0 ; i < x ; i++){pArray[i] = new int[y];}}protected void finalize(){System.out.println("TwoDiArray Garbage Collection");}private int[][] pArray;}}
我们经过比较发现:
C++中的int * 语义上等价于Java中的int[]
C++中的int ** 语义上等价于Java中的int[][];
两者的申请过程是非常的相似的。
- C++和Java动态数组比较
- C#、Java、C、C++初始化数组过程和比较
- Java、C、C++中的数组的比较
- 比较C Sharp和Java
- 比较C Sharp和Java
- java和C++ C比较
- Java 和 Objective C 比较
- java和C++ C比较
- 比较C++, C#和Java
- java和C/C++比较
- Java和c/c++比较
- JAVA中容器和数组的比较
- Java和C++数组的比较
- [Java]数组、ArrayList和HashMap之比较
- Java中数组和集合的比较
- 动态申请内存方式和数组的比较
- Java中的数组和c中的数组
- C语言中静态数组和动态数组
- C#中调用Windows API的要点
- 1004—Let the Balloon Rise
- gcc详解以及静态、动态库的生成2
- No result defined for action action.LoginAction and result success 解决
- C++Test静态分析时,抛出”解析文件失败”错误的原因及解决方法
- C++和Java动态数组比较
- hdu 1398 (母函数)
- 个人软件集合 by xiaoH
- 将中科院分词软件 ICTCLAS50 嵌入到 Struts2 开发的Java Web项目中
- ApacheBench学习
- js中Array数组赋值及简单登陆
- hdu2048
- 服务器(多线程、线程池和缓冲队列)
- 2013.04微软暑期实习生招聘笔试题