String类里面的内容必须会,必须熟悉,
public final class String 字符串是一个特殊的对象,这个类不能有子类。
String s = new String();与String s1 = "";是等价的。
String s1 = "abc"; //s1是一个类类型变量,“abc”是一个对象。
字符串最大的特点,一旦被初始化就不能被改变。
String s1 = "abc";
String s2 = new String("abc");
String s3 = "abc";
System.out.println(s1==s2);//结果是false
System.out.println(s1.equals(s2));//结果是和True,
String 覆盖了Object类中的equals方法,
该方法用于判断字符串内容是否相同。
s1和s2的区别?
s1在内存中有一个对象,s2在内存中有两个对象。
System.out.println(s1==s3);//true,因为在常量池中发现已经有这个内容,所以就引用原来的
所以就相等。
怎么简单,就怎么封装
--------------------------------------------------------------------------------------------------------------------------
StringBuffer是字符串缓冲区,是一个容器,被final修饰,不能被继承。
三个特点:
1.长度可变化,
2.可以操作多个数据类型
3.最终会通过toString()方法变成字符串。
CURD create update read dalete
StringBuffer sb = new StringBuffer();
sb.append("abc").append(true).append(21);//这个叫作方法调用链。
就是方法调用过程中,返回还是本类对象,所以还可以调用本类方法。
JDK1.5版本以后出现了StringBuffer的替换者StringBuilder。
StringBuffer与StringBuilder的区别,前者是同步的,后者不同步,也就是说
StringBuffer是安全的,StringBuilder是不安全的。StringBuilder
因为效率快。单线程用StringBuilder,多线程用StringBuffer
JAVA的升级一般是三个方面。
1.提高效率
2.简化书写
3.提高安全性。
StringBuilder就是为了提高效率。
建议使用StringBuilder。
package com.String;
public class DemoString
{
public void gainMethod()
{
String str = "ArraryList.java";
//判断文件名是否以.java结尾
System.out.println(str.endsWith(".java"));
//判断文件名是否以ArrayList开头
System.out.println(str.startsWith("ArraryList"));
//判断文件中是否包含ArrayList
System.out.println(str.contains("ArraryList"));
//字符串的长度
sop(str.length());
//根据索引获取字符
sop(str.charAt(3));