当前位置: 首页 > news >正文

谁做视频网站包小盒设计网站

谁做视频网站,包小盒设计网站,推广普通话手抄报简单漂亮,tp做的网站封装成appObject 概述 Object类是所有类的基类——java.lang.Object。 Object类是所有类的基类#xff0c;当一个类没有直接继承某个类时#xff0c;默认继承Object类Object类属于java.lang包下#xff0c;此包下的所有类在使用时无需手动导入#xff0c;系统会在程序编译期间自动…Object 概述 Object类是所有类的基类——java.lang.Object。 Object类是所有类的基类当一个类没有直接继承某个类时默认继承Object类Object类属于java.lang包下此包下的所有类在使用时无需手动导入系统会在程序编译期间自动导入。 Object类有七个native方法registerNatives()、getClass()、hashCode()、clone()、notify()、notifyAll()。 源码解析 /*** native 方法,用于返回当前运行时对象的Class对象使用了final关键字修饰故不允许子类重写。*/ public final native Class? getClass() /*** native 方法用于返回对象的哈希码主要使用在哈希表中比如JDK中的HashMap. */ public native int hashCode() /** * 用于比较两个对象的内存地址是否相等。 */ public boolean equals(Object obj) /** * naitive 方法用于创建并返回当前对象的一份拷贝。 */ protected native Object clone() throws CloneNotSupportedException /** * 返回类的名字实例的哈希码的16进制的字符串。 */ public String toString() /** * native方法并且不能重写。唤醒一个在此对象监视器上等待的线程(监视器相当于就是锁的概念)。如果有多个线程在等待只会任意唤醒一个。 */ public final native void notify() /*** native 方法并且不能重写。跟 notify 一样唯一的区别就是会唤醒在此对象监视器上等待的所有线程而不是一个线程。*/ public final native void notifyAll() /** * native方法并且不能重写。暂停线程的执行。注意sleep方法没有释放锁而wait方法释放了锁timeout是等待时间。 */ public final native void wait(long timeout) throws InterruptedException /*** 多了 nanos 参数这个参数表示额外时间以毫微秒为单位范围是 0-999999。 所以超时的时间还需要加上 nanos 毫秒。*/ public final void wait(long timeout, int nanos) throws InterruptedException /*** 跟之前的2个wait方法一样只不过该方法一直等待没有超时时间这个概念*/ public final void wait() throws InterruptedException /*** 实例被垃圾回收器回收的时候触发的操作*/ protected void finalize() throws Throwable 类构造器  一个类必须要有一个构造器的存在如果没有显示声明那么系统会默认创建一个无参构造器在JDK的Object类源码中是看不到构造器的系统会自动添加一个无参构造器。 // 构造一个Object类的对象。 Object obj new Object() equals方法 源码 public boolean equals(Object obj) {return (this obj);} 结论 在 Object 类中 运算符和 equals 方法是等价的都是比较两个对象的引用是否相等从另一方面来讲如果两个对象的引用相等那么这两个对象一定是相等的对于我们自定义的一个对象如果不重写 equals 方法那么在比较对象的时候就是调用 Object 类的 equals 方法也就是用 运算符比较两个对象 重写equals原则 Overridepublic boolean equals(Object otherObject) {//1、判断比较的两个对象引用是否相等如果引用相等那么表示是同一个对象那么当然相等if(this otherObject){return true;}//2、如果 otherObject 为 null直接返回false表示不相等if(otherObject null ){//对象为空或者不是Person类的实例return false;}//3、比较 this 和 otherObject 是否是同一个类注意下面两个只能使用一种//3.1如果 equals 的语义在每个子类中所有改变就使用 getClass 检测if(this.getClass() ! otherObject.getClass()){return false;}//3.2如果所有的子类都有统一的定义那么使用 instanceof 检测if(!(otherObject instanceof Person)){return false;}//4、将 otherObject 转换成对应的类类型变量Person other (Person) otherObject;//5、最后对对象的属性进行比较。使用 比较基本类型使用 equals 比较对象。如果都相等则返回true否则返回false// 使用 Objects 工具类的 equals 方法防止比较的两个对象有一个为 null而报错因为 null.equals() 是会抛异常的return Objects.equals(this.pname,other.pname) this.page other.page;//6、注意如果是在子类中定义equals则要包含 super.equals(other)//return super.equals(other) Objects.equals(this.pname,other.pname) this.page other.page;} 如果在重写 equals() 方法时没有重写 hashCode() 方法使用 HashMap 可能会出现以下问题 违反 hashCode 契约 Java 规定如果两个对象通过 equals() 方法比较相等那么它们的 hashCode() 也必须相等。如果只重写 equals() 而不重写 hashCode()可能会导致两个相等的对象返回不同的哈希值从而违反这一契约。 HashMap 无法正确查找对象 HashMap 依赖 hashCode() 来确定对象的存储位置。如果两个对象相等但 hashCode() 不同HashMap 可能会将它们放在不同的桶中导致无法通过 get() 方法正确找到对象。 数据丢失或重复 由于 HashMap 使用 hashCode() 和 equals() 来管理键值对如果 hashCode() 不一致可能会导致数据被错误地存储或覆盖进而引发数据丢失或重复。 getClass方法 public final native Class? getClass(); getClass()在 Object 类中如上作用是返回对象的运行时类。 toString 方法 public String toString() {return getClass().getName() Integer.toHexString(hashCode()); } getClass().getName()是返回对象的全类名包含包名,Integer.toHexString(hashCode()) 是以16进制无符号整数形式返回此哈希码的字符串表示形式。打印某个对象时默认是调用 toString 方法比如 System.out.println(person),等价于 System.out.println(person.toString())。 clone方法 /** * 本地clone方法,用于对象的复制 */ protected native Object clone() throws CloneNotSupportedException; 保护方法实现对象的浅拷贝只有实现了Cloneable接口才可以调用该方法否则抛出CloneNotSupportedException异常。 finalize 方法 protected void finalize() throws Throwable { } 当 GC 确定不再有对该对象的引用时GC 会调用对象的 finalize() 方法来清除回收。 JVM 会确保一个对象的 finalize() 方法只被调用一次而且程序中不能直接调用 finalize() 方法。 finalize() 方法通常也不可预测而且很危险一般情况下不必要覆盖 finalize() 方法。
http://www.yingshimen.cn/news/87596/

