1.toString所有的类都默认自动继承了Objiect类
2.Object类中的toString方法返回的时类的名字和该哈希表码组成的一个字符串,
System.out.println(类对象名)实际输出的是该对象的toString方法所返回的字符串
3.所有类都从Object类继承了equals方法,源码如下
public boolean equals(Object obj)
{ return this == obj;}
4.object中的equals方法是直接判断调用equals的对象和形参obj所引用的对象是否为同一对象,即是否是内存中同一块存储单元,如果this和obj指向同一块内存对象,返回true,否则返回false,即使是内容完全相等的两块不同的内存对象,也会返回false
5.如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equals方法
6.string类已经重写了object中的equals方法,可以用来判断两个对象的内容是否相等
public class A { public static void main(String [] args) { //s1 s2 存放在堆区 String s1 = new String ("china"); String s2 = new String ("china"); System.out.println(s1.equals(s2));//true System.out.println(s1 ==s2 );//false //s3 s4的china存放在数据区 String s3 = "china"; String s4 = "china"; System.out.println(s3.equals(s4));//true System.out.println(s3 ==s4 ); //true } }
7,String常用方法总结
1.public char charAt (int index)
返回字符串中第index字符
2.public int length()
返回字符串的长度
3.public int indexOf (String str)
返回字符串中出现str的第一个位置
4.public int indexOf (String str , int fromIndex)
返回字符串中从fromIndex从from开始出现str的第一个位置
5.public boolean equalsIgnoreCase (String another)
比较字符串与another 是否一样(忽略大小写)
6.public String replace(char oldChar , char newChar)
在字符串中用new字符串 替代old字符串
7.public boolean startsWith (String prefix)
判断字符串是否已prefix字符串开头
8.public boolean endsWith(String suffix)
判断是否以suffix结尾
9.public String toUpperCase()
返回一个字符串的大写形式
10.ublic String toLowerCase()
返回一个字符串的小写形式
11.public String substring( int beginIndex , int endIndex)
返回该字符串从begin开始到end结尾的字符串
public class A { public static void main(String [] args) { String s1 = "zmzb",s2 = "ZMZB"; System.out.println(s1.charAt(1));//m System.out.println(s1.length());//4 System.out.println(s1.indexOf('m'));//1,z下标是0 System.out.println(s1.indexOf('s'));//-1 System.out.println(s1.equals(s2));//false System.out.println(s1.equalsIgnoreCase(s2));//true String sr = "狂人日记"; String ssr = sr.replace('日','周'); System.out.println(ssr);//狂人周记 } }
8.StringBuffer类
由来:string类对象一旦创建就不可更改,如果经常对字符串内容进行修改,则使用string buffer,否则既耗时间又耗空间
string类中没有修改字符串的方法,但是stringbuffer类中大量拥有
9.string buffer类的构造函数
public StringBuffer()
创建一个空的没有任何字符的StringBuffer对象
public StringBuffer(int capacity)
创建一个不带字符,但具有指定出生容量的字符串缓冲区
public StringBuffer(String str)
创建一个StringBuffer对象,包含与str对象相同的字符序列
10.常用方法
public StringBuffer delete(int start ,int end)
删除从start开始到end-1为止的一段字符序列,返回修改后的该StringBuffer对象引用
public class A { public static void main(String [] args) { StringBuffer sb = new StringBuffer(); sb.append("abc"); sb.append("123"); System.out.println(sb);//abc123 sb.insert(3,"--");//在下标为3的位置插入 System.out.println(sb);//abc--123 sb.delete(2,6); System.out.println(sb);//ab23 sb.reverse();//逆序 String str = sb.toString();//32ba System.out.println(str);//32ba } }