java对象数组初始化要怎么实现?

TheDisguiser 2020-09-15 14:50:25 java常见问答 8901

关于java中对象数组初始化小伙伴们了解了吗?想要熟练使用数组对象,了解它的工作流程是非常有必要的,下面就一起来看看它是如何实现初始化的。

java数组怎么初始化?

Java中数组初始化有两种方法,一是静态初始化,二是动态初始化。

所谓静态初始化就是程序员在初始化一个数组时就为数组每个元素赋值,动态初始化指程序员只指定数组的长度,而由系统为每个元素赋初值。

示例:

 public static void main(String[] args)
 {
     //静态初始化数组:方法一
     String cats[] = new String[]
     {
         "Tom"
         , "Sam"
         , "Mimi"
     };
     //静态初始化数组:方法二
     String dogs[] = {
         "Jimmy"
         , "Gougou"
         , "Doggy"
     };
     //动态初始化数据
     String books[] = new String[2];
     books[0] = "Thinking in Java";
     books[1] = "Effective Java";
     System.out.println(cats.length);
     System.out.println(dogs.length);
     System.out.println(books.length);
 }

Java的数组是一种引用数据类型,因此数组变量其实并不是数组本身,而是指向堆内存中存放的数组对象。所以,一个数组变量所引用的数组是可以改变的,如下:

示例:

public static void main(String[] args)
{
    //静态初始化数组:方法一
    String cats[] = new String[]
    {
        "Tom"
        , "Sam"
        , "Mimi"
    };
    //静态初始化数组:方法二
    String dogs[] = {
        "Jimmy"
        , "Gougou"
        , "Doggy"
    };
    //动态初始化数据
    String books[] = new String[2];
    books[0] = "Thinking in Java";
    books[1] = "Effective Java";
    cats = dogs;
    books = dogs;
}

数组是否必须初始化?

想要弄懂这个问题,关键要理清楚数组变量与数组对象的差别。

可以这么理解,数组变量是存放在栈内存中的,而数组对象是存放在堆内存中的。数组变量只是一个引用变量,但它能够指向实际的数组对象。而所谓的数组初始化其实并非对数组变量初始化,而是对数组对象进行初始化。

以上就是本篇文章的所有内容,还有java常见问题及解决方法不懂的小伙伴请记得关注我们寻找答案啊。

推荐阅读:

java对象和类有什么区别?

java对象的创建该如何实现?

java对象创建过程是什么样的?