1.String是java中常用类的一种,他表示字符串
    他有两种创建方式:1.通过直接赋值的情况 数值保存在方法区的常量池中
    2.通过new对象的方式 在栈中保留的变量保存的是堆中的引用,堆中开辟的内存区域保存其实也是一个内存地址,指向的是方法区中静态常量池中实际数据的内存地址
    String:底层是一个字符数组,扩容机制:效率最低
    StringBuffer:线程安全的,底层也是字符数组,线程安全的原因是它的实现类中所有方法都加了Sysnonaced关键字,使这些方法都是同步方法。底层扩容,效率一般,底层其实是StringBuilder,他和StringBuilder的区别就是加了Syscnices锁变成了同步方法。
    StringBuilder:线程不安全的,底层是字符数组,底层扩容效率高,初始容量是16,也可以指定初始容量,默认扩容是扩容为原来的2倍+2。

    String常用方法:
    length(),add,delete,replace,
    indexof:查询指定字符第一次出现的位置
    last_indexof:查询最后一次出现的位置
    contact:拼接
    split:分隔正则分隔
    substring:按照指定,长度
    replace:替换
    statwith:返回首字母
    endwith:返回结尾
    charat:返回指定索引的字符
    trim:截取前后空格
    tochararray:编程字符数组
    getBytes:变成字节数组