开发者社区> 问答> 正文

Java中String和基本类型包装类为什么是值传递

String类型和包装类不是对象吗?有什么好的方法去理解它们为什么是值传递吗?或者说它们是怎么实现的?

展开
收起
蛮大人123 2016-03-05 14:12:13 2758 0
2 条回答
写回答
取消 提交回答
  • 如下内容打印结果为,所以他传递的是值不是引用,如果是引用打印出来的应该是world

    hello
    hello
    public class ReferenceTest {
    
        public static void tryChangeValue(String str) {
            str = "world";
        }
    
        public static void main(String[] args) {
            String str = "hello";
            System.out.println(str);
            tryChangeValue(str);
            System.out.println(str);
        }
    }
    2019-07-17 18:53:25
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    我是这样理解的:
    String类和包装类都是对象,所以必然是引用传递。但是由于String类和包装类都没有提供value对应setter方法,我们无法改变其内容,所以导致我们看起来好像是值传递。

    2019-07-17 18:53:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载