一、基本介绍

**底层是final byte[](jdk 9之后) final char [] ** jdk1.8代码:

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence {
    /** The value is used for character storage. */
    private final char value[];

String a=“abc”无法变,字符串是存在方法区的字符串常量池中,因为字符串在开发中使用太频繁。为了执行效率
String s= ”xy”;
String s2= ”xy”;
String a=new String(“xy”);
String b=new String(“xy”);
凡是双引号的都在字符串常量池中有一份

二、方法

A.charAt(a) 返回字符串A一个下标为a的字符。
A.compareTo(B) 比较A、B字符串的大小,从第一个字符串往后比较。
A.contains(B) 判断A是否包含B
A.endsWith(B) 判断当前字符串是否以某个字符串结尾
A.startsWih(B) 判断当前字符串是否以某个字符串开始
A.equalsIgnoreCase(B) 忽略大小写比较A、B字符串
A.getBytes() 将字符串转为byte数组
A.indexOf(B) 判断B某个字符串在当前字符串第一次出现的索引
A.lastIndexOf(B) 判断某个字符串在当前字符串最后一次出现的索引
A.isEmpty(B) 判断B字符串是否为空
**A.length() **计算A字符串的长度
A.repalce(old char【old string】,new char【new string】)替换所有old char,
A.split(“a”)以a为标志来对A进行拆分,返回一个String数组
A.subString(a,b)从下标为a(包括)开始截字符串,到b(不包括)结束
A.toCharArray() 将字符串转换成char[]
A.toLowerCase() 转换成小写
A.toUpperCase() 转成大写
A.trim()去除字符串前后空白
String中只有一个静态方法,不需要new对象,valueOf()将非字符串转换成字符串
valueOf(Object obj) 转换成String类型(会调用toString方法,故而根据需求重写toString方法)