讲讲什么情况下会出现内存溢出内存泄漏乐观锁和悲观锁的理解及如何实现有哪些实现方式线程与进程的区别Session的save update merge lock saveOrUpdate和persist方法分别是做什么的有什么区别用代码演示三种代理stackoverflow错误permgen space错误分代收集算法同步方法和同步块哪个是更好的选择Java中的编译期常量是什么使用它又什么风险Java死锁以及如何避免