String相关类

String

  • 1.String是不可变的字符数列,因为源码加了final修饰。

  • 2.字符串比较

最好用equals方法(如果不明白,请看面向对象的==与equals)。

package com.itcode.demo4;  

/** 
 * @Auther: 成都码到功成学员 
 * @Description: 
 * String类测试 
 */  
public class TestWrapper3 {  

    public static void main(String[] args) {  
        //  
        String a = "码到功成";  
        String b = "码到" + "功成";// 编译器自动优化拼接变成"码到功成"  
        System.out.println(a==b);// true  
        String c = "码到";  
        String d = "功成";  
        String e = c + d;  
        System.out.println(e==a);//false  
    }  
}

StringBuffer和StringBuilder

概述:是可变的字符数列。StringBuffer和StringBuilder都继承了抽象类AbstractStringBuilder,源码中 ,没有加final修饰。它们的区别是:

  • StringBuffer:安全,效率低。

  • StringBuilder:不安全,效率高(一般使用这个)。

示例:

效果:

看哈希值都是1b6d356。

常用方法

StringBuffer和StirngBuilder的方法几乎一模一样。

它们有些方法和String类似,比如: indexOf(String str)、indexOf(String str, int fromIndex)、length()、charAt(int index)、substring(int start, int end)、substring(int start)。

特有方法请看代码示例:

效果:

时间内存对比

可变比不可变更不占空间和耗用内存。

示例:

效果:

Last updated

Was this helpful?