zoukankan      html  css  js  c++  java
  • (原)String、StringBuilder、StringBuffer作为形参

    今天在刷一道算法题时,突然遇到StringBuilder作为形参和String作为形参时,最终得出来的结果不同。故尝试了几个demo看看它们之间的区别。

    当String类型作为参数时,

     1 public class Test
     2 {
     3     public static void main(String[] args)
     4     {
     5         String sb=new String();
     6         Test.TestString(sb);
     7         System.out.println("实参为:    "+sb.toString());
     8         
     9     }
    10     
    11     public static void TestString(String s)
    12     {
    13         s="5";
    14         System.out.println("形参为:    "+s);
    15     }
    16 }

    输出结果为:

    即说明形参的改变并不影响实参的改变,本质上是值的传递。

    当StringBuilder类型作为参数时,

     1 public class Test
     2 {
     3     public static void main(String[] args)
     4     {
     5         StringBuilder sb=new StringBuilder();
     6         Test.TestString(sb);
     7         System.out.println("实参为:    "+sb.toString());
     8         
     9     }
    10     
    11     public static void TestString(StringBuilder s)
    12     {
    13         s.append("5");
    14         System.out.println("形参为:    "+s);
    15     }
    16 }

    说明形参的改变会影响实参的改变,即引用的传递

     1 public class Test
     2 {
     3     public static void main(String[] args)
     4     {
     5         StringBuffer sb=new StringBuffer();
     6         Test.TestString(sb);
     7         System.out.println("实参为:    "+sb.toString());
     8         
     9     }
    10     
    11     public static void TestString(StringBuffer s)
    12     {
    13         s.append("5");
    14         System.out.println("形参为:    "+s);
    15     }
    16 }

    说明形参的改变会影响实参的改变,即引用的传递

    其区别在于:String类不可变

    而StringBuilder与StringBuffer可变

    默认创建了一个长度为16的数组。

    故在String作为形参时,由于String的不可变性,在作形参时形参和实参分别指向了不同的字符串,由于StringBuilder的可变性,形参还是在实参的基础上继续添加新的字符串。

  • 相关阅读:
    CentOS7源码安装Nginx
    CentOS7 源码安装PHP
    Linux系统终端命令提示符设置
    蓝绿发布方案
    datatable 列名重新排序
    C#后台解析 json 动态解析 通用(Dictionary)
    调用webservice 的时候没法输入参数
    soapui 调用wsdl 步骤以及出现的问题
    多文件压缩
    老毛桃+360急救箱结合(转)
  • 原文地址:https://www.cnblogs.com/xh0102/p/5803530.html
Copyright © 2011-2022 走看看