千锋JAVA第21天课后复习

千峰逆战班,
在千峰逆战班学习的第21天
“学java的好处,就是没对象也可以new一个”
中国加油,武汉加油,千峰加油,我自己也加油
今天学习了各种包装类和字符串的内容
Object类:

  1. 概念:
    I. 超类、基类,所有类的直接或间接父类,位于继承树的最顶层。
    II. 任何类,如没有书写extends显示继承某个类,都默认直接继承Object类,否则为间接继承。
    III. Object类中所定义的方法,是所有对象都具备的方法。
    IV. Object类型可以存储任何对象:
    1). 作为参数,可接受任何对象。
    2). 作为返回值,可返回任何对象。

  2. 常用方法:
    I. public final Class<?> getClass(){}
    返回引用中存储的实际对象类型。
    应用:通常用于判断两个引用中实际存储对象类型是否一致。

II. public int hashCode(){}
一个对象的整数表现形式(整数型的名字)。
返回该对象的十进制的哈希码值。
哈希算法根据对象的地址或字符串或数字计算出来的int类型的数值。
哈希码并不唯一,可保证相同对象返回相同哈希码,尽量保证不同对象返回不同哈希码。

III. public String toString(){}
返回该对象的字符串表示(表现形式)。
可以根据程序需求覆盖该方法,如:展示对象各个属性值。

IV. public boolean equals(Object obj){}
默认实现为(this == obj),比较两个对象地址是否相同。
可进行覆盖,比较两个对象的内容是否相同。

V. 覆盖equals的顺序:
1). 比较两个引用是否指向同一个对象。
2). 判断obj是否为null。
3). 判断两个引用指向的实际对象类型是否一致。
4). 强制类型转换。
5). 依次比较各个属性值是否相同。

VI. protected void finalize() throws Throwable //了解(面试题中可能有坑)
当对象被判定为垃圾对象时,由JVM自动调用此方法,用以标记垃圾对象,进入回收队列。
垃圾对象:没有有效引用指向此对象时,为垃圾对象。
垃圾回收: 由GC销毁垃圾对象,释放数据存储空间。
自动回收机制:JVM的内存耗尽,一次性回收所有垃圾对象。
手动回收机制:使用System.gc(); 通知JVM执行垃圾回收。
包装类:

  1. 概念:
    I. 基本类型所对应的引用类型
    II. Object可统一所有数据,包装类的默认值为null
    III. 包装类中实际上就是持有了一个基本类型的属性,作为数据的存储空间(Byte中有一个byte属性),还提供了常用的转型方法,以及常量,
    既可以存储值,又具备了一系列的转型方法和常用常量,比直接使用基本类型的功能更强大。
    IV. 包装类型中提供了若干转型的方法,可以让自身类型与其他包装类型、基本类型、字符串相互之间进行转换。

  2. 转型方法:
    I. 8种包装类型中,有6种是数字型(Byte、Short、Integer、Long、Float、Double),继承自java.lang.Number父类。
    II. java.lang.Number父类为所有子类分别提供了6个转型的方法,将自身类型转换成其他数字型。
    byteValue();
    shortValue();
    intValue();
    longValue();
    floatValue();
    doubleValue();

III. parseXXX(String s) 静态转型方法,8种包装类型都有
parseByte(“123”);
parseShort(“123”);
parseInt(“123”);
parseDouble(“123.45”);

IV. valueOf(基本类型)、valueOf(字符串类型),静态转型方法,8种包装类型都有
Byte b1 = Byte.valueOf( (byte)10 );
Byte b2 = Byte.valueOf( “20” );

V. 注意:在使用字符串构建包装类型对象时,要保证类型的兼容,否则产生NumberFormatException。

VI. JDK5之后,提供自动装箱、拆箱,简化使用包装类的编程过程
Byte b4 = 40;//自动装箱,将基本类型直接赋值给包装类型
byte b5 = b4;//自动拆箱,将包装类型的值,直接赋值给基本类型

VII. 自动装箱时,会调用valueOf方法,Byte、Short、Integer、Long,四种整数包装类型都提供了对应的cache缓冲区,将常用的256个数字提 前创建对象并保存在数组中,实现复用。即在区间的复用已有对象,在区间外创建新对象。

发布了3 篇原创文章 · 获赞 0 · 访问量 145

猜你喜欢

转载自blog.csdn.net/qq_40091389/article/details/104621207
今日推荐