1.三范式
(1)每列都具有原子性,不可再分
(2)有主键,其它属性依赖于主键
(3)非主键字段不能互相依赖
2.JVM内存结构
线程共享
(1)程序计数器(指向当前线程正在执行的行号)
(2)Java虚拟机栈(描述的是线程进栈出栈的过程,线程结束自动释放,虚拟机栈为java方法服务)
(3)本地方法栈(虚拟机对本地方法提供服务)
线程私有
(4)java堆(对象实例和数组)
(5)方法区(类的信息)
3.判断对象是否已死
(1)引用计数算法(当被创建时,置1,每被引用+1,失效-1,缺点:无法检测出循环引用)
(2)可达性分析算法(从GC ROOT开始,向下搜索,找到所有的引用节点,剩下的节点即为可回收对象,但是它有一次逃脱的机会,在分析后,没有与GC Roots相连接的引用链的节点,会被标记一次接着会进行再次筛选,看此对象是否会执行finalize()方法。在finalize()方法中没有重新与引用链建立关系的,对象将真的会被回收,否则,会逃离本次回收,继续存活。
3.redis线程模型
https://www.cnblogs.com/barrywxx/p/8570821.html
https://www.cnblogs.com/mlyflow/p/10506082.html