Java常用类
Object
超类、基类,所有类的直接或间接父类,位于继承树的最顶层 任何类如果没有书写extends显示继承某个类,都默认继承Onject类。如果继承了其他类,则为间接继承 Object类中所定义的方法,是所有对象都具备的方法 Object类型可以存储任何对象
作为参数,可接受任何对象 作为返回值,可返回任何对象
getClass()
public final native Class <?> getClass(); 返回引用中存储的实际对象类型 通常用于判断两个引用中实际存储对象类型是否一致
DemoTest demoTest = new DemoTest ( ) ;
DemoTest demoTest2 = new DemoTest ( ) ;
System. out. println ( demoTest. getClass ( ) ) ;
System. out. println ( demoTest2. getClass ( ) ) ;
System. out. println ( demoTest. equals ( demoTest2) ) ;
System. out. println ( demoTest. getClass ( ) . equals ( demoTest2. getClass ( ) ) ) ;
hashCode()
public native int hashCode(); 返回该对象的哈希码值 哈希值根据对象的地址或字符串或数字使用hash算法计算出的int 类型的数值 一般情况ha相同对象返回相同哈希码,但哈希码相同的对象不一定是相同对象
DemoTest demoTest = new DemoTest ( ) ;
DemoTest demoTest2 = new DemoTest ( ) ;
System. out. println ( demoTest. hashCode ( ) ) ;
System. out. println ( demoTest2. hashCode ( ) ) ;
System. out. println ( demoTest. equals ( demoTest2) ) ;
DemoTest demoTest = new DemoTest ( ) ;
DemoTest demoTest2 = demoTest;
System. out. println ( demoTest. hashCode ( ) ) ;
System. out. println ( demoTest2. hashCode ( ) ) ;
System. out. println ( demoTest. equals ( demoTest2) ) ;
toString()
public String toString() 返回该对象的字符串表示(表现形式) 可以根据程序需求覆盖该方法,如展示对象各个属性值
DemoTest demoTest = new DemoTest ( ) ;
System. out. println ( demoTest. toString ( ) ) ;
@Override
public String toString ( ) {
return "Student{" + "id=" + id + ", name='" + name + '\'' + ", sex='" + sex + '\'' + ", age=" + age + '}' ;
}
equals
判断两对象是否相同 public boolean equals(Object obj) { return (this == obj); } finalize()方法
当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记垃圾对象,进入回收队列 垃圾对象:没有有效引用指向此对象时,为垃圾对象 垃圾回收:由GC销毁垃圾对象,释放数据存储空间 自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象 手动回收机制:使用System.gc();通知JVM执行垃圾回收
public class Student {
@Override
protected void finalize ( ) throws Throwable {
System. out. println ( this . name+ "被回收了" ) ;
}
private String name;
private int age;
public Student ( String name, int age) {
this . name = name;
this . age = age;
}
public String getName ( ) {
return name;
}
public void setName ( String name) {
this . name = name;
}
public int getAge ( ) {
return age;
}
public void setAge ( int age) {
this . age = age;
}
}
public static void main ( String[ ] args) {
new Student ( "zs" , 18 ) ;
new Student ( "ls" , 18 ) ;
new Student ( "ww" , 18 ) ;
System. gc ( ) ;
}
包装类
基本数据类型所对应的引用数据类型 基本类型存放在栈中,包装类(对象)存放在堆中 Object可以统一所有数据,包装类的默认值是null
类型转换,装箱、拆箱
public static void main ( String[ ] args) {
int num= 10 ;
Integer integer4= num;
Integer integer= new Integer ( num) ;
Integer integer2 = Integer. valueOf ( num) ;
Integer integer3= new Integer ( 100 ) ;
int num2= integer3. intValue ( ) ;
int age= 30 ;
Integer integer5= age;
System. out. println ( integer5) ;
Integer integer6= new Integer ( 100 ) ;
int num3= integer6;
System. out. println ( num3) ;
}
parseXXX()静态方法 valueOf()静态方法 注意:需要保证类型兼容,否则抛出NumberFormatException 异常
int a= 15 ;
String str= a+ "" ;
String str2= Integer. toString ( a) ;
String str3= Integer. toString ( a, 16 ) ;
String s = String. valueOf ( a) ;
System. out. println ( str3) ;
String str4= "150" ;
int num4 = Integer. parseInt ( str4) ;
Integer integer1 = Integer. valueOf ( str4) ;
String str5= "Hello" ;
Boolean flag = Boolean. valueOf ( str5) ;
String str6= "true" ;
boolean flag2 = Boolean. parseBoolean ( str6) ;
System. out. println ( flag) ;
System. out. println ( flag2) ;
整数缓冲区
Java预先创建了256个常用的整数包装类型对象 实际应用中,对已创建的对象进行复用
Integer integer1= new Integer ( 100 ) ;
Integer integer2= new Integer ( 100 ) ;
System. out. println ( integer1. equals ( integer2) ) ;
System. out. println ( integer1== integer2) ;
Integer integer3= 100 ;
Integer integer4= 100 ;
System. out. println ( integer3== integer4) ;
System. out. println ( integer3. equals ( integer4) ) ;
Integer integer5= 200 ;
Integer integer6= 200 ;
System. out. println ( integer5== integer6) ;
System. out. println ( integer5. equals ( integer6) ) ;