java字符串数组初始化和赋值[通俗易懂]

java字符串数组初始化和赋值[通俗易懂]//一维数组String[]str=newString[5];//创建一个长度为5的String(字符串)型的一维数组String[]str=newString[]{“”,””,””,””,””};String[]str={“”,””,””,””,””};String数组初始化区别      首先应该明白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”}; // 编译错误

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

改为:

  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”,就会抛出异常。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/161050.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • wJa丨Java闭源项目的自动化测试「建议收藏」

    wJa丨Java闭源项目的自动化测试「建议收藏」本文是i春秋论坛作家「Wker」表哥分享的技术文章,文章旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。wJa支持反编译Java生成的jar包文件,整理成语法树,根据调用链进行污点分析

  • 图像文字识别(四):java调用tess4j识别图像文字

    图像文字识别(四):java调用tess4j识别图像文字

  • Qt QTreeWidget 详解[通俗易懂]

    Qt QTreeWidget 详解[通俗易懂]一.基础设置1.添加顶层节点//添加顶层节点QTreeWidgetItem*topItem1=newQTreeWidgetItem(ui->treeWidget);topItem1->setText(0,”百度”);ui->treeWidget->addTopLevelItem(topItem1);2.设置表头隐藏,展开所有项//隐藏表头ui->treeWidget->setHeade.

  • 卡盟货源对接_卡盟排行

    卡盟货源对接_卡盟排行最近,很多小伙伴们都在想搭建一个卡盟的主站,但是鉴于很多人都不太懂编程,也不知道如何找到源码。所以现在小编就为大家带来搭建卡盟主站教程,而且还把源码也一起送来了,想要搭建卡盟主站的话就记得一定要下载哦!搭建卡盟主站教程介绍1,完整无误经过校验的卡盟平台源码2,基于Ecshop内核的卡盟平台,游戏点卡销售的首选平台PHP+MYSQL3,前台模板已做深层SEO优化便于搜索引擎收录寻找卡盟源码1网…

  • 配置Elasticsearch挂掉后自动重启,ES Service配置

    配置Elasticsearch挂掉后自动重启,ES Service配置elasticsearch.service文件[Unit]Description=elasticsearchDocumentation=http://www.elastic.coWants=network-online.targetAfter=network-online.targetStartLimitIntervalSec=0[Service]LimitMEMLOCK=infinityUser=elasticGroup=elasticLimitNOFILE=65536Limit

  • 腾讯云的ssl免费证书申请_腾讯云认证证书

    腾讯云的ssl免费证书申请_腾讯云认证证书前提条件:域名是在在腾讯云上购买的1.购买SSL证书1.1登录腾讯云状态下,打开链接https://console.cloud.tencent.com/ssl1.2在证书列表上方点击“申请免费证书”按钮,然后直接点“确定”1.3根据提示填写相关信息,“下一步”1.4选用“自动DNS验证”,“确认申请”1.5等待证书颁发即可,一般1…

发表回复

您的电子邮箱地址不会被公开。

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