招银Java一面面经
自我介绍...
线程创建方式, Thread和Runable区别;
多线程安全方面(线程模型, 原子性....);
数据库事务级别;
数据库事务ACID;
Spring事务的实现方式;
数据库索引怎么实现的(B+Tree特性, 优点...);
数据库索引为啥只能有一个主键为啥不能有俩不行(我说可以联合主键, 不对, 我说没必要, 第一索引第二索引之类的, 我有说索引不是瞎建的, 维护耗时...不对), 这..., 后来想了想, 数据库第一范式!!! 或者是往主键的特性上引导, 唯一性使用唯一索引! 还有就是每个索引其实都是引用着主键的, 多个还瞎占用空间!
Redis高性能原因(纯内存, IO, 单线程和原因, 以及常量池之类的);
Redis缓存;
Redis雪崩解决办法;
如何保证Redis和数据库缓存一致性(如何确保, 代码手动刷新, 网络延迟的话减少网络距离, 使用Pipeline通道传输多个, 减少延迟);
观察者设计模式;
使劲强一致性呢? cao, 直接就不是用数据库, 像抢购, 直接把事先放到Redis, 使用Lua脚本预先缓存, 后续直接通过脚本的id执行, 保证原子性, 和传输效率;
手写冒泡(我把选择跟冒泡搞混了)和插入;
个人提问...
#面经##招商银行##Java工程师#