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)。

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

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

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


相关推荐

  • 基于Java+SpringBoot+vue+elementui社区疫情防控系统详细设计实现

    基于Java+SpringBoot+vue+elementui社区疫情防控系统详细设计实现主要功能设计:查看首页、个人中心、用户管理、返乡报备管理、外出报备管理、投诉信息管理、体温上报管理、商品代买管理、商品配送管理、社区论坛、系统管理等内容进行详细操作。

    2022年10月21日
    3
  • TIFF文件切割_tif文件分割

    TIFF文件切割_tif文件分割TIFF文件由于可以存储多种形式的数据类型,也可以存储大量的数据,故其体积比较大,如果我们想截取其中的一部分图片数据,如下图:截取如下图部分:保存之后同样还是一个TIFF图片。1.自己定义了一个类实现头文件:#pragmaonce#include#include”tiflib.h”#include#include

    2025年6月22日
    2
  • Java static关键字与static{}语句块

    Java static关键字与static{}语句块目录直通车一、类的加载特性与时机1、 类加载的特性2、类加载的时机二、static的三个常用1、修饰成员变量2、修饰成员方法3、 静态块(static{})一、类的加载特性与时机在进入static之前,先补一下关于类的脑。1、 类加载的特性在JVM的生命周期里,每个类只会被加载一次。类加载的原则:延迟加载,能少加载就少加载,因为虚拟机的空…

    2022年7月17日
    13
  • VirtualBox管理工具Vboxmanage「建议收藏」

    VirtualBox管理工具Vboxmanage「建议收藏」注意事项: 使用vboxmanage管理virtualBox虚拟机,必须使用命令行开启虚拟机。  1、如果没有使用virtualbox管理界面创建好虚拟机的话,需要使用命令行或管理界面将虚拟机创建完成(创建步骤就不啰嗦了)  2、将创建好的虚拟机注册到管理工具里。      VBoxManageregistervm <filename>.vbox  …

    2022年5月3日
    165
  • postfix邮箱_用post方式发送文件

    postfix邮箱_用post方式发送文件一、首先关闭防火墙[root@localhost~]#systemctlstopfirewalld[root@localhost~]#setenforce0[root@localhost~]#getenforcePermissive二、搭建postfix[root@localhost~]#yuminstallpostfix三、配置postfix[root@local…

    2022年9月23日
    2
  • java -jar没有主清单属性_idea怎么导入jar

    java -jar没有主清单属性_idea怎么导入jar使用idea2018打包了一个springboot项目(打包为jar)启动是报错如下:错误原因打包后的jar文件中的MANIFEST.MF缺少项目启动项,即没有Main-Class和Start-Class如下:解决方案如下指定MANIFEST.MF路径项目打包前第一步file–>projectstructure弹框后选中Atifacts—&gt…

    2025年9月13日
    9

发表回复

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

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