`
cheney463
  • 浏览: 30376 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

String数组的初始化

    博客分类:
  • java
阅读更多

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"});

从回帖看,太多人忽视这些基础知识的学习了
1
0
分享到:
评论

相关推荐

    java数组初始化详解

    Java 数组初始化详解 Java 数组初始化是 Java 编程语言中的一种基本概念,它允许开发者创建和初始化数组,以便于存储和操作数据。在本文中,我们将对 Java 数组初始化进行详细的介绍,包括一维数组和二维数组的声明...

    java代码-JAVA中String数组初始化,一维数组和二维数组初始化

    ### 一、一维String数组的初始化 1. **静态初始化**: 在Java中,可以使用花括号{}来静态初始化一维数组。这种方式允许你在声明数组的同时指定每个元素的初始值。例如: ```java String[] strArray = {"Hello",...

    matlab初始化数组

    字符串数组主要用于可视化编程内容,如界面设计和图形绘制。在 Matlab 中,字符串数组可以通过单引号创建,例如:`a = 'This is an example.'`。字符串数组的每个字符占据一个元素位,在数组中元素所处的位置用...

    C语言字符数组初始化

    ### C语言字符数组初始化详解 #### 一、字符数组的定义与初始化 在C语言中,字符数组是一种非常重要的数据结构,主要用于存储一系列字符。字符数组的定义与初始化是掌握其使用的基础。以下是对字符数组定义及初始...

    VB 数组的初始化实例

    在VB(Visual Basic)编程语言中...以上就是VB中数组初始化的基本概念和实例,理解并熟练掌握这些技巧,将有助于编写更高效、更易维护的代码。在实际开发过程中,根据需求选择合适的初始化方式,可以大大提高编程效率。

    java数组初始化详解修正版.doc

    ### Java 数组初始化详解 #### 一、概述 在 Java 中,数组是一种基本的数据结构,用于存储固定数量的同类型元素。数组初始化是指为数组分配内存,并为其中的元素设置初始值的过程。根据不同的初始化方式,Java ...

    C语言常见问题-数组初始化的四种方法.docx

    在C语言中,数组初始化是编程过程中的一个重要环节,它能确保数组在使用前拥有预设的值,避免出现未定义行为。初始化数组的方式多种多样,以下将详细讲解四种常见的初始化方法。 1. 初始化参数列表 这是最直观的...

    Android String字符串数组动态增加

    2. **初始化ArrayList**: 如果需要从XML资源中的字符串数组初始化,可以使用Resources类的getStringArray()方法。 ```java String[] predefinedArray = getResources().getStringArray(R.array.my_string_array); ...

    Java数组初始化时内存分配情况解析.pdf

    数组初始化时,Java会为数组的所有元素分配内存,并根据初始化列表为每个元素赋予初始值。对于未初始化的数组,如`int[] b = new int[5];`,虽然在堆上分配了足够的空间,但元素的初始值默认为该类型的默认值(如int...

    java代码-例子4-6 用字节数组初始化String对象

    在实际开发中,我们可能会遇到需要从字节数组初始化String对象的情况。这个例子4-6就是为了展示这种操作的具体实现。让我们详细探讨一下这个话题。 首先,我们要理解String类的基本构造函数之一,它接受一个字节...

    C#初始化数组的方法小结

    本文实例讲述了C#初始化数组的方法。分享给大家供大家参考,具体如下: C#声明数组并初始化,有三种方式。 对于一维数组: using System; using System.Data; using System.Configuration; using System.Web; using...

    Vector初始化的各种写法

    我们可以使用另一个Vector或数组来初始化新的Vector,复制其所有元素。在Java中: ```java Vector<Object> original = new Vector(...); Vector<Object> copy = new Vector(original); ``` 或者使用构造函数:...

    老生常谈java中的数组初始化

    数组初始化是创建并设置数组元素值的过程,通常在声明数组时进行。Java提供了两种主要的数组初始化方式:静态初始化和动态初始化。 **静态初始化**是指在声明数组时直接为每个元素分配初始值。这种方式允许程序员在...

    计算机软件-商业源码-09 初始化数组和记录.zip

    数组初始化是在创建数组时为数组的所有或部分元素赋值的过程。在不同的编程语言中,数组初始化有不同的语法和方法。例如,在C/C++中,可以这样初始化一维整型数组: ```c int arr[5] = {1, 2, 3, 4, 5}; ``` 这里...

    C#中数组初始化、反转和排序用法实例

    本文实例讲述了C#中数组初始化、反转和排序用法。分享给大家供大家参考。具体如下: 下面的代码演示了在C#中定义和初始化数组,然后对其进行赋值,排序和反转的操作方法: using System; public class ArraySample ...

    java代码-例子4-7 用字符数组初始化String对象

    通过理解如何使用字符数组初始化String对象,开发者可以更好地理解和控制内存管理,特别是在处理大量文本数据或需要避免不必要的对象创建时。这不仅有助于提高代码效率,也有助于培养良好的编程习惯。因此,深入学习...

    C++ 数组 多维数组 -- 二维数组

    在 C++ 中,我们可以使用多种方式来初始化数组。例如,我们可以使用 `auto` 关键字来定义自动数组,例如 `auto int a[8], a1;`。我们也可以使用静态初始化,例如 `static char s[8];`。此外,我们还可以使用动态初始...

    java实现数组实例化一个类

    例如,当需要快速初始化对象时,使用全参数构造器更加高效;而当需要在运行时动态设置属性值时,则使用默认构造器更为合适。 2. **对象的初始化**: - 本例中,我们通过数组`students`存储了三个`Student`对象。...

Global site tag (gtag.js) - Google Analytics