相关文章:

  • 深圳建一个网站多少钱购物网站介绍
  • 中国建设业管理协会网站wordpress d
  • 湛江免费建站哪里有wordpress category name
  • 只想怎样建设自己的销售网站网站后台传图片
  • 越秀网站建设策划网站文章排版的重要性
  • 有哪些网站做任务有佣金建设银行手机网站首页
  • 网站建设合同 完整版wordpress 支持 插件下载
  • 促销直播网站开发中国十大装修公司品牌排行榜
  • 电子商务网站开发项目设计报告昆山市做网站的公司
  • 亚马逊企业网站建设wordpress访问
  • 十堰微网站建设多少钱柳州企业网站开发公司
  • wordpress 描文本优化湖南纯手工seo电话
  • 行政单位门户网站建设方案企业网络专线
  • ps如何做网站轮播图网上购物系统建设
  • 网站被黑应该怎么做励志网站织梦源码
  • 企业网站强制备案自设计网站
  • 通州网站建设公司阿里巴巴免费做国际网站
  • 网站建设升级的必要性最低价做网站
  • 投票网站怎么做江门网站建设哪家快
  • 2个域名指向同一个网站网站不支持m.域名
  • 高端网站建设页面wordpress付费开通站点
  • 珠海网站建设黄荣wordpress生成
  • 网站开发一个支付功能要好多钱网站建设步骤实践报告
  • 网站更换备案昆山正规网站建设
  • 网站建设邀标函搭建wap网站
  • 单页营销网站怎么做黄骅港赶海免费最佳地点是哪里
  • 网站开发商品管理表字段小程序制作价格北京华网天下实惠
  • 为企业做网站策划案怎么看网站开发者页面
  • 手机网站微信网站开发wordpress自适应主题
  • 无锡网站建设解决方案做网站的经历感想