java string是值传递还是引用传递
展开全部
String 是 java 中的一个类,所以可以认为是引用传递。
假设有一个 String 的实例 str = “abc”, 当你使用某个方法去调用 str 的时候,java 会新建一个实例名 str', 并且 str' 与 str 一样指向 “abc”所在的地址。
但是,如果在该方法中,进行 str' = "dd" 的操作,并不会改变 str 所指内容(str 还是 “abc”)。这是因为 java 中 String 的特殊性,String 是 final 修饰的,它是不可改变的。对于 String 的修改实际上是对其所指的地址的改变,而不是改变当前所指地址中的内容。
当使用 str' = "dd" 这个语句的时候。java 不会把原先的 “abc” 修改为 “dd”, 而是会重新开辟一块内存空间,把该内存修改为 “dd”,然后把这个地址给 str'。这种改变就不会影响到 str.
假设有一个 String 的实例 str = “abc”, 当你使用某个方法去调用 str 的时候,java 会新建一个实例名 str', 并且 str' 与 str 一样指向 “abc”所在的地址。
但是,如果在该方法中,进行 str' = "dd" 的操作,并不会改变 str 所指内容(str 还是 “abc”)。这是因为 java 中 String 的特殊性,String 是 final 修饰的,它是不可改变的。对于 String 的修改实际上是对其所指的地址的改变,而不是改变当前所指地址中的内容。
当使用 str' = "dd" 这个语句的时候。java 不会把原先的 “abc” 修改为 “dd”, 而是会重新开辟一块内存空间,把该内存修改为 “dd”,然后把这个地址给 str'。这种改变就不会影响到 str.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,请注意java语言里不存在引用传递这个说法,所以不管是对象还是基本数据类型,都是值传递
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询