zoukankan      html  css  js  c++  java
  • java传值和通过引用传递

    第一次使用int实验:

    public class TTEST {
    	private static   List<UserEntity> mList = new LinkedList<UserEntity>(); 
    	public static void main(String[] args) {
    		int a = 0;
    		changeA(a);
    		System.out.println("a = "+a);
    	}
    	
    	public static void changeA(int a){
    		a = 1;
    	}
    }

    输出:a = 0

    这说明对于int值是按值传递。其它几个基本类型也是如此。

    再使用自定义的类UserEntity来实验:

    public class UserEntity {
    	private String name;
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    }
    

    public class TTEST {
    	public static void main(String[] args) {
    		UserEntity userEntity = new UserEntity();
    		userEntity.setName("猿猴");
    		changeName(userEntity);
    		System.out.println("name = "+userEntity.getName());
    	}
    	
    	public static void changeName(UserEntity userEntity){
    		userEntity.setName("忽必烈");
    	}
    }
    
    输出:name = 忽必烈

    我们再来使用一个linkedList<Object>来实验:

    import java.util.LinkedList;
    import java.util.List;
    
    public class TTEST {
    	 private static List<UserEntity> mList = new LinkedList<UserEntity>(); 
    	public static void main(String[] args) {
    		UserEntity userEntity = new UserEntity();
    		userEntity.setName("石头");
    		addUser(userEntity);
    		System.out.println("name = "+userEntity.getName());
    	}
    	
    	public static void addUser(UserEntity userEntity){
    		mList.add(userEntity);
    		mList.get(0).setName("猿猴");
    	}
    }
    输出:name = 猿猴

    这说明在使用我们自定义的类时,是按引用传递的。


    接着。再来使用String实验:

    public class TTEST {
    	public static void main(String[] args) {
    		String str= "開始的";
    		changeStr(str);
    		System.out.println("str = "+str);
    	}
    	
    	public static void changeStr(String str){
    		str = "改变的";
    	}
    }
    输出:str = 開始的

    用Integer做实验也会发现没有改变。

    说明我们依照java内置的对象也是值传递。因此我们能够做例如以下总结:

    仅仅要我们自定义的类创建的对象。都是引用传递,系统内置基本类型和对象是通过转移。


    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    C++ XML解析之TinyXML篇[转]
    TinyXML:一个优秀的C++ XML解析器[转]
    nginx 出现413 Request Entity Too Large问题的解决方法
    redis配置认证密码
    《Discuz安装时候出现乱码 -- 问题解决方法》
    MySQL创建用户与授权
    CentOS 7 安装mysql
    setfacl命令 来自: http://man.linuxde.net/setfacl
    install pip3 for python 3.x
    自己制作ssl证书:自己签发免费ssl证书,为nginx生成自签名ssl证书
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4677179.html
Copyright © 2011-2022 走看看