zoukankan      html  css  js  c++  java
  • Java中的字符串及其处理效率

    Java使用两种方式进行参数的传递:

    1、值传递:即对参数的值进行复制,对复制后的副本进行传递。(这类传递针对基础型数据)

    2、引用传递: 又称地址传递,即传递的是参数的地址,而非参数值的一个副本。(String对象、类对象、数组对象、接口对象使用的都是这种方式)

    从两者的机制中可以发现:

    使用值传递时,函数的内部操作并不会改变原来其参数的实际值,因为函数内部操作的只是其的一个副本,并未操作参数的实际值。

    使用引用传递时,函数的内部操作会改变作为参数的对象的实际值,因为引用传递的是对象的实际地址,即使对象的实际值发生了变化。

    !十分注意,Java中String类对象也使用的是引用传递方式,但是其由于实现机制不同,表现出了值传递类参数的性质。

    Example:

     1 public class TestString {
     2     private String myStr="I love you!";
     3     private int myInt=5;
     4     private int[] myIntArray={5,};
     5     public void changeValue(int sourceInt, String sourceString, int[] sourceArray)
     6     {
     7         sourceInt+=sourceInt;
     8         sourceString="I hate you!";
     9         sourceArray[0]=100;
    10         
    11     }
    12     TestString()
    13     {
    14         
    15         print("The Value before calling changeValue method:");
    16         print("myInt="+Integer.toString(myInt)+"; "+"myStr="+myStr+"; "+"myIntArray="+Arrays.toString(myIntArray));
    17         changeValue(myInt, myStr, myIntArray);
    18         print("The String after calling changeString method:");
    19         print("myInt="+Integer.toString(myInt)+"; "+"myStr="+myStr+"; "+"myIntArray="+Arrays.toString(myIntArray));
    20         
    21     }
    22 }

    从输出结果可以发现:

    TestString()对传入其的基本类型:myInt, 字符串类型: myString, 数组类型: myIntArray 都进行了修改。

    修改后再次打印的结果显示,对Int类型和String类型的修改并未成功,对myIntArray类型的参数修改成功。 

  • 相关阅读:
    Unix命令大全
    vs2008 与 IE8出现的兼容性问题
    Java 创建文件、文件夹以及临时文件
    如何修改Wamp中mysql默认空密码
    PAT 乙级真题 1003.数素数
    Tags support in htmlText flash as3
    DelphiXE4 FireMonkey 试玩记录,开发IOS应用 还是移植
    10 Great iphone App Review sites to Promote your Apps!
    HTML tags in textfield
    Delphi XE4 IOS 开发, "No eligible applications were found“
  • 原文地址:https://www.cnblogs.com/airwindow/p/2567341.html
Copyright © 2011-2022 走看看