Java中的对象类

对象 课堂在教室里 JAVA朗 包裹Java中的每个类都直接或间接地从 对象 班如果一个类不扩展任何其他类,那么它就是 对象 如果扩展了另一个类,那么它是间接派生的。因此,所有Java类都可以使用对象类方法。因此,对象类在任何Java程序中都充当继承层次结构的根。

null

使用对象类方法

有很多方法 对象 课程:

1.toString(): toString()提供对象的字符串表示形式,用于将对象转换为字符串。class Object的默认toString()方法返回一个字符串,该字符串由对象作为实例的类的名称、at符号字符“@”和对象哈希代码的无符号十六进制表示形式组成。换句话说,它的定义是:

// Default behavior of toString() is to print class name, then// @, then unsigned hexadecimal representation of the hash code// of the objectpublic String toString(){    return getClass().getName() + "@" + Integer.toHexString(hashCode());}

始终建议覆盖 toString() 方法来获取我们自己的对象字符串表示形式。有关重写toString()方法的更多信息,请参阅– 在Java中重写toString()

注: 每当我们试图打印任何对象引用时,就会在内部调用toString()方法。

Student s = new Student();// Below two statements are equivalentSystem.out.println(s);System.out.println(s.toString());

2.hashCode(): 对于每个对象,JVM都会生成一个唯一的数字,即哈希代码。它为不同的对象返回不同的整数。关于这个方法的一个常见误解是hashCode()方法返回对象的地址,这是不正确的。它使用算法将对象的内部地址转换为整数。hashCode()方法是 出生地的 因为在Java中不可能找到对象的地址,所以它使用C/C++等本地语言来查找对象的地址。

hashCode()方法的使用: 它返回用于搜索集合中对象的哈希值。JVM(Java Virtual Machine)在将对象保存到哈希相关的数据结构(如哈希集、哈希映射、哈希表等)时使用哈希代码方法。基于哈希代码保存对象的主要优点是搜索变得容易。

注: 推翻 hashCode() 方法需要为每个对象生成一个唯一的数字。例如,对于一个学生类,我们可以从hashCode()方法返回学生的卷号,因为它是唯一的。

JAVA

// Java program to demonstrate working of
// hashCode() and toString()
public class Student {
static int last_roll = 100 ;
int roll_no;
// Constructor
Student()
{
roll_no = last_roll;
last_roll++;
}
// Overriding hashCode()
@Override public int hashCode() { return roll_no; }
// Driver code
public static void main(String args[])
{
Student s = new Student();
// Below two statements are equivalent
System.out.println(s);
System.out.println(s.toString());
}
}


输出:

Student@64Student@64

注意4*16 0 + 6*16 1. = 100

3.相等(对象obj): 它将给定对象与“this”对象(调用方法的对象)进行比较。它提供了一种比较对象是否相等的通用方法。建议覆盖 等于(对象obj) 方法来获得对象上的相等条件。有关替代equals(对象obj)方法的更多信息,请参阅—— Java中重写equals方法

注: 通常有必要覆盖 hashCode() 方法,以便维护hashCode方法的一般约定,该约定规定相等的对象必须具有相等的哈希代码。

4.getClass(): 它返回“this”对象的类对象,并用于获取该对象的实际运行时类。它还可以用于获取此类的元数据。返回的类对象是由所表示类的静态同步方法锁定的对象。因为它是最终的,所以我们不会推翻它。

JAVA

// Java program to demonstrate working of getClass()
public class Test {
public static void main(String[] args)
{
Object obj = new String( "GeeksForGeeks" );
Class c = obj.getClass();
System.out.println( "Class of Object obj is : "
+ c.getName());
}
}


输出:

Class of Object obj is : java.lang.String

注: 在加载一个。类文件,JVM将创建以下类型的对象 JAVA朗.班 在堆区。我们可以使用这个类对象来获取类级别的信息。它被广泛应用于工业领域 反射

5.finalize()方法: 在垃圾收集对象之前调用此方法。它被称为 垃圾收集器 当垃圾收集器确定不再有对对象的引用时。我们应该重写finalize()方法来处理系统资源、执行清理活动并最大限度地减少内存泄漏。例如,在销毁Servlet对象web容器之前,总是调用finalize方法来执行会话的清理活动。

注: finalize方法被称为just 一旦 在一个对象上,即使该对象符合多次垃圾收集的条件。

JAVA

// Java program to demonstrate working of finalize()
public class Test {
public static void main(String[] args)
{
Test t = new Test();
System.out.println(t.hashCode());
t = null ;
// calling garbage collector
System.gc();
System.out.println( "end" );
}
@Override protected void finalize()
{
System.out.println( "finalize method called" );
}
}


输出:

366712642finalize method calledend

6.克隆(): 它返回一个与此对象完全相同的新对象。有关clone()方法,请参阅 克隆() .

剩下的三种方法 等等 , 通知 notifyAll() 与并发性相关。提到 Java中的线程间通信 详细信息。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享