Java细节知识整理

==与equals:

我们知道,当没有重写equals方法时,两者对于引用类型变量而言都表示的是其引用地址,所以是没有区另的。而"=="在对基本类型数据进行比较 时,是比较的它们的数值大小。

equals()方法则是对于引用类型变量的比较,当两个引用变量指向堆中不同的地址时,equals会对它们各自指向地址内的内容进行取出访问;例如字符串“Hello”与"hello",则是对它们挨个扫描,若有不同,是返回false,若相同返回true;

HashSet:从Set扩展而来,同Set一样,不可存放重复元素。拿什么来判断?hashCode()方法计算出hashCode值,进而进行前后存入的元素是否为同一元素;其次,调用equals()来对其字符序列验证,若返回为false进行存入,否则要么覆盖,要么链式存储。然而,当存在在同一块地址内有多个值链式存在时,这会大大影响HashSet的性能;所以我们应当保证重写hashCode()与equals()两者返回"相同"的结果。

sleep与wait的区别:

sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间,从而将执行机会给其他线程,但监控状态依然保持,到时候会自动恢复。调用 sleep不会释放对象锁。

wait是Object类的方法,对此对象调用 wait 方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll)后本线程才进入对象锁定池准备获得对象锁进入运行状态

...(待续)

转载于:https://my.oschina.net/u/938966/blog/102461

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值