java 给数组赋值

java中给用数组名直接给另一数组赋值是怎么回事呀?我知道两数组长度可以不相同,可是不知道类型是不是要求一致(我知道相同类的对象间可以直接赋值),其内在机制是什么呀,敢问... java中给用数组名直接给另一数组赋值是怎么回事呀?我知道两数组长度可以不相同,可是不知道类型是不是要求一致(我知道相同类的对象间可以直接赋值),其内在机制是什么呀,敢问各位大虾!小弟谢过。 展开
 我来答
xiangyuan8603
2009-03-26 · TA获得超过117个赞
知道答主
回答量:60
采纳率:0%
帮助的人:0
展开全部
当用一个数组名直接给另一个数组赋值时,是相当于赋了一个引用,此时,这两个变量是指向同一个对象,也就是说指向同一块内存空间,当你修改其中一个变量的值时,其他那个变量的值也随着改变了。

int [] a=new int[10];
int [] b=a;
for(int i=0;i<10;i++){
b[i]=i;
}

此时a和b指向同一个内存空间,所以当打印a,b数组时,他们的结果应该是一样的,尽管没有对a数组进行初始化。当然,数组a和数组b的类型必须是一致的才行啊!
fantasy316
推荐于2017-09-07 · TA获得超过1024个赞
知道小有建树答主
回答量:616
采纳率:0%
帮助的人:358万
展开全部
还是用例子来说话吧:

比如
A a[];//声明一个数组引用,它指向的数组的元素必须是A型或者A的子类型。
a=new A[10];//创建一个A类型数组,并且让引用a指向这个数组。
A=new B[100];//创建一个B类型数组,并且让引用a指向这个数组,这个时候B必须是A的子类,否则编译不通过。
从上面看到,长度是在数组被创建时才指定的。数据引用本身只知道自己指向的是什么类型的数组。

实际上,java的数组和对象有着许多相似的地方,完全可以把数组当作对象来看。长度length不过是数组的一个属性,不同的数组对象此属性可相同也可以不同。
对象的引用之间,只要类型相同,就可以相互赋值,数组也是这样的。

2楼的真是肤浅,如果数组没用的话,java还保留它干嘛。在读取文件时还不是要经常用到数组来缓冲吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冼宜然阎文
2019-08-02 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:27%
帮助的人:604万
展开全部
当用一个数组名直接给另一个数组赋值时,是相当于赋了一个引用,此时,这两个变量是指向同一个对象,也就是说指向同一块内存空间,当你修改其中一个变量的值时,其他那个变量的值也随着改变了。int
[]
a=new
int[10];int
[]
b=a;for(int
i=0;i<10;i++){
b[i]=i;}此时a和b指向同一个内存空间,所以当打印a,b数组时,他们的结果应该是一样的,尽管没有对a数组进行初始化。当然,数组a和数组b的类型必须是一致的才行啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
归湘云堂璇
游戏玩家

2019-12-18 · 游戏我都懂点儿,问我就对了
知道大有可为答主
回答量:9545
采纳率:30%
帮助的人:643万
展开全部
当用一个数组名直接给另一个数组赋值时,是相当于赋了一个引用,此时,这两个变量是指向同一个对象,也就是说指向同一块内存空间,当你修改其中一个变量的值时,其他那个变量的值也随着改变了。
int
[]
a=new
int[10];
int
[]
b=a;
for(int
i=0;i<10;i++){
b[i]=i;
}
此时a和b指向同一个内存空间,所以当打印a,b数组时,他们的结果应该是一样的,尽管没有对a数组进行初始化。当然,数组a和数组b的类型必须是一致的才行啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bdef2f511
2009-03-24 · TA获得超过311个赞
知道答主
回答量:185
采纳率:0%
帮助的人:0
展开全部
声明数组:数组元素的类型 数组名字【】;eg:float boy 【】;
创建数组:数组名字=new 数组元素的类型【数组元素的个数】;boy=new
float【4】;
赋值直接赋
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式