Object之总结(一)
一、Object类中一共有12个方法。一个私有方法,两个保护方法,9个公共方法。另外还有一个静态代码块。
1、registerNatives方法。私有静态本地无参数无返回值。
2、finalize方法。保护方法。无参数无返回值。
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。
3、clone方法。保护方法。本地方法,无参数Object类型返回值。
实现对象的浅复制,只有实现了Cloneable接口才可以调用该方法,否则抛出CloneNotSupportedException异常。主要是JAVA里除了8种基本类型传参数是值传递,其他的类对象传参数都是引用传递。
4、equals方法。Object参数boolean返回值。
equals()通常用来进行比较,在Object类中,它进行了引用的比较,只有引用相同时会返回true。但是这样并不是我们想要的比较的情况,比如字符串的比较是比较每个字符是否相同。那么在String类中就会对equals()方法进行重写。都知道java中比较字符串是否相等应该用equals();而==则是比较的值,也就是引用;那么为什么是这样的呢?我今天看了下equals的实现方法,发现字符串的比较,是通过每一个字符进行比较,如果都相等,则返回true;而源码里面Object类型的equals方法却是直接用==来代替的,也就是说相当于直接比较引用了,这也就是为什么我们有时候要重写equals方法了。
######################################################
下面附上Jdk中String类型的equals方法源码。
5、hashCode方法。本地方法。返回整型。
一个对象的签名,但是不同对象该签名可能会重复,只是一般不会。该方法用来返回其所在对象的物理地址(哈希码值),常会和equals方法同时重写,确保相等的两个对象拥有相等的.hashCode
6、getClass方法。不可覆写的本地方法。
7、toString方法。全限定性类名+“@”+hashCode值的十六进制表示。
8、wait方法。不可覆写方法。本质是调用wait( long timeout)方法。
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。
9、wait(long timeout)。不可覆写的本地方法。
wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的notify方法。
(2)其他线程调用了该对象的notifyAll方法。
(3)其他线程调用了interrupt中断该线程。
(4)时间间隔到了。
10、wait(long timeout, int nanos)方法。不可覆写。
11、notify方法。不可覆写的本地方法。
该方法唤醒在该对象上等待的某个线程。
12、notifyAll方法。不可覆写的本地方法。
该方法唤醒在该对象上等待的所有线程。
二、总结。
1、
2、
3、
三、
Object之总结(一)的更多相关文章
- CoreCLR源码探索(一) Object是什么
.Net程序员们每天都在和Object在打交道 如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" 这个答案是对的 ...
- JavaScript Object对象
目录 1. 介绍:阐述 Object 对象. 2. 构造函数:介绍 Object 对象的构造函数. 3. 实例属性:介绍 Object 对象的实例属性:prototype.constructor等等. ...
- javascript之Object.defineProperty的奥妙
直切主题 今天遇到一个这样的功能: 写一个函数,该函数传递两个参数,第一个参数为返回对象的总数据量,第二个参数为初始化对象的数据.如: var o = obj (4, {name: 'xu', age ...
- c# 基础 object ,new操作符,类型转换
参考页面: http://www.yuanjiaocheng.net/webapi/config-webapi.html http://www.yuanjiaocheng.net/webapi/web ...
- APEX:对object中数据进行简单处理?
在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...
- 笔记:Memory Notification: Library Cache Object loaded into SGA
笔记:Memory Notification: Library Cache Object loaded into SGA在警告日志中发现一些这样的警告信息:Mon Nov 21 14:24:22 20 ...
- Selenium的PO模式(Page Object Model)[python版]
Page Object Model 简称POM 普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driv ...
- Object是什么
Object是什么 .Net程序员们每天都在和Object在打交道如果你问一个.Net程序员什么是Object,他可能会信誓旦旦的告诉你"Object还不简单吗,就是所有类型的基类" ...
- a different object with the same identifier value was already associated with the session:
hibernate操作: 实例化两个model类,更新时会提示 a different object with the same identifier value was already assoc ...
- CSharpGL - Object Oriented OpenGL in C#
Object Oriented OpenGL in C#
随机推荐
- phpstorm10激活加汉化
所用到的文件:链接:http://pan.baidu.com/s/1boNqCcJ 密码:61nz 分享文件夹中,有一个“PHP Storm激活和汉化方法.zip”文件其中有一个“resources_ ...
- 安卓使用Root权限实现后台模拟全局按键、触屏事件方法(类似按键精灵)
继续在网上搜索安卓按键模拟(其实那时都不知道用什么关键字好了,能想到的关键字都用遍了,但是搜索出来的结果,都是之前提到的那几个依赖源码环境和系统权限的方案).发现有很多介绍ADB调试,向手机发送按键事 ...
- asp.net 实现pdf、swf等文档的浏览
一.pdf的浏览 可以借助于pdf.js插件完成,使用pdf.js的好处是不需要安装额外的插件(比如flash),是纯web的解决方案.插件的下载链接:http://mozilla.github.io ...
- Testlink定位实例
最近在对testlink系统上做点东西,在定位部分元素时折腾了一段时间才搞定,特此记录 如下图 要定位红色框部分 一:先分析testlink页面结构,如下 如二个frame组成,一个是titlebar ...
- windows下的C++与cuda编译器位置
在windows下最常见的C++编译器为visual studio自带的编译器cl.exe 通常其所在目录为: C:\Program Files (x86)\Microsoft Visual Stud ...
- nginx 二级域名跳转
server { listen ; server_name m.aaoo.cn; #charset koi8-r; #access_log logs/host.access.log main; rew ...
- linux下pip安装pygame
在学习python的过程中要用到pygame,在安装过程中遇到一些问题,经百度解决.因为使用的版本为python3,故以下教程针对python3版本.安装教程如下: 一.首先你要确保你已经安装了pip ...
- 2018牛客网暑期ACM多校训练营(第一场) J - Different Integers - [莫队算法]
题目链接:https://www.nowcoder.com/acm/contest/139/J 题目描述 Given a sequence of integers a1, a2, ..., an a ...
- 设置tabBar中间的按钮比较大的发布
MainTabBarController.h UITabBarItem *item = [self.tabBar.items objectAtIndex:index]; [item setTitle: ...
- Python开发【笔记】:pymsyql 插入一条数据同时获取新插数据的自增id的两种方式
一.通过cursor.lastrowid import pymysql.cursors # Connect to the database connection = pymysql.connect(h ...