一.Object类
1.概述
object类是类层次结构的根类,每个类都使用Object类作为超类,每个类都直接或间接继承Object类
我们所定义类,没有显示继承其他类,所有这些类在Java语言中默认继承Object类,可以直接调用Object的成员方法
2.equals()方法
public boolean equals(Object obj)
对于任何非空的引用值x和y,当且仅当x和y引用同一个对象时,此方法才返回true
Object默认equals方法比较的时对象的地址,方法内部使用的是==比较运算符
但是实际开发中,通常认为只要两个对象内容相同,即同一个类的对象且成员变量值都相同;那么他们就相等,所以经常需要子类重写equals方法
规定:
对于任何非空引用值x,x.equals(null)都返回false
自反性:对于任何非空引用值x,x.equals(x)返回true
对称性:对于任何非空引用值x,y当且仅当y.equals(x)返回true时,x.equals(y)也返回true
传递性:x.equals(y)返回true,y.equals(z)返回true,则x.equals(z)返回true
一致性:如果x和y引用的对象没有发生变化,反复调用x.equals(y)应该返回相同的结果
3.getClass()方法
public final Class getClass()
获取该对象所对应的类的字节码文件对象,也是返回该对象的运行时类的Java.lang.Class对象
JButton b1=new JButton("button1");
System.out.println(b1.getclass());
//输出
class javax.swing.JButton
4.hashCode()方法
public int hashCode()
返回该对象的哈希码值
两个相等的对象,要求返回相等的哈希码值
static int hashCode(Object a):如果a为null返回0,否则返回a.hashCode()
5.finalize()方法
垃圾回收器准备释放内存的时候,会先调用finalize()
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法(执行时机不确定)
子类可以重写finalize方法,以配置系统资源或执行其他清除
虽然在jvm中垃圾回收器可以帮助我们自动回收垃圾(仅限于Java产生的垃圾)
但是对于本地方法,所使用的一些特殊的,jvm管理不了的内存,这样释放内存空间的代码就放在finalize
注意:
对象不一定会被回收
垃圾回收只与内存有关
垃圾回收和finalize()都是不一定每次都发生的,因为jvm只有在快耗尽内存的时候才会进行垃圾回收
6.clone()方法
protected Object clone()
创建并返回此对象的一个副本
深复制和浅复制:
浅复制仅仅复制所考虑的对象,而不引用他所引用的对象
深复制把要复制的对象所引用的对象都复制了一遍。
7. toString() 方法
- 返回该对象的字符串表示。通常,
toString
方法会返回一个 以文本方式表示 此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。
Object 类的
toString
方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、标记符“@
”和此对象哈希码的无符号十六进制表示组成。
换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode())
二、String 类
1. 概述
- 字符串是由多个字符组成的一串数据(字符序列)
- 字符串可以看成是字符数组
-
String
类对象不能被修改
2. 构造方法
public String()
public String(byte[] bytes)
public String(byte[] bytes,int offset,int length)
public String(char[] value)
public String(char[] value,int offset,int count)
public String(String original)
3.String类的判断功能
boolean equals(Object obj) //两个字符串的内容是否相同
boolean equalsIgnoreCase(String str) //两个字符串的是否相同的比较、(忽略字符串的大小写)
boolean contains(String str) // 判断当前字符串中,是否包含指定字符
boolean startsWith(String str) //判断当前字符串,是否是由指定字符串开头
boolean endsWith(String str) //判断当前字符串,是否是由指定字符串结尾
boolean isEmpty() //判断一个字符串是否是空串
4. String类的获取功能
int length() //获取当前字符串中的字符序列中,所包含的字符个数
char charAt(int index) //获取字符串中指定位置的字符
int indexOf(int ch) //返回指定字符,在字符数组位置
//查找指定字符串,在当前字符串中的位置
// 返回结果是指: 指定字符串中的第一个字符
// 在当前字符串中的位置(只匹配首次出现的单词)
// 如果返回-1,说明再这个字符串中没有与之匹配的
int indexOf(String str)
//从当前字符串指定位置fromIndex往后查找指定的字符ch或者字符串str
int indexOf(int ch,int fromIndex)
int indexOf(String str,int fromIndex)
//从 start 开始,截取到末尾
String substring(int start)
//从 start 开始,end 结束截取到末尾
String substring(int start,int end)
//比如:
String s = "说大放送发康师傅说卡卡卡啊说是";
String s1 = s.substring(2); // 放送发康师傅说卡卡卡啊说是
System.out.println(s1);
String s2 = s.substring(2, 4); //放送
System.out.println(s2);