大家好,我是鸭鸭。
如果给你月薪涨 80%,总包涨 35%,但是新工作需要 11+11+6,你会接这个 offer 吗?
起因是鸭鸭今天刷到了这样一个帖子:

楼主表示“吓人啊”,可见这样的涨幅确实超乎预料。
当然不排除这位候选人之前薪资低于市场价的情况,但如今的行情大家都懂的。
所以说拼多多拼起来是真狠,但它也真敢给。
我们常说想要 work life balance,事实是,在人生的不同阶段,总是会有不同的优先级。刚毕业的时候别说 80% 了,多给 2000 块鸭鸭就直接冲了。而有了一定的积累后,让人心动的价码则开始因人而异。

如果是你的话,你会怎么选?
……
话说想要拿 80% 的涨薪,面试时八股文总不能答不出来。通关面试鸭,帮你吊打面试官!
先从今天这道题开始吧。
Java 中 wait() 和 sleep() 的区别?
重点回答
wait() 和 sleep() 都是用于暂停线程的操作,但它们有明显的区别(先说面试官最关心的):
1)使用要求不同:
- wait()方法必须在同步块或同步方法内调用,否则会抛出- IllegalMonitorStateException。这是因为- wait()依赖于对象锁来管理线程的等待和唤醒机制。调用后,当前线程会释放它持有的对象锁,并进入等待状态。
- sleep()方法可以在任何上下文中调用,不需要获取对象锁。调用后,线程会进入休眠状态,但不会释放它持有的任何锁。
2)方法所属类不同:
- wait():属于- Object类。
- sleep():属于- Thread类。
3)恢复方式不同:
- wait():需要被其他线程通过- notify()或- notifyAll()显式唤醒,或被- wait(long timeout)的超时参数唤醒。
- sleep():在指定时间后自动恢复运行,或通过抛出- InterruptedException恢复。
4)用途不同:
- wait():通常用于线程间通信,配合- notify()或- notifyAll()来实现线程的协调工作。
- sleep():用于让线程暂停执行一段时间,通常用于控制线程的执行频率或模拟延时。
扩展知识
常见错误:
- 误用 sleep():有时开发者会错误地使用sleep()进行线程间通信,但是sleep()不释放锁,可能会导致其他线程无法进入同步块,造成线程饥饿或死锁。
- 忽略中断:sleep()可能抛出InterruptedException,如果不正确处理中断信号,可能会导致线程提前退出或错误行为。

 鸭鸭现在做的面试刷题神器面试鸭 ,已经6000题了!欢迎大家来刷题!
我是鸭鸭,我们下期见!

















![[WEBPWN]BaseCTF week1 题解(新手友好教程版)](https://i-blog.csdnimg.cn/direct/db366a8c70c54a7995f3fb63ca12dcea.png)

