全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详谈Java中Object类中的方法以及finalize函数作用

Object是所有类的父类,任何类都默认继承Object。

一、Object类中的方法

1.clone方法

保护方法,实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。

主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递,我们有时候不希望在方法里讲参数改变,这是就需要在类中复写clone方法。

2.getClass方法

final方法,获得运行时类型。

3.toString方法

该方法用得比较多,一般子类都有覆盖。

4.finalize方法

该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。

5.equals方法

该方法是非常重要的一个方法。一般equals和==是不一样的,但是在Object中两者是一样的。子类一般都要重写这个方法。

6.hashCode方法

该方法用于哈希查找,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。

一般必须满足obj1.equals(obj2)==true。可以推出obj1.hash- Code()==obj2.hashCode(),但是hashCode相等不一定就满足equals。不过为了提高效率,应该尽量使上面两个条件接近等价。

如果不重写hashcode(),在HashSet中添加两个equals的对象,会将两个对象都加入进去。

7.wait方法

wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。

调用该方法后当前线程进入睡眠状态,直到以下事件发生。

(1)其他线程调用了该对象的notify方法。

(2)其他线程调用了该对象的notifyAll方法。

(3)其他线程调用了interrupt中断该线程。

(4)时间间隔到了。

此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。

8.notify方法

该方法唤醒在该对象上等待的某个线程。

9.notifyAll方法

该方法唤醒在该对象上等待的所有线程。

二、finalize()的作用

Java允许在类中定义一个名为finalize()的方法。它的工作原理是:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法。并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。

关于垃圾回收,有三点需要记住:

1、对象可能不被垃圾回收。只要程序没有濒临存储空间用完的那一刻,对象占用的空间就总也得不到释放。

2、垃圾回收并不等于“析构”。

3、垃圾回收只与内存有关。使用垃圾回收的唯一原因是为了回收程序不再使用的内存。

finalize()的用途:

无论对象是如何创建的,垃圾回收器都会负责释放对象占据的所有内存。这就将对finalize()的需求限制到一种特殊情况,即通过某种创建对象方式以外的方式为对象分配了存储空间。不过这种情况一般发生在使用“本地方法”的情况下,本地方法是一种在Java中调用非Java代码的方式。

为什么不能显示直接调用finalize方法?

如前文所述,finalize方法在垃圾回收时一定会被执行,而如果在此之前显示执行的话,也就是说finalize会被执行两次以上,而在第一次资源已经被释放,那么在第二次释放资源时系统一定会报错,因此一般finalize方法的访问权限和父类保持一致,为protected。

以上这篇详谈Java中Object类中的方法以及finalize函数作用就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# java  # object  # finalize  # 深入理解JAVA基础类库中对象Object类  # 你了解Java中的Object类吗  # 了解java中对象基础Object类  # Java基础之Object类详解  # java基础之Object类  # java之Object类用法实例  # Java中Object类常用的12个方法(小结)  # 重写  # 类中  # 都要  # 子类  # 给大家  # 抛出  # 都是  # 这是  # 都有  # 是一种  # 在此  # 什么时候  # 才会  # 其他的  # 而在  # 两次  # 这就  # 时间内  # 希望能  # 才可以 


相关文章: 企业网站制作公司网页,推荐几家专业的天津网站制作公司?  如何选择建站程序?包含哪些必备功能与类型?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  香港服务器网站生成指南:免费资源整合与高速稳定配置方案  建站之星官网登录失败?如何快速解决?  公司网站设计制作厂家,怎么创建自己的一个网站?  济南网站制作的价格,历城一职专官方网站?  安徽网站建设与外贸建站服务专业定制方案  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  建站之星微信建站一键生成小程序+多端营销系统  建站之星CMS建站配置指南:模板选择与SEO优化技巧  表情包在线制作网站免费,表情包怎么弄?  如何快速生成ASP一键建站模板并优化安全性?  ,想在网上投简历,哪几个网站比较好?  建站之星客服服务时间及联系方式如何?  电脑免费海报制作网站推荐,招聘海报哪个网站多?  如何在Windows环境下新建FTP站点并设置权限?  用v-html解决Vue.js渲染中html标签不被解析的问题  如何在阿里云ECS服务器部署织梦CMS网站?  建站DNS解析失败?如何正确配置域名服务器?  建站之星伪静态规则如何正确配置?  jQuery 常见小例汇总  香港服务器租用费用高吗?如何避免常见误区?  如何选择高效稳定的ISP建站解决方案?  小型网站建站如何选择虚拟主机?  如何选择高性价比服务器搭建个人网站?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  Swift中switch语句区间和元组模式匹配  东莞专业制作网站的公司,东莞大学生网的网址是什么?  广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?  如何用虚拟主机快速搭建网站?详细步骤解析  建站之星各版本价格是多少?  C#如何在一个XML文件中查找并替换文本内容  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?  简单实现Android文件上传  内部网站制作流程,如何建立公司内部网站?  建站主机数据库如何配置才能提升网站性能?  广州网站建站公司选择指南:建站流程与SEO优化关键词解析  如何快速生成凡客建站的专业级图册?  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  如何高效完成自助建站业务培训?  英语简历制作免费网站推荐,如何将简历翻译成英文?  动图在线制作网站有哪些,滑动动图图集怎么做?  建站之星×万网:智能建站系统+自助建站平台一键生成  官网网站制作腾讯审核要多久,联想路由器newifi官网  建站之星备案流程有哪些注意事项?  视频网站制作教程,怎么样制作优酷网的小视频?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?  网页设计网站制作软件,microsoft office哪个可以创建网页? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。