String
String类被final修饰符修饰,所以不能将其进行继承,所有对它的改变都要重新创建一个新的地址
1.String的构造器
String()
String(byte 【】bytes)//把byte类型的用ASCII码构成一个新的数组
String(byte 【】bytes,int offest,int length)//从哪开始,指定长度
String(byte 【】bytes,Charset charset)//指定用来解码的Charset
String (char 【】 value)//字符串的初始值
String(char 【】value ,int offest ,int count )//从哪开始,指定长度
2.String的方法
(1)String的判断功能
public boolean equals(Object objiect){//先比较引用类型的内存地址,后比较值}
boolean /contains(String str ){\ 是否包含子字符串}
boolean /startsWith(String str ){\ 判断字符串是否以str开始}
boolean /endsWith(String str ){\ 判断字符串是否以str结束}
boolean /equalsIgnoreCase(String str){\忽略大小写的比较}
boolean /is Empty(){\判断字符串是否为空}
(2)String的取值功能
int /length() {\返回字符串的长度}
char /charAt(int index){\通过字符下标找到指定的字符}
int /indexOf(int ch){\寻找出此对象表示的字符,在字符序列中第一次出现的索引,没有时报-1}
int /lastIndexOf(int ch){\寻找出此对象表示的字符,在字符序列中最后一次出现的索引,没有时报-1}
int /indexOf(int ch,int fromIndex){\从指定位置寻找出此对象表示的字符,在字符序列中第一次出现的索引,没有时报-1}
String /subString(int Start){\截取从start到结束的字符串}
String /subString(int Start,int end){\截取从start到end的字符串}【包前不包后】
(3)String的转换
byte 【】 /get Byte(){\把字符串转换为byte类型的数组}
char 【】 /toCharArray(){\把字符串转换为char型的数组}
static String /valueOf(char【】ch){\静态方法可以直接用对象来调用,把char【】转换为字符串}
String /toUpperCase(){\把小写转换成大写}
String /LowerCase(){\把大写转换成小写}
String /concat(String st){\拼接}
(3)String的其他功能
替换功能:String /replace(char old,char new ){\替换单个字符}
String /replace(String old,String new ){\替换整个字符串}
去除字符串的两个空格:String /trim(){\只能去除字符串开始和结尾的两个空格,中间的不能}
StringBuffer
线程安全的可变字符序列
1.StringBuffer的构造方法
public StringBuffer(){}
public StringBuffer(int capacity){}
public StringBuffer(String str){}
2.StringBuffer的常用方法
append(){\追加【内存中的改变】}
toString(){\通过StringBuffer转换String}
reverse(){\反转}
equals 与 == 的区别
== 比较常量时就比较值,比较引用类型时,就比较的是地址值
equals 只能比较引用类型,比较时先比较它们的内存地址,再去比较它们的值,两个条件值是或的关系
String ,StringBuffer,StringBuilber的区别
String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全):该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候
String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,那速度是一定会相当慢的。