zoukankan      html  css  js  c++  java
  • java中对象作为参数传递给一个方法,到底是值传递,还是引用传递

    java只有按值传递:基本类型  值传递;引用类型,地址值传递,所以叫值传递。 

    基本类型:传递的是值的拷贝,也就是说传递后就互不相关了,也就是说,不过副函数的副本如何变化,主本永远不会被影响。 

    引用类型:传递的是引用地址值,有可能会被影响。 (如下)

        如果是对象的话,就是将引用的值复制一份给方法当参数。如果是根据引用把堆里的对象修改了,那么对象真被修改了,

      不过不是被创建赋值给的那个引用修改的,是方法里的一个复制的引用副本给修改的。

    String:具有不可变。是特殊的引用类型,其作用跟基本类型一样,传递后不相关。 

    例:

    public class StudySetAndGet {                                        
        public static void main(String[] args) {                         
            Person person=new Person();                                  
            String bob="Bob";                                            
            person.setName(bob);                                         
            System.out.println(bob.hashCode());                          
            System.out.println(person.getName());                        
            bob="Alice";
         //String:具有不可变。是特殊的引用类型,其作用跟基本类型一样,传递后不相关。  System.out.println(bob.hashCode()); System.out.println(person.getName()); String[] fullname
    =new String[]{"Homer","Simpson"}; person.setFullName(fullname); System.out.println(fullname.hashCode()); System.out.println(person.getFullName()); fullname[0]="Bart"; //传入的是地址。所以改变内部的值,下面也会跟着改变(hashCode值不变) System.out.println(fullname.hashCode()); System.out.println(person.getFullName()); } } class Person{ private String name; private String[] fullName; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getFullName() { return this.fullName[0]+" "+this.fullName[1]; } public void setFullName(String[] fullName) { this.fullName = fullName; } }
  • 相关阅读:
    多线程中的wait与sleep到底谁释放了锁?
    Java并发编程:volatile关键字解析
    Spring的bean为什么是单例的?
    Java学习之反射
    Http && Https(绕过证书) 请求工具类 (Java)
    Java工具-检验ftp服务器的指定文件是否存在
    文件读取FileUtil工具类 亲测可用
    MyBatis 遇到的报错
    Mac终端 mysql Operation not permitted错误解决方案
    Kubernetes---修改证书可用年限
  • 原文地址:https://www.cnblogs.com/xing-29391/p/14984899.html
Copyright © 2011-2022 走看看