2021/8/18 读《码出高效》笔记

开通博客园后第一次记录

一方面想固化基础,一方面觉得也可以发展一下语言表达能力。(随笔懒得整标点了)

读到2.4.2参数这一章,实参传递给形参的过程 

public class ParamPassing { 
    private static int intStatic = 222; 
    private static String stringStatic = "old string";
    private static StringBuilder stringBuilderStatic = new StringBuilder ("old stringBuilder");

    public static void main(String[] args ) { 
        //实参调用
        method(intStatic); 
        method(stringStatic); 
        method(stringBuilderStatic, stringBuilderStatic ); 
        
        //输出是222(第1处)
        System.out.println(intStatic); 
        method(); 
        //无参方法调用之后,反而修改为888(第2处)
        System.out.println(intStatic); 
        //输出依然是:old string
        System.out.println(stringStatic); 
        //输出结果参考下方分析
        System.out.println(stringBuilderStatic); 
    }

    //A方法
    public static void method(int intStatic) { 
        intStatic = 777;
    }
    //B方法
    public static void method() { 
        intStatic = 888 ;
    }
    //C方法 
    public static void method(String stringStatic) { 
        //String是immutable对象,String 没有提供任何方法用于修改对象
        stringStatic = "new string";
     }
    //D方法
    public static void method(StringBuilder stringBuilderStatic1,StringBuilder stringBuilderStatic2) { 
        //直接使用参数引用修改对象(第3处)
        stringBuilderStatic1.append (".method.first-" ); 
        stringBuilderStatic2.append (".method.second-"); 
        
        //引用重新赋值
        stringBuilderStatic1= new StringBuilder("new stringBuilder");
        stringBuilderStatic1.append ("new method's append");
    }
}

百度了一下 StringBuilder 方法: https://blog.csdn.net/csxypr/article/details/92378336 

1.string类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。

2.StringBuffer对象是一个线程安全的字符序列可变的字符串,可以用toString()变成string类

3.StringBuilder没有实现线程安全功能,性能略高,类似于StringBuffer

随后了解了append与insert的区别:https://www.it610.com/article/1292858081096572928.htm

public class RunoobTest{
    public static void main(String args[]){
        StringBuilder sb = new StringBuilder(10);
        sb.append("Runoob..");
        System.out.println(sb);  
        sb.append("!");
        System.out.println(sb); 
        sb.insert(8, "Java");
        System.out.println(sb); 
        sb.delete(5,8);
        System.out.println(sb);  
    }
}

暂时先编辑这么多 遇到问题会再补充

posted @ 2021-08-18 16:06  野生后院  阅读(41)  评论(0)    收藏  举报