Java String类

271 阅读1分钟

Java把用户程序中的String常量放入常量池,常量池中的数据在程序运行期间不允许更改
常量池:

1.png 把常量的引用赋值给一个String对象,该对象放入常量池 new运算符的String对象放入堆空间 并置运算有变量相当与new对象,没有变量就依然是常量

public class Main {
    public static void main(String[] args) {
        String hello = "你好";
        String testone = "你"+"好";//放入常量池
        System.out.println(hello==testone);//true
        System.out.println("你好"==testone);//true
        System.out.println(hello=="你好");//true
        String you ="你";
        String hi ="好";
        String testtwo=you+hi;//有变量 放入堆空间
        System.out.println(hello==testtwo);//false
        String testthree=you+hi;
        System.out.println(testthree==testtwo);//false
        }
 }

2.png

String常用方法
length求字符串长度
equals比较字符序列是否相等(String重写了object的equals方法)
startsWith,endsWith判断字符串前缀和后缀
compareTo按字典序与对象的字符串序列比较大小
contains判断是否包含
indexOf求索引值
substring截取字符串
trim去除空格

正则表达式
\d--表示0-9之间的任何一个数字
\D--表示任何一个非数字字符
\s--代表空格类字符
[]--表示方括号中任何一个字符

StringBuffer对象:
StringBuffer对象是字符串可变序列,通过append可以给对象增加字符序列,StringBuffer中的方法大部分都使用synchronized关键字修饰,所以StringBuffer是线程安全的,StringBuilder中的方法则没有,线程不安全,但是StringBuilder因为没有使用使用synchronized关键字修饰,所以性能更高