File tree Expand file tree Collapse file tree 1 file changed +33
-1
lines changed Expand file tree Collapse file tree 1 file changed +33
-1
lines changed Original file line number Diff line number Diff line change @@ -17,6 +17,33 @@ pin: true
1717
1818反射:指动态获取的信息以及动态调用对象的方法的功能。在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性
1919
20+ ## Object 类的方法
21+ 1 . clone()
22+ 2 . getClass()
23+ 3 . toString()
24+ 4 . finalize()
25+ 5 . equals()
26+ 6 . hashCode()
27+ 7 . wait()
28+ 8 . notify()
29+ 9 . notifyAll()
30+
31+
32+ ### 双等号和 equals() 的区别
33+ 1 . 针对 String 引用数据类型,` == ` 是用来判断两个对象的** 引用** 是否相等,而 ` equals() ` 是判断两个对象的** 值** 是否相等。
34+ 2 . 基本数据类型没有 ` equals() ` 方法
35+ 3 . 针对自定义对象而言,如果没有重写 ` equals() ` 方法,则两者没有区别,` equals() ` 内部是通过 ` == ` 来判断。
36+
37+
38+ ### 重写 equals() 为什么一定要重写 hashCode()
39+
40+ 相同的对象一定要有相同的哈希值。假设重写 equals() 但没有重写 hashCode(),并且因为 Set 存储的是不重复的对象,依据 hashCode 和 equals 进行判断,所以 Set 存储的对象必须覆写这两个方法
41+
42+
43+ ### 为什么不直接使用 hashCode 就确定两个对象是否相等呢
44+
45+ 这是因为不同对象的 hashCode 可能相同;但 hashCode 不同的对象一定不相等,所以使用 hashCode 可以起到快速初次判断对象是否相等的作用。对比两个对象时,先使用 hashCode() 判断,再用 equals() 判断,提升对比效率。
46+
2047# 内存结构
2148
2249![ ] ( https://img-blog.csdnimg.cn/cb59671dff1f4588b5d845f60874013b.png )
@@ -304,7 +331,12 @@ Java NIO:
304331
305332## 多线程
306333
307- ## wait() 和 sleep() 区别
334+ ### CompletableFuture
335+
336+ CompletableFuture 最大的特点是支持函数式编程,可以通过回调的方式处理计算结果、链式组合异步任务等。当异步任务完成或者发生异常时,自动调用回调对象的回调方法。
337+
338+
339+ ### wait() 和 sleep() 区别
3083401 . sleep() 是 Thread 的静态方法,wait() 是 Object 的普通 final 方法
3093412 . wait() 方法需要在synchronize块或者synchronize方法里调用,作用是释放锁,然而sleep不需要
3103423 . sleep() 是休眠,wait() 是挂起
You can’t perform that action at this time.
0 commit comments