首页 > 试题广场 >

下面有关java object默认的基本方法,说法错误的是?

[单选题]
下面有关java object默认的基本方法,说法错误的是?
  • equals(Object obj) 指示某个其他对象是否与此对象“相等”
  • copy() 创建并返回此对象的一个副本
  • wait() 导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法
  • toString() 返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成
推荐
B Object中没有copy方法
编辑于 2015-02-03 16:45:59 回复(31)
java object默认的基本方法中没有copy(),含有如下方法:
getClass(), hashCode(), equals(), clone(), toString(), notify(), notifyAll(),  wait(), finalize()
发表于 2015-12-12 14:53:15 回复(17)
  1. package  java.lang;   
  2. public   class  Object {   
  3.     
  4.     /* 一个本地方法,具体是用C(C++)在DLL中实现的,然后通过JNI调用。*/     
  5.      private   static   native   void  registerNatives();   
  6.    /* 对象初始化时自动调用此方法*/   
  7.      static  {   
  8.         registerNatives();   
  9.     }   
  10.     /* 返回此 Object 的运行时类。*/   
  11.      public   final   native  Class<?> getClass();   
  12.   
  13. /*   
  14. hashCode 的常规协定是:(本质 上是 返回该对象的哈希码值。
  1.    
  2. 1.在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。    
  3. 2.如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。    
  4. 3.如果根据 equals(java.lang.Object) 方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。   
  5. */   
  6.   
  7.      public   native   int  hashCode();   
  8.   
  9.   
  10.      public   boolean  equals(Object obj) {   
  11.      return  ( this  == obj);   
  12.     }   
  13.   
  14.      /*本地CLONE方法,用于对象的复制。*/   
  15.      protected   native  Object clone()  throws  CloneNotSupportedException;   
  16.   
  17.      /*返回该对象的字符串表示。非常重要的方法*/   
  18.      public  String toString() {   
  19.      return  getClass().getName() +  "@"  + Integer.toHexString(hashCode());   
  20.     }   
  21.   
  22.     /*唤醒在此对象监视器上等待的单个线程。*/   
  23.      public   final   native   void  notify();   
  24.   
  25.     /*唤醒在此对象监视器上等待的所有线程。*/   
  26.      public   final   native   void  notifyAll();   
  27.   
  28.   
  29. /*在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。换句话说,此方法的行为就好像它仅执行 wait(0) 调用一样。    
  30. 当前线程必须拥有此对象监视器。该线程发布对此监视器的所有权并等待,直到其他线程通过调用 notify 方法,或 notifyAll 方法通知在此对象的监视器上等待的线程醒来。然后该线程将等到重新获得对监视器的所有权后才能继续执行。*/   
  31.      public   final   void  wait()  throws  InterruptedException {   
  32.     wait( 0 );   
  33.     }   
  34.   
  35.   
  36.   
  37.     /*在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。*/   
  38.      public   final   native   void  wait( long  timeout)  throws  InterruptedException;   
  39.   
  40.      /* 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。*/   
  41.      public   final   void  wait( long  timeout,  int  nanos)  throws  InterruptedException {   
  42.          if  (timeout <  0 ) {   
  43.              throw   new  IllegalArgumentException( "timeout value is negative" );   
  44.         }   
  45.   
  46.          if  (nanos <  0  || nanos >  999999 ) {   
  47.              throw   new  IllegalArgumentException(   
  48.                  "nanosecond timeout value out of range" );   
  49.         }   
  50.   
  51.      if  (nanos >=  500000  || (nanos !=  0  && timeout ==  0 )) {   
  52.         timeout++;   
  53.     }   
  54.   
  55.     wait(timeout);   
  56.     }   
  57.   
  58.      /*当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。*/   
  59.      protected   void  finalize()  throws  Throwable { }   
发表于 2015-10-02 09:17:38 回复(10)
Object里的方法如下所示,其中不包含copy方法

编辑于 2019-10-21 17:03:35 回复(1)
protected Object clone ()                             //创建并返回此对象的一个副本。 
boolean equals (Object obj)                        //指示某个其他对象是否与此对象“相等”。 
protected void finalize ()                              //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 
Class<? extends Object> getClass ()         //返回一个对象的运行时类。 
int hashCode ()                                             //返回该对象的哈希码值。 
void notify ()                                                  //唤醒在此对象监视器上等待的单个线程。 
void notifyAll ()                                             //唤醒在此对象监视器上等待的所有线程。 
String toString ()                                           //返回该对象的字符串表示。 
void wait ()                                                     //导致当前的线程等待,直到其他线程调用此对象的 notify () 方法或 notifyAll () 方法。 
void wait ( long timeout)                               //导致当前的线程等待,直到其他线程调用此对象的 notify () 方法或 notifyAll () 方法,或者超过指定的时间量。 
void wait ( long timeout, int nanos)             //导致当前的线程等待,直到其他线程调用此对象的 notify () 方法或 notifyAll () 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。
编辑于 2016-06-17 11:59:47 回复(2)
媛头像
方法摘要
protected  Object clone()
          创建并返回此对象的一个副本。
 boolean equals(Object obj)
          指示其他某个对象是否与此对象“相等”。
protected  void finalize()
          当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
 Class<?> getClass()
          返回此Object的运行时类。
 int hashCode()
          返回该对象的哈希码值。
 void notify()
          唤醒在此对象监视器上等待的单个线程。
 void notifyAll()
          唤醒在此对象监视器上等待的所有线程。
 String toString()
          返回该对象的字符串表示。
 void wait()
          在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。
 void wait(long timeout)
          在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。
 void wait(long timeout, int nanos)
          在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
 
发表于 2015-09-30 12:48:40 回复(0)
有些人可能会选A。如果是在String里equals比较的才是值,因为String重写了equals方法。原来的equals方法比较的还是对象
编辑于 2017-09-06 18:07:32 回复(3)
Object的clone()方法创建并返回此对象的一个副本。copy()不是Object的方法
发表于 2015-06-08 09:04:26 回复(0)
B.Object类中没有copy()方法,只有clone()方法,创建并返回此对象的副本。
编辑于 2015-08-14 16:31:50 回复(0)
Object对象中没有Copy放法,有的是clone方法
发表于 2015-07-24 18:17:20 回复(0)
Object不包含copy()方法,题目中应该是clone()方法
发表于 2022-04-19 11:27:50 回复(0)
protected Object clone ()                             //创建并返回此对象的一个副本。 
boolean equals (Object obj)                        //指示某个其他对象是否与此对象“相等”。 
protected void finalize ()                              //当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 
Class<? extends Object> getClass ()         //返回一个对象的运行时类。 
int hashCode ()                                             //返回该对象的哈希码值。 
void notify ()                                                  //唤醒在此对象监视器上等待的单个线程。 
void notifyAll ()                                             //唤醒在此对象监视器上等待的所有线程。 
String toString ()                                           //返回该对象的字符串表示。 
void wait ()                                                     //导致当前的线程等待,直到其他线程调用此对象的 notify () 方法或 notifyAll () 方法。 
void wait ( long timeout)                               //导致当前的线程等待,直到其他线程调用此对象的 notify () 方法或 notifyAll () 方法,或者超过指定的时间量。 
void wait ( long timeout, int nanos)             //导致当前的线程等待,直到其他线程调用此对象的 notify () 方法或 notifyAll () 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。
发表于 2021-11-13 22:23:15 回复(0)
Object中,clone() 是 创建并返回此对象的一个副本。
要想使用clone()方法需要满足两个条件:
1.重写clone方法
2.重写此方法的类必须实现Cloneable接口。(这个接口是个空接口,也称标记接口,告诉编译器实现该接口的类可以进行对象的复制)。
需要注意:Student s3 = s; 地址传递,s3 与 s 两个引用指向同一个对象。s.clone() 直接拷贝出一个新对象,地址值与之前的对象不同。
发表于 2021-08-05 11:35:20 回复(0)
Object的所有methods。其中clone( )创建并返回此对象的一个副本。没有copy( )这个方法。
发表于 2020-02-15 17:24:26 回复(0)
Object默认9方法:
getClass(),
hashCode(), equals(), clone(), toString(),
notify(), notifyAll()
wait(), finalize()
发表于 2019-02-17 14:31:22 回复(0)
B    Object类没有copy()方法的,有clone方法
发表于 2017-01-11 20:51:44 回复(0)
发表于 2016-10-31 16:17:57 回复(0)
应该是clone()方法返回一个副本,没有copy方法
发表于 2015-07-27 16:05:07 回复(0)
object中没有copy()方法,有clone()方法,新建并返回一个对象的副本
发表于 2022-03-25 14:21:22 回复(0)
B Object中没有copy方法
发表于 2022-02-20 22:18:44 回复(0)
如果我没记错的话是clone方法🤣
发表于 2021-11-22 00:11:40 回复(0)