object类

object类

使用API文档学习相关的类,接口等这里面常用的方法有哪些?
(Application Programming Interface:应用程序接口)
类:
Object,Scanner,String,StringBuffer,Integer,Character,BigDecimal
Date日期类(JDK8:LocalDate),Calendar:日历类,Math:数学运算
Random(随机数产生器),System
接口:
集合:Collection 单例集合
List Set
Map 集合
java.lang.Object类:
Object类是所有类的根类,每一个类都继承自Object类
public int hashCode():了解:获取该对象的一个哈希码值(理解为地址值),通过哈希算法,不是实际地址值.
每一个对象的哈希码值一般是不同的.
public final Class getClass()返回该object运行时类(获取字节码文件对象)跟java中反射有关.
返回值:Class类:表示字节码文件对象
public String getName()
通过这个类中静态功能:直接可以获取当前类的"全限定名称"(包名.类名)

面试题:
java中有几种方式获取一个类的字节码文件对象?
1)Object类中的:public final Class getClass()这个方法
反射中:
2)任意java类型的class属性
3)class类中存在静态功能:forName(“一个类的全限定名称”);推荐使用
public String toString():对象的字符串表示.
通常,toString方法会返回一个"以文本方式表示"此时对象的字符串
结果应是一个简明但易于读懂的信息表达式.建议所有子类都重写此方法.
如果直接输出对象名称,会执行object类中的toString();打印出来一串地址值.
不需要手动提供,自动生成toString().
如果重写了object类中的toString(),创建对象直接输出对象名称的时候,打印出来的是成员信息表达式.

Object类中equals()方法
public boolean equals(Object obj):其他对象和当前obj对象进行比较,是否相等
:如果连接的是两个基本数据类型,比较是否相同
int a = 10;
int b = 20;
System.out.println(a
b);
如果连接的两个引用数据类型,比较地址值是否相同.
按照正确情况下,两个学生对象的成员信息一致,认为是同一个人,
执行equals方法默认比较的是地址值是否相同,
需要重写Object类中equals方法,它比较是对象的成员信息是否一致.

非java预言实现 native:本地(跟系统相关:c语言或者c++)
非java语言实现:多线程中 进程和线程(系统资源)/IO流,手动释放资源(非java语言实现)
protected native Object clone() throws CloneNotSupportedException;
JNI:Java Native Interface:java本地接口(技术):java语言可以调用c语言.

Object类中的克隆方法:
project Object clone():建立并返回此对象的一个副本.
指定特定的对象复制操作:
注意:
Object 类的clone方法执行特定得复制操作.首先,如果此对象所在的类不能实现接口Cloneable,
则会抛出CloneNotSupportedException.
Object obj = s.clone();调用clone()方法
Student s3 = (Student)obj;//只是复制字段信息,不会在堆内存产生空间地址

Object类中常用的方法:
equals(Object obj)----->String类中(底层重写了equals(String str)方法)
默认比较的是地址值是否相同,重写了该方法之后,比较内容是否相同
toString()----->Jdk提供的常用类中大部分都已经重写该方法(输出对应名称,不会产生地址值)

Object类中的垃圾回收方法:
protected void finalize():跟垃圾回收器有关系,可以通过手动开启垃圾回收器,System.gc(),
它就会调用finalize()回收不用的对象.
finalize()方法
1当对象被判定为垃圾对象时,有jvm自动调用此方法,用以标记垃圾对象,进入护手队列
2垃圾对象:没有有效引用指向此对象时,为垃圾对象
3垃圾回收:由GC销毁垃圾对象,释放数据存储空间.
4自动回收机制:jvm的内存耗尽,一次性回收所有垃圾对象
5手动回收机制:使用System.gc();通知jvm执行垃圾回收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值