java字符数组⽤法总结,java字符串数组的定义与使⽤
java字符数组,java数组的定义与使⽤
⼆维数组
String[] str = new String[5]; //创建⼀个长度为5的String(字符串)型的⼀维数组
String[] str = new String[]{"","","","",""};
String[] str = {"","","","",""};
String数组初始化区别
⾸先应该明⽩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"}是⼀般形式的赋值,=号的右边叫数组字⾯量(ArrayLiteral),数组字⾯量可以⽤在任何需要⼀个数组的地⽅(类型兼容的情况下)。如:  String[] str = {"1","2","3"}; // 正确的
  String[] str = new String[]{"1","2","3"} // 也是正确的
  String[] str;
  str = {"1","2","3"}; // 编译错误
因为数组初始化式只能⽤于声明同时赋值的情况下。
java定义一维数组并赋值
改为:
  String[] str;
  str = new String[] {"1","2","3"}; // 正确了
⼜如:
  void f(String[] str) {
  }
  f({"1","2","3"}); // 编译错误
正确的应该是:
  f(new String[] {"1","2","3"});
还可以 String s=new String[30];
如果没有显式赋值,则系统⾃动赋默认值null。
PS:
  笔者所犯错误为在初始化数组的时候定义为String[] str = newString[]{},如此定义相当于创建了创建⼀个长度为0的String(字符串)型的⼀维数组。在后期为其赋值的时候str[0]="A",就会抛出异常。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。