string数组怎么定义对象_定义二维字符型数组

string数组怎么定义对象_定义二维字符型数组这里是IT修真院分享课,今天要分享的主题是【string数组怎么定义】string数组的定义有三种:Stringarr[]=newString[10];//创建一个长度为10的String类型数组。Stringarr[]={“张三”,”李四”};String[]str=newString[]{“”,””,””,””,””};Stringar…

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

这里是IT修真院分享课,今天要分享的主题是

【string数组怎么定义】

string数组怎么定义对象_定义二维字符型数组

string数组的定义有三种:

String arr[] = new String[10]; //创建一个长度为10的String 类型数组。 
String arr[] = {"张三","李四"}; 
String[] str = new String[]{"","","","",""};

String arr[] = {“张三”,“李四”}与String[] str = new String[]{“”,””,””,””,””}在内存里有什么区别?

编译执行结果没有任何区别。更不可能像有些人想当然说的在栈上分配空间,Java的对象都是在堆上分配空间的。

这里的区别仅仅是代码书写上的:

String[] str = {"1","2","3"}; 

这种形式叫数组初始化式(Array Initializer),只能用在声明同时赋值的情况下。
而 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[] str = new String[]{},如此定义相当于创建了创建一个长度为0的String(字符串)型的一维数组。在后期为其赋值的时候str[0]=“A”,就会抛出异常。

还有种特殊的

String…

类型后面三个点的写法,是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Object[]。
例如我们有一个方法叫做test(String…strings),那么你还可以写方法test(),但你不能写test(String[] strings),这样会出编译错误,系统提示出现重复的方法。 在使用的时候,对于test(String…strings),你可以直接用test()去调用,标示没有参数,也可以用去test(“aaa”),也可以用test(new String[]{“aaa”,”bbb”})。 另外如果既有test(String…strings)函数,又有test()函数,我们在调用test()时,会优先使用test()函数。只有当没有test()函数式,我们调用test(),程序才会走test(String…strings)。

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

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

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

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

(0)
blank

相关推荐

  • Android 三重缓存

    Android 三重缓存文章目录内存缓存Bitmap内存复用在Android应用中不可避免地要显示很多图片,如果不做处理,不管图片是否显示过,每次启动时都需要从网络拉取,这就极大影响了图片加载速度和浪费用户流量,并且整个应用中的图片内存无法控制在一个总的范围内。因此,图片缓存在一个图片加载模块中很重要并且不可缺少。目前比较流行的图片框架,如Glide、Fresco等,都使用了“内存-本地-网络”三级缓存策略。首…

  • Java IO流处理 面试题汇总

    Java IO流处理 面试题汇总说明:本节内容来源于网络汇总输入输出流是相对于内存而言的!1、面试题汇总(1)java中有几种类型的流?字符流和字节流。字节流继承inputStream和OutputStream,字符流继承自InputSteamReader和OutputStreamWriter。(2)谈谈JavaIO里面的常见类,字节流,字符流、接口、实现类、方法阻塞答:输入流就…

  • 我如何用前端技术得到XXOO网站的VIP[通俗易懂]

    我如何用前端技术得到XXOO网站的VIP[通俗易懂]查看作者原文讲解素材网页如图,这里只是说明整个网站的一些技术点,所以不该看的地方我都打上马赛克了,让我们揭开这些网站的整个前端工作原理首先刚进去的时候显示一堆乱七八糟的东西,点进去其中一个页面,下面各种虚假评论,然后每隔几秒钟弹出第几几几个会员充值成功,我们先把这个删掉好了,我们继续研究这个网站内部结构了正常情况每个页面的视频都是试看几十秒就会提醒你充值,当然这是这类网站的常

  • Production-Ready Beanstalkd with Laravel 4 Queues

    Production-Ready Beanstalkd with Laravel 4 Queues

  • spring事务回滚机制_事务回滚失败

    spring事务回滚机制_事务回滚失败使用来配置自动回滚,可以配置在类上,也可以配置在方法上(作用域不同),但对final或private修饰的方法无效,且该类必须是受spring所管控的。若被配置的方法或类抛出了异常,则事务会被自动回滚,除非你在该方法中手动捕获了异常。可以使用来设定针对特定的异常进行事务回滚,如果不设置则默认会回滚RuntimeExceptionandError(参考自源码内文档)。通过注入来手动开启事务,手动回滚事务,用于抛出异常被catch后,进行手动回滚。…

    2022年10月21日
  • 经纪xx系统节点VIP案例介绍和深入分析异常

    经纪xx系统节点VIP案例介绍和深入分析异常

发表回复

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

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