前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >string数组怎么定义对象_定义二维字符型数组

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

作者头像
全栈程序员站长
发布2022-08-03 14:02:12
1.7K0
发布2022-08-03 14:02:12
举报

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

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

【string数组怎么定义】

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

string数组的定义有三种:

代码语言:javascript
复制
String arr[] = new String[10]; //创建一个长度为10的String 类型数组。 
String arr[] = {"张三","李四"}; 
String[] str = new String[]{"","","","",""};

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

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

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

代码语言:javascript
复制
String[] str = {"1","2","3"}; 

这种形式叫数组初始化式(Array Initializer),只能用在声明同时赋值的情况下。 而 String[] str = new String[]{“1”,“2”,“3”} 是一般形式的赋值,=号的右边叫数组字面量(ArrayLiteral),数组字面量可以用在任何需要一个数组的地方(类型兼容的情况下)。如:

代码语言:javascript
复制
 String[] str = {"1","2","3"}; // 正确的
  String[] str = new String[]{"1","2","3"} // 也是正确的
//而
  String[] str;
  str = {"1","2","3"}; // 编译错误

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

改为:

代码语言:javascript
复制
 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)。

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • string数组的定义有三种:
  • String arr[] = {“张三”,“李四”}与String[] str = new String[]{“”,””,””,””,””}在内存里有什么区别?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档