恍恍惚惚2022年已接8月份了!
不知道小伙伴们有没有在每一年的年末总结这一年发生的事件和问题的习惯(反正小编有...):
当然这些都已经过去,我们还是要向前看,今天小编特意给大家整理了一份《国内外一线互联网大厂(Java岗)必备高刷手册》
为了方便大家去观看小编已经把每个知识点单独的整理成了一个文件夹,足足16个大专题手册!
Java基础:
集合容器:
Java异常面试题:
并发编程:
springMVC面试题:
spring面试题:
MyBatis面试题:
jvm面试题:
数据库面试题:
由 于文章篇幅原因这里全部内容就不一一展示了。
在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、阻塞(Blocked)和死亡(Dead)5种状态
可以 对照上面的线程状态流转图 来看具体的方法,这样更清楚具体作用:
1.start()
启动当前线程, 调用当前线程的run()方法
2.run()
通常需要重写Thread类中的此方法, 将创建的线程要执行的操作声明在此方法中
3.yield()
释放当前CPU的执行权
4.join()
在线程a中调用线程b的join(), 此时线程a进入阻塞状态, 知道线程b完全执行完以后, 线程a才结束阻塞状态
5.sleep(long militime)
让线程睡眠指定的毫秒数,在指定时间内,线程是阻塞状态
6.wait()
一旦执行此方法,当前线程就会进入阻塞,一旦执行wait()会释放同步监视器。
7.sleep()和wait()的异同
相同点:两个方法一旦执行,都可以让线程进入阻塞状态。
不同点:
1) 两个方法声明的位置不同:Thread类中声明sleep(),Object类中声明wait()
2) 调用要求不同:sleep()可以在任何需要的场景下调用。wait()必须在同步代码块中调用。
2) 关于是否释放同步监视器:如果两个方法都使用在同步代码块呵呵同步方法中,sleep不会释放锁,wait会释放锁。