各位能不能给我讲讲这道题为什么选A呢??为什么不选C呢?急

wulingdongliu 2002-12-18 01:23:08
1. public class X {
2. public static void main (String[]args) {
2. string s = new string (“Hello”);
3. modify(s);
4. System.out.printIn(s);
5. }
7.
8. public static void modify (String s) {
9. s += “world!”;
10. }
11. }

What is the result?

*A.The program runs and prints “Hello”.
B.An error causes compilation to fail.
C.The program runs and prints “Hello world!”.
D.The program runs but aborts with an exception.
...全文
84 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
freexin 2002-12-22
  • 打赏
  • 举报
回复
只要把基本类型和String看成是值传递[传递了自身的一个复制]
其他实例类型包括数组看成引用传递[传递了引用指针的Copy]就可以解释了
wulingdongliu 2002-12-22
  • 打赏
  • 举报
回复
看来这个问题还是挺难的问题啊!!
windancery 2002-12-19
  • 打赏
  • 举报
回复
在java钟向方法传递一个简单类型时,传递的是一个值,当传递的是一个对象时,则按引用传递。
1题中的String是个特例,因为String被设计成“只读类”,参照JDK文档可以看到能够修改String的每个方法实际都创建和返回了一个崭新的String对象,新对象里包含了修改过的信息——原来的String是原封未动的!所以...
wulingdongliu 2002-12-18
  • 打赏
  • 举报
回复
1. public class X {
2. public static void main (String[]args) {
2. int [] a = new int [1]
3. modify(a);
4. System.out.printIn(a[0]);
5. }
7.
9. public static void modify (int[] a) {
10. a[0] ++;
11. }
12. }
What is the result?

A. The program runs and prints “0”.
B. The program runs and prints “1”.
C. The program runs but aborts with an exception.
D. An error “possible undefined variable” at line 4 causes compilation to fail.
E. An error “possible undefined variable” at line 9 causes compilation to fail.
可是这道题怎么选B呢?这道题和上面那道很像啊!为什么不选A?
windancery 2002-12-18
  • 打赏
  • 举报
回复
java的method都是值传递的,因为它没有指针
caoze 2002-12-18
  • 打赏
  • 举报
回复
s是方法main内的变量。
方法modify只是执行了其方法内的一个过程,并没有改变main方法体内的变量 s 的值。
故modify(s);一句并没有起到实际作用。

51,412

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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