当前位置:网站首页 > 技术博客 > 正文

java中字符串数组初始化



//一维数组


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


String[] str = new String[]{"","","","",""};


String[] str = {"","","","",""};



String数组初始化区别

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"}; // 编译错误


因为数组初始化式只能用于声明同时赋值的情况下。



改为:


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];


PS:

笔者所犯错误为在初始化数组的时候定义为String[] str = newString[]{},如此定义相当于创建了创建一个长度为0的String(字符串)型的一维数组。在后期为其赋值的时候str[0]="A",就会抛出异常。





























  • 上一篇: 安装hbase教程
  • 下一篇: pm2部署nodejs
  • 版权声明


    相关文章:

  • 安装hbase教程2025-08-26 21:30:01
  • 空间尺度比例2025-08-26 21:30:01
  • vue权限控制2025-08-26 21:30:01
  • 异步fifoverilog代码2025-08-26 21:30:01
  • 位图算法应用2025-08-26 21:30:01
  • pm2部署nodejs2025-08-26 21:30:01
  • 若快打码软件2025-08-26 21:30:01
  • python 异步接口2025-08-26 21:30:01
  • rtc的工作原理2025-08-26 21:30:01
  • js单选框radio选中事件2025-08-26 21:30:01