donglin_no1 2010-01-14 10:25
浏览 260
已采纳

java的基础问题

public class Test {

static void  func(int a, String b, String c) {
    a = 1;
    b.trim();
    c = b;
}

public static void main(String[] args) {
    int a = 0;
    String b = "Hello  World   ";
    String c = "OK";
    func(a, b, c);
    System.out.println("" + a + "," + b + "," + c);

}

}

打印结果:0,Hello World ,OK

为什么a、b、c的值都没有变化?
[b]问题补充:[/b]
可以再说的详细点么? 不是很理解

  • 写回答

6条回答 默认 最新

  • mginobili 2010-01-14 10:37
    关注

    因为在java中

    一些基础类型int char long这些在调用方法时是按照值传递的

    而对象则是按照引用传递的

    字符串虽然是对象,但是String是被特殊处理过的,传入方法时只不过是这个String对象的拷贝
    真正的String对象已经创建 是不可修改的

    [code="java"]
    String a = "abc";//创建了一个String对象a,内容为"abc"
    a = "b";//新创建了一个String对象,内容为"b",把这个对象的引用赋给了a
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决