C++和JAVA申请数组的一点区别

目前在学习JAVA,随笔一写,若您发现错误欢迎指出,谢谢。
C++:
type * p = new type(value);//对应的调用构造函数,对于基本类型而言则是直接赋值。
//申请一维数组,后面不能再加(value)了
type *p= new type[size];
//申请二维数组
type **p = new *type[row size];
p[i] = new type[colsize];
当然申请二维数据也可以直接申请N*M的一维数组再进行转换。
C风格的申请数组方式
type p = malloc(sizeof(type) size);
但是对于有构造函数的自定义类型,则推荐使用C++的new运算符。

JAVA:
对于自定义类型
1> 申请单个元素空间
foo p = new foo(value);
2> 申请一维数组
foo [] p = new foo[size];
p[i] = new foo(value);
3> 申请二维数组
foo [][]p = new foo[colsize][rowsize];
p[i][j] = new foo(value);
对于一维数组和二维数组而言,申请的只是引用的空间,具体还需要再申请对象空间。

对于内置类型如int
1>不能申请单个元素的空间
int p = new int; int p = new int(5);是错误的
2> 申请一维数组
int []p = new int[5];
3> 申请二维数组
int [][] p = new int[rowsize][colsize];
对于内置类型而言,申请的就是数据本身的空间。

你可能感兴趣的:(java)