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)


相关推荐

  • 原型和原型链理解_原型对象和原型链

    原型和原型链理解_原型对象和原型链一、原型①所有引用类型都有一个__proto__(隐式原型)属性,属性值是一个普通的对象②所有函数都有一个prototype(原型)属性,属性值是一个普通的对象③所有引用类型的__proto__属性指向它构造函数的prototypevara=[1,2,3];a.__proto__===Array.prototype;//true二、原型链…

    2022年10月25日
  • Spring中,三级缓存解决循环依赖[通俗易懂]

    Spring中,三级缓存解决循环依赖[通俗易懂]发现Spring三级缓存没有写到博客里,这里从自己的笔记迁移一下,补上:创建的都是单例,如果是构造方法注入,不能解决;如果是设值方法注入,用三级缓存解决:DefaultSingletonBeanRegistry:singletonObjectsearlySingletonObjectssingletonFactories代码流程:bean在createBeanInstance后,populateBean前:DefaultSingletonBeanRegistry:addSingl

  • 文件无法保存(文件夹已损坏无法读取怎么办)

    要使用EmguCV,首先需要去官网下载安装包(除了下载安装包,还有其他几种方式)。安装完成后,得配置环境变量。这里不再赘述。网上的教程很多。我这里分享一个官网的下载链接:https://sourceforge.net/projects/emgucv/files/emgucv/这里使用窗体程序进行说明,首先新建个窗体1.引用EmguCV的DLL:usingEmgu.CV;usingEmg…

  • 引入solcJ-all 0.4.25出问题的情况解决方案

    引入solcJ-all 0.4.25出问题的情况解决方案

  • nema23_关于NEMA SM 23的说明

    nema23_关于NEMA SM 23的说明Unfortunately,NEMASM23isambiguousaboutthepointofresolutionofthecombinedforcesandmoments.Theresolutionpointshavebeeninterpretedtobethefollowingtwopoints:NEMASM23没有给出设备整体校核时所有作…

    2022年10月23日
  • URL转发_免费URL转发

    URL转发_免费URL转发所谓URL转发,是通过服务器的特殊设置,将访问您当前域名的用户引导到您指定的另一个网络地址。  地址转向(也可称“URL转发”)即将一个域名指向到另外一个已存在的站点,英文称为“URLFORWARDING”。域名指向可能这个站点原有的域名或网址是比较复杂难记的。如何设置域名URL转发  1、在左边菜单中点击“域名管理”链接。  2、点选用户曾经注册并将要设置的域名,点击左侧

    2022年10月19日

发表回复

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

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