首页 > 编程知识 正文

字符串的初始化,java二维字符串数组

时间:2023-05-03 23:33:34 阅读:168074 作者:4853

//一维数组

String[] str=new String[5]; //长度为5的String (创建字符串型一维数组

String[] str=new String[]{“,”,“,”,“”,“”

String[] str={、’、’、’、’、’、’};

字符串数组初始化差异

首先,由于java数组中存储了对象的引用,所以应该理解不初始化就不能使用;

String[] str={“1”、“2”、“3”}和String[] str=newString[]{“1”、“2”、“3”}在内存中有何不同?

编译结果没有任何区别。 不能像一些人当然想说的那样在堆栈上分配空间。 所有Java对象都为堆栈分配空间。

这里的区别只是代码表示上的东西:

String[] str={“1”、“2”、“3”; 这种格式称为数组初始化表达式(ArrayInitializer ),只能在声明的同时赋值时使用。

另一方面,String[] str=new String[]{“1”、“2”、“3”}是一般形式的赋值,=符号的右侧被称为阵列文字,阵列文字表示哪个阵列是例如:

String[] str={“1”、“2”、“3”; //正确

String[] str=new String[]{“1" "、"2"、"3”} //也是正确的

而且,那是

字符串[ ] str;

str={“1”"、"2"、"3"; //编译错误

因为数组初始化表达式只能用于声明同时赋值。

更改:

字符串[ ] str;

str=new String[] {“1”,“2”,“3”}; //正确

又如下。

voidf(string[]str ) {

}

f () "1","2","3" ); //编译错误

正确的是:

f(newstring () )“1”、“2”、“3”);

String s=new String[30];

如果未显式赋值,则会自动将默认值指定为空值。

PS:

笔者犯的错误是在初始化数组时定义为String[] str=newString[]{},这样定义与创建长度为0的String型一维数组相同。 在后期给它赋值时,str[0]=”A”会抛出异常。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。