zoukankan      html  css  js  c++  java
  • java的参数传递

    1按值传递:传递的是原始值的副本,而不是原始值的内存地址

         基本数据类型是传原始值的副本

    class Test02
    
      {
    
      public static void main(String[] args)
    
      {
    
      int i=5;
    
      int i2=i;
    
      i2=6;
    
      System.out.println(i);
    
      }
    
      }

    输出结果是5

    2按引用传递;传递的是原始值的内存地址,而不是原始值的副本

        对象类型传的是原始值的引用

    class Test01
    
      {
    
      public static void main(String[] args)
    
      {
    
      StringBuffer s= new StringBuffer("good");
    
      StringBuffer s2=s;
    
      s2.append(" afternoon.");
    
      System.out.println(s);
    
      }
    
      }

    输出结果是:good afernoon

    3.String类型因为没有提供自身修改的函数,每次操作都是新生成一个String对象,所以要特殊对待。可以认为是传值。

      创建一个String,内部操作是

        1先在常量池查找有无该原始值 无则创建

        2在堆中创建一个该原始值的对象

        3将堆中该对象的引用传给变量

      当修改Strng对象的值时,内部操作是

        1先在常量池查找有无该原始值 无则创建

        2将常量池中该对象的引用传给变量

  • 相关阅读:
    hdu 1863 畅通工程
    poj 2524 Ubiquitous Religions
    04 Linux终端命令01
    05 linux中yum源报错
    Filterg过滤器和Listener监听器
    03 Centos的文件目录、远程连接工具及快照操作
    02 安装虚拟机以及设置虚拟机网卡信息
    01VM虚拟机介绍及配置虚拟机网卡信息
    Jstl表达式
    EL表达式
  • 原文地址:https://www.cnblogs.com/YangJM/p/7541504.html
Copyright © 2011-2022 走看看