StringBuilder StringBuffer System类常用方法

本文详细介绍了Java中StringBuilder类的主要方法,包括append、insert、delete、deleteCharAt、reverse、toString等,以及System类的常用功能,如println、scanner、exit、currentTimeMillis和arrayCopy。通过实例展示了如何进行字符串操作和系统交互,是Java初学者掌握基础的重要参考资料。

Stringbuilder类常用方法:

StringBuilder sb = new StringBuilder();//首先新建一个StringBuilder

1.append:拼接字符(向其内部追加)
例如:
	    sb.append("abc");
        sb.append("def");//向其内部追加
        System.out.println(sb);//打印结果为"abcdef"

2.insert向其内部插入内容. 括号内的offset是偏移量.str是插入的内容
例如:
		sb.insert(offset:0,str:"[");//第0个索引插入"["
        System.out.println(sb);//打印结果为"[abcdef"


3.append:结尾插入内容
例如:
        sb.append("]");//结尾插入"]"
        System.out.println(sb);//打印结果为[abcdef]


4.delete(a,b):有两个参数,使用时删除索引从a开始到b(包前不包后)的所有字符;
例如:
		sb.delete(0,1);//从第0索引开始删除一个
        System.out.println(sb);//结果为 abcdef]


5.deleteCharAt(a):同样是删除但是只有一个参数,删除索引为a的内容字符
例如:
		sb.deleteCharAt(sb.length()-1);//删除结尾的索引内容
        System.out.println(sb);//打印结果为abcdef


6.reverse:字符串反转
例如:
		sb.reverse();
        System.out.println(sb);//打印结果为 fedcba	


7.toString:获取到拼接完成的字符串
例如:
        String res = sb.toString();
        System.out.println(res);


	StringBuffer类.
 * StringBuffer 是可变字符串序列.
 * StringBuffer 是线程同步的.
 * StringBuffer的API 和  StringBuilder 相同.
   这两个类,唯一的不同点是:StringBuffer安全.

System类常用方法:

1.System.out.println:系统打印输出。 out 输出.
例如:
	 System.out.println("Hello World");


2.scanner:系统输入
例如:
	 Scanner input = new Scanner(System.in);


3. System.err.println:系统日志打印	
例如:
	 System.err.println("hello error"); 


4.System.exit:系统退出(后面的内容不会打印) 
例如:
	 System.exit(0);
     System.out.println(2);//因为前面系统退出 所以2不会打印出来


5.GC:表示虚拟机垃圾回收机制,需要等待JVM空闲时,才会进行垃圾回收(不再启用的内存空间).并不是运行GC()方法 就一定进行垃圾回收
例如:
	 System.gc();


6.System.currentTimeMillis():获取系统的格林威治时间,1970-1-1至今.
例如:
     System.out.println("格林威治时间"+System.currentTimeMillis());


7.System.arraycopy:复制数组
例如:
     int[] arrs = {5,8,20,12,22,54,92,87};
     int[] arrs1 = new int[5];
     System.arraycopy(arrs,srcPos:2,arrs1,destPos:0,length:5);
                   //原数组,起始位置,需要赋值的数组,起始位置,长度
     System.out.println(Arrays.toString(arrs1));//打印结果为[20, 12, 22, 54, 92]

### StringBuilderStringBuffer 的插入性能与线程安全性 #### 插入性能比较 当涉及到频繁的字符串拼接或修改操作时,`StringBuilder` 表现优于 `StringBuffer`。这是因为 `StringBuffer` 中的方法大多被标记为同步(synchronized),这使得多个线程可以安全地访问同一个实例,但也带来了额外的开销。相比之下,`StringBuilder` 不提供内置的线程安全保障,因此其方法是非同步的,在单一线程环境中执行得更快。 ```java // 使用 StringBuilder 执行高效插入操作 StringBuilder sb = new StringBuilder(); sb.append("Hello"); sb.insert(5, ", World!"); // 高效插入 System.out.println(sb.toString()); // 输出 Hello, World! // 使用 StringBuffer 执行较慢但线程安全的插入操作 StringBuffer sf = new StringBuffer(); sf.append("Hello"); sf.insert(5, ", World!"); // 较慢但是线程安全的插入 System.out.println(sf.toString()); // 输出 Hello, World! ``` 对于大多数应用程序而言,除非确实存在多线程并发写入同一缓冲区的需求,否则推荐使用 `StringBuilder` 来获得更好的性能表现[^1]。 #### 线程安全性差异 `StringBuffer` 提供了全面的线程保护机制,所有的公共方法都被声明为 `synchronized` 型,这意味着在同一时间只有一个线程能够对该对象进行读取或更新操作。然而,这种特性也意味着如果在一个不需要考虑线程竞争的情况下仍然选择了 `StringBuffer`,那么可能会引入不必要的锁争用问题,从而影响程序的整体效率。 另一方面,`StringBuilder` 并不实现任何显式的线程协调措施;它假定使用者会在单一控制流内对其进行调用,或者是通过其他方式来管理好不同线程间的协作关系。所以在开发过程中应当谨慎评估实际应用场景后再做选择。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值