java对象数组的动态初始化问题

如题所述

第1个回答  2020-01-28
room[]
rooms
=
new
room[5];
你只是创建了一个room数组对象和该数组对象的引用,并指定该数组对象的容量是5个room对象,系统在堆内存里只会为你分配该room数组对象所占用的空间,这样做是为了节约内存,需要用到的时候才会分配相应的空间存储room对象(也就是你主动初始化)。这就像你申请要买个能装5个room的盒子,但是你没说要买room啊(没初始化room数组对象里的内容),所以此时room数组对象里面是没有room对象的,也就是说rooms.length为0.
第2个回答  2019-11-30
我的理解时这样的:
当Person
per[]
=
new
Person[3];这句代码执行时,系统会申明一个数组变量,并指向三个地址,但是地址中是没有值的。
per[0]
=
new
Person("张三");当执行到这句代码时,系统会将其中数组地址中索引为0的地址赋值,值为对象(Person('张三')),而并不是String内存空间。
并且你贴出来的这两句代码中只会执行一次new操作
也就是只会为其中一个对象的name赋值字符串“张三”
我觉得不会涉及到两块String内存空间

java中怎么数组初始化
1 动态初始化:数组定义与为数组分配空间和赋值的操作分开进行;2.静态初始化:在定义数字的同时就为数组元素分配空间并赋值;3.默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐士初始化。

java中数组在不知道长度的情况下怎么怎么初始化,如果定义n
import java.util.ArrayList;import java.util.List;public class ArrayInitializationExample { public static void main(String[] args) { List multiplesOfSeven = new ArrayList>();for (int i = 1; i <= 100; i++) { if (i % 7 == 0) { multiplesOfSeven.add(i);} } int[] ar...

JAVA中怎么初始化对象数组?
这个数组对象都是现用现初始化的 Animals [] an=new Animals[5];\/\/这只是个对象类型数组的声明 用的时候需要 for(int i=0;i<5;i++)an[i]=new Animals();这样你明白了吧 你前面的那个光声明了数组,但是没有调用Animals的构造函数,你数组里的每个元素都是一个对象,使用前必须要先实例化 ...

关于一个Java的数组定义问题
数组的初始化有 动态初始化int a[]; a=new int [3];静态初始化int a[]={3,9,8};默认初始化int a[]=new int[5];java就是不允许你int[] b = new int[2]{100,200}这样定义,记住就好~~~

数组动态初始化时,数组元素会被赋予一个默认值,简述各数据类型的初始值...
对于java而言:一、各种数值类型的默认值都是0或0.0。具体包括byte、short、int、long的默认值都是0,而float和double类型的默认值都是0.0。二、char类型的默认值是''(即空字符)。三、boolean类型的默认值是false。四、所有引用类型的默认值都是null。

java 中什么叫做静态和非静态。 还有什么叫做静态初始化和动态初始化...
静态就是属于类的,非静态就是不属于类的,属于对象的 静态初始化和动态初始化是创建数组的概念。静态初始化:创建数组时,程序员显式地为数组中的元素赋初值,你不指定数组长度 动态初始化:创建数组时,由系统默认地为数组中的元素赋初值,你指定数组长度 比如:静态初始化就是 int[]a;a = {1,2...

java数组初始化方法有哪些?
数组初始化是Java中一个核心概念。在创建数组后,每个元素会被默认初始化为所对应数据类型的默认值。如,整型数组的默认值为0,布尔型数组的默认值为false,而字符串数组的默认值为null。数组初始化有两种方式:默认初始化和显式初始化。默认初始化在数组创建时自动进行,无需额外操作。例如,创建一个...

java 如何定义数组和初始化
};String[ ][ ] arr3 = { {"tom","American"},{"jack","England"},{"张三","china"} };动态初始化 动态初始化是指在定义时首先通过new 关键字开辟指定大小的存储空间,然后在为数组指定内容 int[ ] arr1 = new int[2 ] ;arr1[0] = 10;arr2[1] = 20;arr3[ 2] = 30;

Java数组初始化,这三种方式有什么区别
创建数组的三种方式:其实分为2类,一种是静态的创建,如方式一。一种是动态的创建,只不过根据写法的不同分为方式二和方式三:[java] view plain copy public static void main(String[] args) { \/\/ 1.方式一 声明 分配空间并赋值 int[] arr1 = {1,2,3};\/\/ 2.方式二 显示初始化 int...

java中的数组未赋值时,默认元素都为零,这样老是会出问题,怎么解决啊...
你问这问题,证明你对数组的静态初始化和动态初始化还不够了解。数组的静态初始化 int[] a={1,2,3,4};动态初始化 int[] intArray;\/\/声明数组 intArray = new int[5];\/\/为数组分配空间 所谓的静态和动态是相对于程序运行是而言的,静态是在程序编译时就初始化好了的,动态初始化是在程序...

相似回答
大家正在搜