导航:首页 > 编程语言 > java对象数组初始化

java对象数组初始化

发布时间:2023-05-06 13:48:18

java中如何初始化对象数组,并增加元素

class TestArray {
int[] array;
int length = 0;

public TestArray() {
array = new int[10000];
}

public void addItem(int value) {
if (length > array.length) {
throw new RuntimeException("数组越界");
}
array[++length] = value;
}
public int get(int index) {
return array[index];
}
}

② java数组怎么初始化不能限制长度

数组拿如初始化必须初始山羡化数组长度,这点不可改变。

如果需要不限制长度的,可以使用ArrayList——动逗敏拍态数组。
直接给代码并不现实。你可以先学习下动态数组,搞清楚原理。

③ java对象数组初始化空指针异常

我把你的类调正颤含粗了一下,因茄镇为你的student里面的数组没有没有初始化,所以空指针了。

public class TestMain {
public static void main(String args[]) {
Student[] studentGroup = null;
int[] id1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
String[] name1 = { "a", "b", "老首c", "d", "e", "f", "g", "h", "i", "j" };
studentGroup = new Student[name1.length];
for (int i = 0; i < 10; i++) {
studentGroup[i] = new Student(id1[i], name1[i]);
}
for (int i = 0; i < studentGroup.length; i++) {
System.out.print(studentGroup[i].getId());
System.out.println(studentGroup[i].getName());
}
}
}

public class Student {
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private int id;
private String name;
public Student(int i, String n) {
this.id = i;
this.name = n;
}
}

④ Java数组的默认初始化值

如果是基本数据类型则默认是和一般变量的初始值一样,
如果是对象类型则为空

⑤ java对象数组初始化报错 java.lang.NullPointerException

题主你并没有实例化变量MsgStorage,只是声明了一下它,这样会导致程序并没有给它分配内存空间,所以会出现 NullPointerException。应桐稿将第 7 行改为

public基或MessageListMsgStorage=newMessageList();

或在你的 MessageBean 类的Constructor 中添加一行

this.MsgStorage=newMessageList();

但是这样会导致你的代码进入死循环,因为你每初始化搏轮伍一个 MessageBean 时就会初始化一个 MessageList,但初始化 MessageList 时又会初始化 10 个 MessageBean,初始化这 10 个 MessageBean 时又要求初始化 MessageList...,这样是永远执行不完的。 所以建议修改一下你的代码逻辑。

⑥ Java中一维数组定义及初始化 int []a; a[]={1,2,3}; 是错的,为什么

如果你熟悉C/C++,Java数组的工作原理与它们不同。Java中的数组是对象,这就意味着与C++中的数组的根本不同.
1、数组不是集合,它只能保存同种类型的多个原始类型或者对象的引用。数组保存的仅仅是对象的引用,而不是对象本身。数组声明的两种形式:一、int[] arr; 二、int arr[]; 推荐使用前者,这是一个int数组对象,而不是一个int原始类型。
2、数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
4、在数组声明中包含数组长度永远是不合法的!如:int[5] arr; 。因为,声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
5、在数组构造的时候必须指定长度,因为JVM要知道需要在堆上分配多少空间。例:int[] arr = new int[5];
7、一维数组的构造。形如:String[] sa = new String[5]; 或者分成两句:String[] sa; sa = new String[5];
8、原始类型数组元素的默认值。对于原始类型数组,在用new构造完成而没有初始化时,JVM自动对其进行初始化。默认值:byte、short、 int、long--0 float--0.0f double--0.0 boolean--false char--'"u0000'。(无论该数组是成员变量还是局部变量)
10、对象类型的数组虽然被默认初始化了,但是并没有调用其构造函数。也就是说:Car[] myCar = new Car[10];只创建了一个myCar数组对象!并没有创建Car对象的任何实例!
11、多维数组的构造。float[][] ratings = new float[9][]; 第一维的长度必须给出,其余的可以不写,因为JVM只需要知道赋给变量ratings的对象的长度。
12、数组索引的范围。数组中各个元素的索引是从0开始的,到length-1。每个数组对象都有一个length属性,它保存了该数组对象的长度。(注意和String对象的length()方法区分开来)
13、Java有数组下标检查,当访问超出索引范围时,将产生运行时异常。注意,这种下标检查不是在编译时刻进行的,而是在运行时!也就是说int[] arr = new int[10]; arr[100] = 100; 这么明显的错误可以通过编译,但在运行时抛出!
Java中的数组中既可以存储基本的值类型,也可以存储对象。对象数组和原始数据类型数组在使用方法上几乎是完全一致的,唯一的差别在于对象数组容纳的是引用而原始数据类型数组容纳的是具体的数值。在讨论关于数组的问题时,一定要先确定数组中存储的是基本值类型还是对象。特别是在调试程序时,要注意这方面。

⑦ java中如何初始化对象数组,并增加元素

创建数组对象:int
a
=
new
int[3]
这里new指定三个操作:在堆区运皮为数组分配空间;为数组每个元素附默认值;返回数组对象的引用。
数组对象行辩一旦创建好了就不能改变其长度,new操作必须指定数组长度。数组长度可以为0表示无元旁带差素,直接初始化不能指定长度,例如:int
a
=
{1,2,3}

⑧ JAVA中怎么初始化对象数组

你这个试试对对象数组的一个声明,并没有示例话,所以会报空指针异常
这个数组对象都是现用现初始化的
Animals [] an=new Animals[5];//这只是个对象类型数组的声明
用的时候需要
for(int i=0;i<5;i++)
an[i]=new Animals();
这样你明白了吧
你前面的那个光声明了数组,但是没有调用Animals的构造函数,你数组里的每个元素都是一个对象,使用前必须要先实例化
如果你只是用户输入长度,
Animals [] an=new Animals[n];
声明时是可以用变量的
或者你直接Animals [] an=new Animals[100];定义一个大数组,要用的时候再new Animals();实例化,或者用LinkedList<Animals> an=new LinkedList<Animals>();定义一个动态数组

⑨ java数组类初始化如何赋值

Comparable[] s={new Comparable(3),new Comparable(20),new Comparable(13)};
估计也只能这样子了.这么写不能直接指定数组的长度.
数据特别多的话,最好是把你的数据用个int数组包装起来,再写个循环.

⑩ JAVA中数组初始化时用new与不用new有区别吗

1、不同于String类,String由于实现了常量池
所以new
和不new
有区别:new的话,引用变量指向堆区。不new的话,引用变量指向常量池。
2、对于数组的定义,初始化时用new与不用new
没区别,只是两种方式罢了,因为数组是引用数据类型,建立对象时,无论用不用new,数组实体都是放在堆内存中,引用变量放在栈内存。

阅读全文

与java对象数组初始化相关的资料

热点内容
基于单片机的老年人健康监测系统 浏览:702
python入门经典pdf下载 浏览:13
东芝变频2p空调压缩机 浏览:223
自家wifi怎么能加密 浏览:642
红米k40加密门禁卡 浏览:845
什么样的源码好看 浏览:156
手机主服务器有什么用 浏览:610
程序编写命令 浏览:597
android发送心跳包 浏览:385
指标源码和原理 浏览:700
汽车空调压缩吸盘 浏览:208
崽崽因app版本不同不能邀请怎么办 浏览:686
poa算法得到的解为全局最优解 浏览:926
python符号表达式 浏览:34
威驰压缩机继电器 浏览:871
华为手机怎么设置移动数据app 浏览:959
空调压缩机哪的厂家多 浏览:390
手指速算法24加7怎么算 浏览:139
如何用python写vlookup函数 浏览:798
社保加密狗厂商 浏览:216