Reference:
https://zhuanlan.zhihu.com/p/454099354
https://zhuanlan.zhihu.com/p/364008347
https://zhuanlan.zhihu.com/p/444067457
https://www.javaroad.cn/questions/124111
https://www.jianshu.com/p/13e8e84f1482