11日知识复习杂烩与链接地址

经典的死锁产生的必要条件
1.互斥,至少两个线程互相持有彼此需要的临界资源
2.不剥夺,当前线程持有的资源在使用完之前不会被剥夺
3.请求和保持,当前线程至少持有一个资源,并且不会释放该资源,同时又请求新的资源
4.循环等待,至少两个线程形成前面所述的循环等待圈

可参考博文:死锁相关

sleep()为什么是静态的
避免长臂执法,即A线程的sleep睡了B线程,带来安全问题

Hashtable
有个有趣的说法指出Hashtable被弃置的原因之一是因为没有遵守驼峰命名法

Hashtable详解

HTTPS的加密过程
忘了的时候就看这篇博客

类加载器相关知识

委派双亲、四种类加载器:根加载器、扩展加载器、系统加载器、用户加载器
想不明白的时候就看看这个

关于JVM内存泄露问题的一个巧妙回答:
理论上 Java 因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是 Java 被
广泛使用于服务器端编程的一个重要原因);然而在实际开发中,可能会存在无
用但可达的对象,这些对象不能被 GC 回收,因此也会导致内存泄露的发生。例如
Hibernate 的 Session(一级缓存)中的对象属于持久态,垃圾回收器是不会回收
这些对象的,然而这些对象中可能存在无用的垃圾对象,如果不及时关闭(close)
或清空(flush)一级缓存就可能导致内存泄露。

老生常谈的TCP UDP
三次握手、四次挥手、可靠性具体实现
在这里插入11日知识复习杂烩与链接地址

11日知识复习杂烩与链接地址