欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

java值参_JAVA赋值和传参理解

发布时间:2023/12/10 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java值参_JAVA赋值和传参理解 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

作者:Intopass

链接:https://www.zhihu.com/question/31203609/answer/50992895

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

第一个例子:基本类型

void foo(int value) {

value = 100;

}

foo(num); // num 没有被改变

第二个例子:没有提供改变自身方法的引用类型

void foo(String text) {

text = "windows";

}

foo(str); // str 也没有被改变

第三个例子:提供了改变自身方法的引用类型

StringBuilder sb = new StringBuilder("iphone");

void foo(StringBuilder builder) {

builder.append("4");

}

foo(sb); // sb 被改变了,变成了"iphone4"。

第四个例子:提供了改变自身方法的引用类型,但是不使用,而是使用赋值运算符。

StringBuilder sb = new StringBuilder("iphone");

void foo(StringBuilder builder) {

builder = new StringBuilder("ipad");

}

foo(sb); // sb 没有被改变,还是 "iphone"。

第三个例子中,sb这个地址指向的是iphone这个对象,调用方法的时候builder这个地址也指向了iphone这个对象,然后两个地址指向的是同一个对象,当然在方法内更改后方法外看到的就跟着更改了。

第四个例子中,sb这个地址指向的是iphone这个对象,调用方法的时候builder这个地址也指向了iphone这个对象,然后执行“builder = new StringBuilder("ipad");”的时候,builder这个地址指向了ipad这个对象,很自然,sb这个对象的值没有发生任何变化。

总结

以上是生活随笔为你收集整理的java值参_JAVA赋值和传参理解的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。