String[] str = {"1","2","3"}与String[] str = new String[]{"1","2","3"}在内存里有什么区别?
编译执行结果没有任何区别。
更不可能像有些人想当然说的在栈上分配空间,Java的对象都是在堆上分配空间的。
这里的区别仅仅是代码书写上的:
String[] str = {"1","2","3"}; 这种形式叫数组初始化式(Array Initializer),只能用在声明同时赋值的情况下。
而 String[] str = new String[]{"1","2","3"} 是一般形式的赋值,=号的右边叫数组字面量(Array Literal),数组字面量可以用在任何需要一个数组的地方(类型兼容的情况下)。如:
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"});
从回帖看,太多人忽视这些基础知识的学习了
分享到:
相关推荐
Java 数组初始化详解 Java 数组初始化是 Java 编程语言中的一种基本概念,它允许开发者创建和初始化数组,以便于存储和操作数据。在本文中,我们将对 Java 数组初始化进行详细的介绍,包括一维数组和二维数组的声明...
### 一、一维String数组的初始化 1. **静态初始化**: 在Java中,可以使用花括号{}来静态初始化一维数组。这种方式允许你在声明数组的同时指定每个元素的初始值。例如: ```java String[] strArray = {"Hello",...
字符串数组主要用于可视化编程内容,如界面设计和图形绘制。在 Matlab 中,字符串数组可以通过单引号创建,例如:`a = 'This is an example.'`。字符串数组的每个字符占据一个元素位,在数组中元素所处的位置用...
### C语言字符数组初始化详解 #### 一、字符数组的定义与初始化 在C语言中,字符数组是一种非常重要的数据结构,主要用于存储一系列字符。字符数组的定义与初始化是掌握其使用的基础。以下是对字符数组定义及初始...
在VB(Visual Basic)编程语言中...以上就是VB中数组初始化的基本概念和实例,理解并熟练掌握这些技巧,将有助于编写更高效、更易维护的代码。在实际开发过程中,根据需求选择合适的初始化方式,可以大大提高编程效率。
### Java 数组初始化详解 #### 一、概述 在 Java 中,数组是一种基本的数据结构,用于存储固定数量的同类型元素。数组初始化是指为数组分配内存,并为其中的元素设置初始值的过程。根据不同的初始化方式,Java ...
在C语言中,数组初始化是编程过程中的一个重要环节,它能确保数组在使用前拥有预设的值,避免出现未定义行为。初始化数组的方式多种多样,以下将详细讲解四种常见的初始化方法。 1. 初始化参数列表 这是最直观的...
2. **初始化ArrayList**: 如果需要从XML资源中的字符串数组初始化,可以使用Resources类的getStringArray()方法。 ```java String[] predefinedArray = getResources().getStringArray(R.array.my_string_array); ...
数组初始化时,Java会为数组的所有元素分配内存,并根据初始化列表为每个元素赋予初始值。对于未初始化的数组,如`int[] b = new int[5];`,虽然在堆上分配了足够的空间,但元素的初始值默认为该类型的默认值(如int...
在实际开发中,我们可能会遇到需要从字节数组初始化String对象的情况。这个例子4-6就是为了展示这种操作的具体实现。让我们详细探讨一下这个话题。 首先,我们要理解String类的基本构造函数之一,它接受一个字节...
本文实例讲述了C#初始化数组的方法。分享给大家供大家参考,具体如下: C#声明数组并初始化,有三种方式。 对于一维数组: using System; using System.Data; using System.Configuration; using System.Web; using...
我们可以使用另一个Vector或数组来初始化新的Vector,复制其所有元素。在Java中: ```java Vector<Object> original = new Vector(...); Vector<Object> copy = new Vector(original); ``` 或者使用构造函数:...
数组初始化是创建并设置数组元素值的过程,通常在声明数组时进行。Java提供了两种主要的数组初始化方式:静态初始化和动态初始化。 **静态初始化**是指在声明数组时直接为每个元素分配初始值。这种方式允许程序员在...
数组初始化是在创建数组时为数组的所有或部分元素赋值的过程。在不同的编程语言中,数组初始化有不同的语法和方法。例如,在C/C++中,可以这样初始化一维整型数组: ```c int arr[5] = {1, 2, 3, 4, 5}; ``` 这里...
本文实例讲述了C#中数组初始化、反转和排序用法。分享给大家供大家参考。具体如下: 下面的代码演示了在C#中定义和初始化数组,然后对其进行赋值,排序和反转的操作方法: using System; public class ArraySample ...
通过理解如何使用字符数组初始化String对象,开发者可以更好地理解和控制内存管理,特别是在处理大量文本数据或需要避免不必要的对象创建时。这不仅有助于提高代码效率,也有助于培养良好的编程习惯。因此,深入学习...
在 C++ 中,我们可以使用多种方式来初始化数组。例如,我们可以使用 `auto` 关键字来定义自动数组,例如 `auto int a[8], a1;`。我们也可以使用静态初始化,例如 `static char s[8];`。此外,我们还可以使用动态初始...
例如,当需要快速初始化对象时,使用全参数构造器更加高效;而当需要在运行时动态设置属性值时,则使用默认构造器更为合适。 2. **对象的初始化**: - 本例中,我们通过数组`students`存储了三个`Student`对象。...