Java:为什么可以';使用{..}返回数组而不使用新运算符?
我在网站上搜索了很多,但是没有找到任何相关的问题。所以我相信它不是复制品 我知道我们可以用3种方法初始化数组:Java:为什么可以';使用{..}返回数组而不使用新运算符?,java,arrays,Java,Arrays,我在网站上搜索了很多,但是没有找到任何相关的问题。所以我相信它不是复制品 我知道我们可以用3种方法初始化数组: char[]charAr=新字符[10] char[]charAr={'a','b','c'} char[]charAr=new char[]{'a','b','c'} 第一个问题是:{'a','b','c'}这类东西的名字是什么?它被称为数组文本吗 第二个问题是:newchar[]{'a','b','c'}与{'a','b','c'}之间有什么区别 第三个问题是:为什么我不能用{
char[]charAr=新字符[10]代码>
char[]charAr={'a','b','c'}代码>
char[]charAr=new char[]{'a','b','c'}代码>
{'a','b','c'}
这类东西的名字是什么?它被称为数组文本吗
第二个问题是:newchar[]{'a','b','c'}
与{'a','b','c'}
之间有什么区别
第三个问题是:为什么我不能用{'a','b','c'}
返回一个新创建的数组?
我必须返回新字符[]{'a','b','c'}
第四个问题:newchar[10]
和newchar[]{'a','b','c'}
都是数组的构造函数,对吗
第一个问题是:{'a','b','c'}这类东西的名字是什么?它被称为数组文本吗
Java中没有数组文本,它们用元素填充数组,即初始化
第二个问题是:新字符[]{'a','b','c'}与{'a','b','c'}之间有什么区别
第一个称为*内联数组声明*
使用second,可以将其分配给已定义类型的数组
我举的例子如下:
第三个问题是:为什么我不能返回一个新创建的带有{'a','b','c'}的数组?我必须返回新的字符[]{'a','b','c'}
因为在第一种情况下,类型丢失,编译器不知道它们是哪种类型的元素
第四个问题:newchar[10]和newchar[]{'a','b','c'}都是数组的构造函数,对吗
即创建具有指定长度的字符数组
char[ ] charAr={'a', 'b', 'c'};
数组{'a','b','c'}
称为数组初始值设定项。如中所述。它只能这样写(前面没有newchar[]
),作为变量声明的一部分
在任何其他地方(包括return
语句),都需要使用数组创建表达式。这些在中进行了描述。声明变量时,可以使用数组初始值设定项或数组创建表达式初始化变量。这就是为什么在声明变量时,newchar[]
似乎是可选的
关于第四个问题:从技术上讲,它们不是“构造函数”(在Java术语中有特定的含义),但它们都构造数组(或者更准确地说,它们都创建数组)。第一个问题答案:-{a,b,c}是编译时赋予数组的值。 所以,这个东西的名字是数组初始化。。。。这些不是文字 第二个问题答案:-区别在于[]{a,b,c}调用参数化构造函数,{a,b,c}只是初始化数组 第三:我不能得到你的任务 第四:是的,两人都是建设者
char[ ] charAr=new char[10];
是正确的数组声明。您可以将charAr分配给另一个char数组
char[ ] charAr=new char[]{'a','b','c'};
char[ ] charAr={'a', 'b', 'c'};
在一行中进行声明和初始化的语法。您可以将其重新分配给新的字符数组
char[ ] charAr=new char[]{'a','b','c'};
char[ ] charAr={'a', 'b', 'c'};
是一个数组文本。只能在定义数组的位置指定文字值。不能将其重新分配给新的字符数组
char[ ] charAr=new char[]{'a','b','c'};
char[ ] charAr={'a', 'b', 'c'};
您无法返回数组文本,因为在编译期间,编译器不知道您返回的元素的类型。
{'a','b','c'}
在Java中不能单独存在。Java中没有数组文字。@LutzHorn非常感谢。关于第四个问题:数组初始值设定项可能是一个更好的术语?@user503413-应该是,除非已经使用了这个术语。(请参见我对第一个问题的回答。)它们都是数组创建表达式。@TedHopp您很好地回答了我的问题。谢谢