小程序的输出结果

已删 2012-06-25 08:47:17
第一题:

public class Test1 {
public static void changeStr(String str) {
str = "welcome";
}

public static void main(String[] args) {
String str = "1234";
changeStr(str);
System.out.println(str);
}
}


这个输出结果是1234,看解答是了解局部变量,那个变量是局部变量啊?我怎么看都一样啊?


第二题:

public class Test
{
private int i=getValue();//第2行
private int j = 10;
int getValue(){
return j;
}
public static void main(String[] args) {
System.out.print(new Test().i);//第9行

}
}
求解释这个程序的输出结果
...全文
251 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
已删 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

实例变量初始化是先依次赋默认值,再依次赋用户定义的初始值
这个例子中对象实例化时,先依次给i和j赋默认值,都是0,然后依次给i和j赋初始值,i的初始值是getValue(),此时j还是0,所以getValue()方法的返回值是0,即把0赋给i,然后给j赋上初始值10
[/Quote]

那就是实例化这个类的时候,把这个对象的基本数据类型变量都先初始化为1??java中都是这样吗?
xhm0616 2012-06-26
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
实例变量初始化是先依次赋默认值,再依次赋用户定义的初始值
这个例子中对象实例化时,先依次给i和j赋默认值,都是0,然后依次给i和j赋初始值,i的初始值是getValue(),此时j还是0,所以getValue()方法的返回值是0,即把0赋给i,然后给j赋上初始值10
[/Quote]
++1
百闯 2012-06-26
  • 打赏
  • 举报
回复
第一题 定义在方法里面就是 局部变量 str就是局部变量
第二题 输出结果为0 默认值

实例变量初始化是先依次赋默认值,再依次赋用户定义的初始值
这个例子中对象实例化时,先依次给i和j赋默认值,都是0,然后依次给i和j赋初始值,i的初始值是getValue(),此时j还是0,所以getValue()方法的返回值是0,即把0赋给i,然后给j赋上初始值10

student-ai 2012-06-25
  • 打赏
  • 举报
回复
正解。
[Quote=引用 1 楼 的回复:]

第一题:
首先要知道java的传递方式是引用值传递。
当你调用changeStr(str)方法的时候,就会指向另外一个堆内存。方法执行完以后,指针就会断掉重新指向原来的str。所以输出就是1234.
[/Quote]
戏子 2012-06-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

实例变量初始化是先依次赋默认值,再依次赋用户定义的初始值
这个例子中对象实例化时,先依次给i和j赋默认值,都是0,然后依次给i和j赋初始值,i的初始值是getValue(),此时j还是0,所以getValue()方法的返回值是0,即把0赋给i,然后给j赋上初始值10
[/Quote]
++1
yousun4688 2012-06-25
  • 打赏
  • 举报
回复
第二个因为给i的不能确定,所以只能使用默认的值,应该先声明j
mimitracely 2012-06-25
  • 打赏
  • 举报
回复
第一题是差u难题的是引用,不会改变原来的str的值,所以还是1234
淡定的峰哥 2012-06-25
  • 打赏
  • 举报
回复
实例变量初始化是先依次赋默认值,再依次赋用户定义的初始值
这个例子中对象实例化时,先依次给i和j赋默认值,都是0,然后依次给i和j赋初始值,i的初始值是getValue(),此时j还是0,所以getValue()方法的返回值是0,即把0赋给i,然后给j赋上初始值10
杰仔仔哦 2012-06-25
  • 打赏
  • 举报
回复
第一题:
首先要知道java的传递方式是引用值传递。
当你调用changeStr(str)方法的时候,就会指向另外一个堆内存。方法执行完以后,指针就会断掉重新指向原来的str。所以输出就是1234.

62,621

社区成员

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

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