String[]数组初始化「建议收藏」

String[]数组初始化「建议收藏」创建数组://一维数组String[]str=newString[5];//创建一个长度为5的String(字符串)型的一维数组String[]str=newString[]{“”,””,””,””,””};String[]str={“”,””,””,””,””};//二维数组String[][]str=newString[2][2];//

大家好,又见面了,我是你们的朋友全栈君。

创建数组:

//一维数组


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


String[] str = new String[]{“”,””,””,””,””};


String[] str = {“”,””,””,””,””};


//二维数组


String[][] str = new String[2][2]; //创建一个2行2列的二维数组


String数组初始化区别:

String[] str = {“1″,”2″,”3”}与String[] str = new String[]{“1″,”2″,”3”}在内存里有什么区别?
  编译执行结果没有任何区别。更不可能像有些人想当然说的在栈上分配空间,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”});

注意:初始化数组的时候定义为String[] str = new String[]{},如此定义相当于创建了创建一个长度为0的String(字符串)型的一维数组。在后期为其赋值的时候str[0]=”A”,就会抛出异常。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/161068.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Google资深工程师深度讲解Go语言-迷宫的广度优先搜索(十二)「建议收藏」

    Google资深工程师深度讲解Go语言-迷宫的广度优先搜索(十二)

    2022年2月17日
    52
  • SSM整合,非常详细的SSM整合[通俗易懂]

    SSM整合,非常详细的SSM整合[通俗易懂]对于ssm框架网上有很多,这里只是自己为大家提供的一个ssm整合框架参考分享,这个前提是基于maven的管理工具写的,如果觉得写得不好,博主这边已经把代码上传了:不妨可以参考代码再理解学习:https://download.csdn.net/download/qq_30764991/11012764如果觉得文章不错,对你有帮助,请作者喝杯咖啡,谢谢!如果对您有帮助,请多多支持.多少都…

    2022年4月28日
    45
  • SQL server 2008 r2 安装图文详解

    文末有官网下载地址、百度网盘下载地址和产品序列号以及密钥,中间需要用到密钥和序列号的可以到文末找选择网盘下载的下载解压后是镜像文件,还需要解压一次直接右键点击解如图所示选项,官网下载安装包的可以跳过前两步等待解压完,过程可能会比较慢解压完后双击如图所示选项安装SQLServer2008R2需要.NETFramework3.5SP1支持这

    2022年4月8日
    50
  • 线程池与mq的简单结合使用

    线程池与mq的简单结合使用线程池与mq的简单结合使用

    2022年4月23日
    41
  • 深入理解GC ——MinorGC\MajorGC\FullGC[通俗易懂]

    发现网上很多关于GC的文章都自相矛盾,经过长期的积累验证,本文对很多含混的知识点做了严谨的解释,欢迎有理有据的拍砖!HotSpot虚拟机将其物理上划分为两个–新生代(younggeneration)和老年代(oldgeneration)、永久代(PermanentGeneration)-涉及到的术语:Stop-the-world意味着JVM因为要执行GC而停止了…

    2022年4月15日
    51
  • Java高并发秒杀API(四)之高并发优化

    Java高并发秒杀API(四)之高并发优化Java高并发秒杀API(四)之高并发优化1.高并发优化分析关于并发并发性上不去是因为当多个线程同时访问一行数据时,产生了事务,因此产生写锁,每当一个获取了事务的线程把锁释放,另一个排队线程才能拿到写锁,QPS(QueryPerSecond每秒查询率)和事务执行的时间有密切关系,事务执行时间越短,并发性越高,这也是要将费时的I/O操作移出事务的原因。在本项目中高并发发生在哪?在

    2022年5月12日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号