我想知道String[]的含义,我在网上搜过了,找不到满意的答案。先说说我的看法,不对之处请大家指出:在main中:
String str[] = null;
str[0]="123456";
System.out.println(str[0]);
会报错:Exception in thread "main" java.lang.NullPointerException
at RandomResult.main(RandomResult.java:24)
如果代码改为:
String str[] = new String[5];
str[0]="123456";
System.out.println(str[0]);
就正确了。
应该是第一次的代码中没有给str数组分配内存空间,所以就报错了。String str[] = null;
str="1,2,3,4,5,6".split(",");
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
这个是正确的,API中:public String[] split(String regex)
split方法的返回类型就是数组。
不知道我的理解正确不?
String str[] = null;
str[0]="123456";
System.out.println(str[0]);
会报错:Exception in thread "main" java.lang.NullPointerException
at RandomResult.main(RandomResult.java:24)
如果代码改为:
String str[] = new String[5];
str[0]="123456";
System.out.println(str[0]);
就正确了。
应该是第一次的代码中没有给str数组分配内存空间,所以就报错了。String str[] = null;
str="1,2,3,4,5,6".split(",");
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
这个是正确的,API中:public String[] split(String regex)
split方法的返回类型就是数组。
不知道我的理解正确不?
str 是"1,2,3,4,5,6".split(",") 返回的字符串数组的引用 ;
数组我不常用,这个是我为了理解,在main函数中写的测试
我写java程序快一年了,数组这一块不经常用,我只是想弄明白,不希望糊里糊涂的,有许多东西都是,只是会用,就是不知道它的原理,感觉很难受
是的,我就是查的API,数组名即使这个数组空间的首地址
谢谢你了,不过还是不太明白举个例子:
int a[]={1,2,3},b[];
b=a;
这是一个引用赋值,那个和这个例子是不是很像啊
我说的是实话,我上学期学的是java SE 写的程序不多,下学期学的java web,一直在写程序,主要是用的Struts2 + hibernate,就不怎么接触数组,hibernate查询出来的都在list中,直接拿来作为对象就用了
通常所用的数组变量其实是一个指向数组的引用,所以它可以被赋值给其它引用,但数组数据是没变的
数组可以为null,没被初始化或赋值就无法使用。
另外,我建议你把如
String str[] = new String[5];
这样的写法改成等价的
String[] str = new String[5];
既提高可读性,也有助于你的理解。