Java的API
equals
? ? ? ? ? 基本數(shù)據(jù)類: 比較的是內(nèi)容(值)
? ? ? ? ? 引用數(shù)據(jù)類型:比較的是內(nèi)存地址值
? ? ? ????String 的equals比較的是內(nèi)容
class Person extends Object{
??? int age ;
??? //復(fù)寫父類的equals方法,實(shí)現(xiàn)自己的比較方式
??? public boolean equals(Object obj) {
??????? //判斷當(dāng)前調(diào)用equals方法的對(duì)象和傳遞進(jìn)來(lái)的對(duì)象是否是同一個(gè)
??????? if ( this== obj ) {
??????????? return true;
??????? }
??????? //判斷傳遞進(jìn)來(lái)的對(duì)象是否是Person類型
??????? if (!(obj instanceof Person)) {
??????????? return false;
??????? }
??????? //將obj向下轉(zhuǎn)型為Perosn引用,訪問(wèn)其屬性
??????? Person p = (Person)obj;
??????? return this.age == p.age;
??? }
}
例題
public class person{
priavte int? age;
private String name;
public person(){
????}
public boolean equals (object obj){
person p = (person)obj;
return this.age == p.age;
}
public int setAge(int age){
this . age=age;
????}
}
public String setName(String name){
this . name=name;
????}
}
public int getAge(){
return age;
}
public String getName(){
return name;
}
public class Test{
? ? public static void main(String[] args){
? ? //person類繼承了object類,繼承下來(lái)父類的方法equals方法
? ? person p= new person("張三",20);
? ? person pp = new? person("李四",25);
????boolean b = p.equals(pp);
????system.out.println(b);
????}
}
字符串緩沖區(qū)stringBuffer? ? ? ? ? ? ? ? ? ? ? ? ? 可變對(duì)象? ?String不可變對(duì)象
線程安全
StringBuffer sb = new StringBuffer();
sb.append("haha"); //添加字符串
sb.insert(2, "it");//在指定位置插入
sb.delete(1, 4);//刪除? ? ? ? ?包頭不包尾
sb.replace(1, 4, "cast");//替換指定范圍內(nèi)的內(nèi)容
String str = sb.toString();將緩沖區(qū)所有字符變成字符串
sb.reverse();將緩沖區(qū)的字符反轉(zhuǎn)
StringBuilder類和StringBuffer類完全一樣
StringBuilder線程不安全,運(yùn)行速度快

String