zoukankan      html  css  js  c++  java
  • AJPFX关于StringBuffer,StringBuilder类总结(二)

    StringBuffer,StringBuilder类 总结2
    需要注意的知识点:
    1):
    // String -- >StringBuffer
            String s = "hello";
            // 注意:不能把字符串的值直接赋值给StringBuffer
            // StringBuffer sb = "hello";
            // StringBuffer sb = s;
            // 方式1:通过构造方法
            StringBuffer sb = new StringBuffer(s);
            // 方式2:通过append()方法

            StringBuffer sb2 = new StringBuffer();
            sb2.append(s);





    // StringBuffer -- String
            StringBuffer buffer = new StringBuffer("java");
            // String(StringBuffer buffer)
            // 方式1:通过构造方法
            String str = new String(buffer);
            // 方式2:通过toString()方法
            String str2 = buffer.toString();

    3)
    * StringBuffer和String的区别?
    * 前者长度和内容可变,后者不可变。
    * 如果使用前者做字符串的拼接,不会浪费太多的资源。


    4) String和StringBuffer相互转换
                String -- StringBuffer
                    构造方法
                StringBuffer -- String
                    toString()方法
    5)
    * 面试题:
    * 1:String,StringBuffer,StringBuilder的区别?
    * A:String是内容不可变的,而StringBuffer,StringBuilder都是内容可变的。
    * B:StringBuffer是同步的,数据安全,效率低;StringBuilder是不同步的,数据不安全,效率高


    6):StringBuffer和数组的区别?
    * 二者都可以看出是一个容器,装其他的数据。
    * 但是呢,StringBuffer的数据最终是一个字符串数据。
    * 而数组可以放置多种数据,但必须是同一种数据类型的。

    7):形式参数问题
    * String作为参数传递
    * StringBuffer作为参数传递 

    * 形式参数:
    *         基本类型:形式参数的改变不影响实际参数
    *         引用类型:形式参数的改变直接影响实际参数

    * 注意:
    *         String作为参数传递,效果和基本类型作为参数传递是一样的。
    */

    public static void main(String[] args) {
            String s1 = "hello";
            String s2 = "world";
            System.out.println(s1 + "---" + s2);// hello---world
            change(s1, s2);
            System.out.println(s1 + "---" + s2);// hello---world


            StringBuffer sb1 = new StringBuffer("hello");
            StringBuffer sb2 = new StringBuffer("world");
            System.out.println(sb1 + "---" + sb2);// hello---world
            change(sb1, sb2);
            System.out.println(sb1 + "---" + sb2);// hello---worldworld


        }


        public static void change(StringBuffer sb1, StringBuffer sb2) {
           sb1 = sb2; 局部变量赋值本能改变实际参数
            sb2.append(sb1);
        }


        public static void change(String s1, String s2) {
            s1 = s2;
            s2 = s1 + s2;
        }

  • 相关阅读:
    Newtonsoft.Json.SerializeObject 转换参数
    EntityFramework Code First 特性
    删除SVN
    C# 数据库连接字符串
    javascript 计算后 无聊的小数点处理
    python index 自己实现
    springcloud 网关过滤器Zuul Filter
    Spring Cloud Feign服务通信与负载均衡机制
    Spring Cloid Ribbon服务的通信与负载均衡搭建
    spring-cloud注册中心集群
  • 原文地址:https://www.cnblogs.com/AJPFX/p/10898292.html
Copyright © 2011-2022 走看看