java.lang.Object

java.lang.Object是所有类的基类。

native修饰的属于本地方法,底层使用C/C++实现。

一、常见的方法
1、public final native Class<?> getClass();返回类的Class对象。

获取Class对象的三种方式:
1、实例对象的getClass()方法。如:test.getClass();
2、java中所有的类型都有class属性(包括基本数据类型、enum枚举类型)。如:Test.class; int.class;
3、Class类的类方法:Class.forName(全限类名);

2、public native int hashCode();根据对象的地址或者字符串或者数字算出来的int类型的数值。

不同的对象hashCode()有可能放回相同的值。

3、 equals方法。默认情况下(像String等类型重写了equals()和hashCode()的除外)对象之间的比较,equals等价于 ==。

public boolean equals(Object obj) {
        return (this == obj);
    }

hashCode()与equals()的关系?
1、如果两个对象equals为true,则它们的hashCode()返回值一定相同。
2、如果两个对象hashCode返回值相同,不能代表两个对象相同。只能代表在散列存储结构中,存放的位置是相同的。
3、一般两者应该同时重写。

4、 protected native Object clone() throws CloneNotSupportedException;复制对象。需要该类实现java.lang.Cloneable接口,否则抛出异常CloneNotSupportedException。

浅复制和深复制:
浅复制:clone方法复制时,对象的属性值的复制是通过复制引用的方式完成对象的复制,原对象与clone对象的引用类型属性属于同一个,任何一个的修改都会影响另外一个。
1、默认情况下,调用clone()是浅复制。
2、要实现深复制,一般需要重写clone方法。

5、toString()方法。

public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());  //类名@16进制的hashCode
    }

6、 public final native void notify();任意唤醒一个等待该对象的线程。Wakes up a single thread that is waiting on this object’s monitor.

7、public final native void notifyAll();唤醒所有等待该对象的线程。Wakes up all threads that are waiting on this object’s monitor.

8、 使一个线程进入阻塞状态,直到它被唤醒。 Causes the current thread to wait until it is awakened.

public final void wait() throws InterruptedException {
        wait(0L);
    }

public final native void wait(long timeoutMillis) throws InterruptedException;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: java.lang.ObjectJava中所有类的父类,它定义了一些通用的方法,例如toString()和equals()。如果出现“无法解析java.lang.Object”的错误,可能是因为代码中使用了不正确的语法或缺少了必要的依赖库。建议检查代码中是否有拼写错误或语法错误,并确保所有必要的依赖库已正确导入。 ### 回答2: "无法解析java.lang.Object"是指在Java程序中遇到了无法解析类java.lang.Object的错误。 java.lang.ObjectJava中所有类的基类,它包含了所有类共有的方法和属性。当无法解析java.lang.Object时,意味着JDK(Java Development Kit)中的核心库没有被正确加载。 解决此问题的方法有以下几种: 1. 检查JDK安装:首先,确保已正确安装了JDK。可以在命令行中运行`java -version`命令,查看是否能正确输出JDK的版本信息。如果没有输出或输出异常,说明JDK没有安装或安装错误,需要重新安装。 2. 检查classpath设置:在Java程序中,classpath是指用于指定Java类和资源文件的搜索路径的系统环境变量。请确保classpath正确设置,以便能够找到java.lang.Object类。可以通过命令行运行`echo %classpath%`(Windows)或`echo $CLASSPATH`(Linux/Mac)命令来查看classpath设置。 3. 检查IDE或编译器配置:如果使用集成开发环境(IDE)或其他编译器进行Java开发,需要检查其配置是否正确。确保项目的构建路径或编译选项中包含了JDK的路径,并且没有错误配置导致无法解析java.lang.Object类。 4. 检查Java项目依赖:如果使用了第三方库或框架,在编译和运行时需要确保相关的依赖库已正确引入,并且版本兼容。如果依赖的库中存在与java.lang.Object类冲突的类或版本不匹配的情况,可能会导致无法解析java.lang.Object。 总之,在遇到无法解析java.lang.Object的错误时,需要仔细检查JDK的安装、classpath设置、IDE或编译器配置以及项目依赖等环节,确保其正确性和一致性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值