33.String()字符串存储
Java中规定,双引号括起来的字符串是不可变的,都是存储在方法区的“字符串常量池”中
存储在字符串常量池的原因是:字符串在实际开发中使用起来相当频繁
String s1 = new String("xy");
凡是双引号括起来的字符串在字符串常量池中都有一份,因此xy先作为字符串存储在字符串常量池
然后,建立的s1对象存储在堆内存
String类的常见构造方法
创建对象最常用的一种方式
byte() bytes = {97, 98 ,99};
String s2 = new String(bytes);
System.out.println(s2) //最后输出abc,本来输出为地址,但输出为字符串本身,可见String重写了toString()
第一种:String s = new String()
第二种:String s = " " 最常用
第三种:String s = new String( char数组)
第四种:String s = new String(char数组,其实下标,长度)
第五种:String s = new String(byte数组)
第六种:String s = new String(byte数组,其实下标,长度)
String类常用的方法
查阅文档
char c = "中国人".charAt(1); //中国人是字符串,是对象,因此能有方法
System.out.println(c); //中
int result = "abc".compareTo("abc");
System.out.println(result); //显示为0. 等于零是前后一致,大于零是前大后小,小于零是前小后大
//字符串比较不能直接用符号要用compareTo方法比较
System.out.println("abc".contains("ab")); //判断前面的字符串是不是包含后面的字符串,如果是则为true,不是为false
//endsWith()判断当前字符串是否以某个字符串结尾,boolean返回值