大家好,又见面了,我是你们的朋友全栈君。
创建数组:
String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组
String[] str = new String[]{“”,””,””,””,””};
String[] str = {“”,””,””,””,””};
//二维数组
String[][] str = new String[2][2]; //创建一个2行2列的二维数组
String数组初始化区别:
编译执行结果没有任何区别。更不可能像有些人想当然说的在栈上分配空间,Java的对象都是在堆上分配空间的。
这里的区别仅仅是代码书写上的:
String[] str = {“1″,”2″,”3”}; 这种形式叫数组初始化式(Array Initializer),只能用在声明同时赋值的情况下。
而 String[] str = new String[]{“1″,”2″,”3”} 是一般形式的赋值,=号的右边叫数组字面量(Array Literal),数组字面量可以用在任何需要一个数组的地方(类型兼容的情况下)。如:
String[] str = {“1″,”2″,”3”}; // 正确的
String[] str = new String[]{“1″,”2″,”3”} // 也是正确的
而
String[] str;
str = {“1″,”2″,”3”}; // 编译错误
因为数组初始化式只能用于声明同时赋值的情况下。
改为:
String[] str;
str = new String[] {“1″,”2″,”3”}; // 正确了
又如:
void f(String[] str) {
}
f({“1″,”2″,”3”}); // 编译错误
正确的应该是:
f(new String[] {“1″,”2″,”3”});
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161068.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...