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); } }
暂时先编辑这么多 遇到问题会再补充

浙公网安备 33010602011771号