Ⅰ 数组名的地址 java
/* a 的 地址为:[I@a90653 b的 地址为:[I@de6ced */ 这个并不是乱码啊
Ⅱ java中的数组存在哪
数组在堆内存。引用是在栈。
因为数组是一个引用类型。所以传递进去的是它们的引用,故在方法中互换了它们的值,也必然影响到它们原来的值.
Ⅲ Java输出对象的数组是地址,如何输出其值
可以重写Student类中的toString()方法,以下例子仅作为参考:
classStudent
{
//该类的实例变量
publicStringno;
publicStringname;
publicStringsex;
publicintyuwen;
publicintshuxue;
publicintyingyu;
publicintlizong;
//创建构造器
publicStudent(Stringno,Stringname,Stringsex,intyuwen,intshuxue,intyingyu,intlizong){
this.no=no;
this.name=name;
this.sex=sex;
this.yuwen=yuwen;
this.shuxue=shuxue;
this.yingyu=yingyu;
this.lizong=lizong;
}
//重写toString()方法,该方法输出对象
publicStringtoString(){
return"Student[no:"+no+",name:"+name+",sex:"+sex+",yuwen:"+yuwen+",shuxue:"+shuxue+",yingyu:"+yingyu+",lizong:"+lizong+"]";
}
}
publicclassStudent1
{
publicstaticvoidmain(String[]args)
{
Studentstu1=newStudent("001","Zhang","男",65,70,53,80);
Studentstu2=newStudent("002","Cheng","女",75,75,85,78);
Studentstu3=newStudent("003","Li","女",68,45,95,72);
Studentstu4=newStudent("004","Cha","男",67,70,64,62);
Studentstu5=newStudent("005","Xun","男",65,90,78,85);
Student[]st={stu1,stu2,stu3,stu4,stu5};
for(Studentc:st){
System.out.println(c);
}
}
}
Ⅳ JAVA中的二维数组地址的疑问
这两个本来就不一样,不是一个东西,地址肯定不一样。
首先,arr是一个Object(对象),所以它会有一个独立的内存地址
arr[0]是一个数组,这个数组也是一个Object(对象),所以它也会有一个独立的内存地址。
所谓二维数组,就是一个一维数组,然后在这个一维数组中,每个元素又是一个数组,一个数组是一个Object,所以,每个元素存放的实际上是它对应Object的内存地址,而不是真正意义上的数组
说了这么多,不知道你明白了没有?
Ⅳ java 编程 数组的地址问题
直接打印的是引用地址
你第九行报错是因为你定义了数组类型为Integer,你存一个Double当然会抛异常
Ⅵ 怎么提取java中数组的地址
Java数组的内存地址是无法获取的,Java的数组对象都是在运行时期动态分配的。
Ⅶ JAVA数组地址传递问题!
在Java中,参数的传递严格意义上讲都是传值的,只不过简单很容易分清楚。而对于对象,有些复杂。
首先,在Java中是先声明一个类的变量。然后,用类生成一个类的实例,也就是在内存中的类的实例区域,最后把这个区域的指针赋给类的这个变量。注意,变量中存的是指向对象的指针。
若是按传址传参数,是要改变这个对象变量所指的内存对象区域,也就是要在方法内把新对象赋给方法外的对象变量。但是,这在Java中办不到。因为Java是把对象变量中的对象指针传入方法,并没有把变量本身的地址传入方法;在方法中,会生成新变量接受这个对象的指针。所以,在Java方法中,可以改变当前对象中的内容,却不能改变方法外边变量的值,即所指向的对象。对于传值、传址的分析就是为了在应用中少犯错误。其他是次要的。
明白没有,是传值而不是传值的地址!地址没有变,C当然不变了!
Ⅷ 数组的地址是不是等于数组第一个元素的地址
在java语法中,数组的地址等于数组第一个元素的地址。
一旦通过int[] intArray = new int[]{1,1,2}创建一个int类型的数组之后,就会首先在堆内存中分配三个连续的地址空间,第一个地址也便是数组指向的地址。