object类:
1、equals方法:
public boolean equals (Object obj) , 指示其他某个对象是否与此对象“相等”
源码:public boolean equals(Object obj){
return(this==obj)
}
==: 基本类型:比较值。 引用类型: 比较对象的地址。
重写equals:比较两个对象的属性。
问题:Object obj 隐含着一个多态。 多态的弊端:无法使用子类特有的内容(属性和方法)
解决:强行类型转换。
public boolean equals(Object obj){ Person p=(Person)obj; boolean b=this.name.equals(p.name) && this.age==p.age; return b;
objects 中的 equals方法。
String string=null; string.equals(string1). null是不能调用方法的,所以会报错。
objects中的equals方法:
Objects.equals(a,b)
public static boolean equals(Object a ,Object b){
return (a==b) || (a!=null && a.equals(b) );
}
Date类。
java.util.Date 类 表示特定的瞬间,精确到毫秒。
calendar类:
日历类。
system类。
StringBuilder:
因为字符串的不可变性,被final修饰。 所以对字符串操作时暂用空间多
stringBuilder 没有final修饰 可以改变长度。 效率高。
使用:
public static void main(String[] args) { //无参构造方法。 StringBuilder stringBuilder=new StringBuilder(); System.out.println(stringBuilder); //带字符串的构造方法。 StringBuilder stringBuilder1=new StringBuilder("abc"); System.out.println(stringBuilder1); }
方法:
public static void main(String[] args) { // append //返回的是this(调用方法的对象) StringBuilder stringBuilder=new StringBuilder(); stringBuilder.append("abc"); System.out.println(stringBuilder); //链式编程:方法返回值是一个对象,可以继续调用 stringBuilder.append(18).append(true).append(2.2); System.out.println(stringBuilder); }
public static void main(String[] args) { //String and StringBuilder 可以相互转换 //StringBuilder(String Str) //stringBulder.toString String string="Hello"; System.out.println("string:"+string); StringBuilder stringBuilder=new StringBuilder(string); stringBuilder.append(" World"); System.out.println("StringBuilder:"+stringBuilder); stringBuilder.toString(); System.out.println("string:"+stringBuilder); }
基本类型和包装类:
包装类:
基本数据类型使用起来非常方便,但没有对应的方法来操作数据,可以使用一个类,
把基本类型的数据包装起来,在类中定义一些方法。
装箱与拆箱。
装箱:基本类型,包装到包装类。
1、构造方法
2、构造方法
拆箱:包装类中,取出基本类型的数据。
1、成员方法
自动装箱与自动拆箱:
JDK1.5之后出现。
基本类型与字符串类型之间的相互转换:
基本类型->字符串:
1、值+ “”;
2、包装类的静态方法,toString(参数); 不是object的。 Integer.toString
3、String类中的,valueof() String.valueof
字符串->基本类型:
1、Integer的 静态方法 parseInt() parseDouble