1.Java中常见的类
每个类都有自己的父类,所有类的最终父类都是Object类
1.1.getClass()
将对象的所属类当做一个对象返回
main(){
Class cls=new Debug();
System.out.println(cls.getClass());
//返回ObjectExplain.Debug@70dea4e
}
class Debug{}
关于getClass的源码:
public final native Class<?> getClass();
1.2.hashCode()
返回对象在真实物理内存中的地址(用十进制返回)
main(){
Dog d=new Dog();
System.out.println(d.hashcode());//输出2018699554
}
class Dog{}
1.3.equals()
重写两个对象之间的比较:
1.自己和自己比
2.传入的值是否为空?
3.比类型 getClass()
4.比属性
4.1 基本数据类型直接比
4.2引用数据类型 判空后 再比较
public boolean equals(Object obj) {
//1.传入的对象和参考对象比
if (this == obj)
return true;
//2.传入对象判空
if (obj == null)
return false;
//3.判断传入对象是否和参考对象是同一个类Dog
if (!(obj instanceof Dog))
return false;
//3.1.如果是同一个类,将传入的对象类型强转为Dog类
Dog other = (Dog) obj;
//3.2.判空属性,之后在比较属性
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
if (num != other.num)
return false;
return true;
}
1.4.toString()
返回一个 类名@哈希码 的字符串 打印类就是在toString()
main(){
Dog a=new Dog();
System.out.println(a.toString());
//输出ObjectExplain.Dog@4e25154f
}
class Dog{}
1.5.finalize()
垃圾回收器,是Java中自动回收垃圾的代码
1.5.1.final finalize 和 finally的区别?
1.final
1.1.final修饰类的时候表示这个类不能被继承
1.2.final修饰方法的时候表示方法不能被重写
1.3.final在修饰成员变量的时候必须要赋初值,且只能初始化一次
2.finalize()
2.1.finalize是Java中的垃圾回收方法
3.finally
3.1.finally关键字是对Java异常处理模型的最佳补充
3.2.finally必须与try/catch语句块一起配合使用
1.6.权限问题
同类 同包不同类 不同包但继承 不同包不继承
public √ √ √ √
protected √ √ X X
默认 √ √ X X
private √ X X X
1.7.String类
String类是一个final类,不可以被继承。
1.7.1.String的接口
1.Serializable:序列化接口 可以让内存中的数据传出去
2.Comparable:对比接口 加入一个可以被比较的能力
3.CharSequence:字符队列 从逻辑角度看字符串本身就是一个队列
1.7.2.String类中的一些方法
String(String):
String(char []):传入一个字符数组 得到一个字符串
String(int []):传入字符编码数组 得到一个字符串
String(byte[],string charsetname):传入字符串获取处一个byte数组
String(StringBuffer):将一个SB转化为一个字符对象
int length():获取字符串的长度
boolean isEmpty():字符串判空
char charAt(int index):获取字符串中指定角标的字符
void getChars(int srcBegin, int srcEnd, char [] dst, int dstBegin)将字符数组从srcbegin开始到srcend结束复制到另一个数组中:
boolean equals(String s):比较当前字符串与传入的字符串s是否相等
Boolean equalsIgnoreCase(String):忽略字母大小写,比较是否相等
boolean startWith(String prifix,int toffset):判断字符是否是从toffset处以prifix字符串开始
Boolean endwith(String prifix,int toffset):判断字符是否是从toffset处以prifix字符串结束
int indexOf(int ch):从左到右查询角标ch处的字符
String replace(char oldchar,char newchar):新字符替换就字符