0
点赞
收藏
分享

微信扫一扫

java传递的是引用,传递的是句柄,改变值,值传递的问题

一叶轻舟okok 2023-04-27 阅读 60


public class Example {
 String str=new String("good");
 char[] ch={'a','b','c'};
 public static void main(String[] args){
  Example ex=new Example();
  ex.change(ex.str, ex.ch);
  System.out.println(ex.str+" and");
  System.out.println(ex.ch);
 }
 public void change(String str,char ch[]){
  str="test ok";
  ch[0]='g';
 }
}

 

这个题的输出结果为

good and
gbc

为什么str的值没变

而ch[]的值变了呢

答案是Java变量传递的是“句柄”

句柄,就是一个引用,相当于C语言里的指针

java对象指向的是内存中的一个地址

 

特此更正:java变量传递是值传递,以前理解有错误,特别感谢rrsy23给予斧正

 

黑色头发  http://heisetoufa.iteye.com

举报

相关推荐

0 条评论