关于java中数组长度的疑问

thegodofwar 2009-10-18 08:43:49
//JDK1.6下运行;
public class Text {
public static void main(String[] args) {
int a[];
a=new int[6];
a[0]=1;
a[1]=2;
a[2]=3;
a[3]=4;
a[4]=5;
a[5]=6;
int b[]={2,4,5,7};
a=b;
System.out.println(a.length);//4
for(int i=0;i<a.length;i++) {
System.out.println(a[i]);//2 4 5 7
}
}
}
如上述已声明数组a的长度,为何下面程序还可以修改它的长度,是不是JDK1.6和以前的版本有所不同???
...全文
428 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxxzhy 2009-10-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 thegodofwar 的回复:]
已经懂了,很感谢各位兄弟的指点!!
[/Quote]

做做这题,看看是否真的懂了
public static void main(String[] args) throws Exception{
int[] src = new int[5];
int num = 0;
for(int i : src) {
i = num++;
}
for(int i : src) {
System.out.println(i);
}
}
emailfly 2009-10-18
  • 打赏
  • 举报
回复
如上述已声明数组a的长度,为何下面程序还可以修改它的长度,是不是JDK1.6和以前的版本有所不同???
在java中数组的长度是可以更改的
比如:
int a[] =new int[3];
a[0]=1;
a[1]=2;
a[2]=3;
a =new int[5];
这样是可以的
噢不 2009-10-18
  • 打赏
  • 举报
回复
记得结贴啊
thegodofwar 2009-10-18
  • 打赏
  • 举报
回复
已经懂了,很感谢各位兄弟的指点!!
SealedBook 2009-10-18
  • 打赏
  • 举报
回复
只是改变引用了。
thegodofwar 2009-10-18
  • 打赏
  • 举报
回复
非常感谢各位兄弟的指教!!!
xiaolaba222 2009-10-18
  • 打赏
  • 举报
回复
LS说得对啊
loveofmylife 2009-10-18
  • 打赏
  • 举报
回复
晕,引用只是一个名字,比如一个男的叫张三,之后这个男的觉得这个名字太土,就不要了,给了一个女孩,这个女孩又叫张三了,但你能说现在的张三是一个男孩吗
你把引用B引用的地址给了A,后面的A代表的都是原来B引用的数组,而不是改变了原来A所引用的数组,其实此时原来A引用的数组已经被gc了
swandragon 2009-10-18
  • 打赏
  • 举报
回复
a原来指向数组{1,2,3,4,5,6}
a=b;之后a指向了b指向的数组{2,4,5,7}
所以a的长度就变了
这是正常的,跟版本没关系
amdgaming 2009-10-18
  • 打赏
  • 举报
回复
a本来指向 一个 地方,现在 被你修改了 指向另一个地方

没有什么问题啊

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