String[] s = {"aa","bb","cc",}; System.out.println(s.length); 为什么打印出的结果是3?我还以为是4,并且s[3]是NULL。 红色部分与下面是一样的 String[] s = {"aa","bb","cc"}; 所以结果是3,也不存在s[3],最大到s[2]
String[] s = {"aa","bb","cc",}; System.out.println(s.length); for (String t : s) { System.out.println(t); }结果 3 aa bb cc String[] s = {"aa","bb","cc",null}; System.out.println(s.length); for (String t : s) { System.out.println(t); }结果 4 aa bb cc null
不能访问s[3],否则: Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at A.main(A.java:6)
同意.String[] s = {"aa","bb","cc",}; 长度就是3个啊.怎么会是四个呢.数字下标是从0开始的.Java中都是从0开始的,int 的初始值也是0.
空就是Null,也就是声明并初始化了一个容量为四的数组,只不过最后一个元素初始化为空而已
我就是不太理解在数组定义中一个逗号后面什么都不加,不知道JAVA编译器是怎么去理解的。如果写两个逗号又会报错。 String[] s = {"aa","bb","cc",,};以逗号开头也会报错。 String[] s = {,"aa","bb","cc"};
而s[]是对字符串的引用;与普通数组一样,下标从0开始;
所以该数组的下标值最大为2。因此s[3]是空的
s[1]-->bb
s[2]-->cc
s[3]-->null
System.out.println(s.length); 为什么打印出的结果是3?我还以为是4,并且s[3]是NULL。 红色部分与下面是一样的
String[] s = {"aa","bb","cc"}; 所以结果是3,也不存在s[3],最大到s[2]
String[] s = {"aa","bb","cc",};
System.out.println(s.length);
for (String t : s) {
System.out.println(t);
}结果
3
aa
bb
cc
System.out.println(s.length);
for (String t : s) {
System.out.println(t);
}结果
4
aa
bb
cc
null
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3
at A.main(A.java:6)
同意.String[] s = {"aa","bb","cc",}; 长度就是3个啊.怎么会是四个呢.数字下标是从0开始的.Java中都是从0开始的,int 的初始值也是0.
String[] s = {"aa","bb","cc",,};以逗号开头也会报错。
String[] s = {,"aa","bb","cc"};
s[0]-->aa
s[1]-->bb
s[2]-->cc
s[3]-->null
长度是4
public class A {
public static void main(String[] args) {
String[] s1 = {,};
String[] s2={};
System.out.println(s1.length);
for (String t : s1)
{ System.out.println(t); }
System.out.println(s2.length);
for (String t : s2)
{ System.out.println(t); }
}
}-------输出-----------------------
0
0