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将常量池中该对象的引用传给变量

  • 相关阅读:
    如何优雅地结束线程的生命周期
    线程的interrupt()
    线程的join()方法
    守护线程Daemon
    使用多线程模拟一个银行叫号窗口
    多线程介绍
    十八、MySQL 数据排名查询某条数据是总数据的第几条
    spring cloud stream整合
    036线程进程(重要)
    035server端并发聊天
  • 原文地址:https://www.cnblogs.com/YangJM/p/7541504.html
Copyright © 2011-2022 走看看