前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >按值传递还是引用传递?

按值传递还是引用传递?

作者头像
晚上没宵夜
发布2020-05-06 14:36:58
1.1K0
发布2020-05-06 14:36:58
举报

笔者一直错在传递的理解,现在重复记下笔记,加深印象 首篇相关传递的笔记 https://cloud.tencent.com/developer/article/1596896

1. Java是按值传递,即将栈中的值进行按值传递(创建副本)
2. 当一个对象实例作为参数时,参数的值是该对象的引用的一个副本,该副本指向同一个堆实例

1. 基本类型

代码语言:javascript
复制
public static void main(String[] args) throws IOException {
    int num = 0;
    change(num);  // num = 0
}

public static void change(int n){
    n = 1;
}

2. String类型

代码语言:javascript
复制
public static void main(String[] args) throws IOException {
    
    String str = "default";
    str = "change";  // str = "change"
    
}

3. String类型变形

代码语言:javascript
复制
public static void main(String[] args) throws IOException {
    String str = "default";
    change(str);  // str = "default"
}

public static void change(String s){
    s = "change";
}

4. 引用类型

改变u的指向不会影响user,但如果改变u指向实例的内容name,那么就会影响到user了

代码语言:javascript
复制
public static void main(String[] args) throws IOException {
    User user = new User("default");
    change(user);  // user.name = "change"
}

public static void change(User u){
    u.name =  "change";
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Java是按值传递,即将栈中的值进行按值传递(创建副本)
  • 2. 当一个对象实例作为参数时,参数的值是该对象的引用的一个副本,该副本指向同一个堆实例
  • 1. 基本类型
  • 2. String类型
  • 3. String类型变形
  • 4. 引用类型
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档