美团面试总结
写在前面的话
夫妻俩带娃面试,也是够拼的。难为了老公,一点把握都没有,竟然还通过了一面,老天啊,止于二面,不后悔了,做以下总结,希望对自己以后的面试有帮助,
按映像深刻顺序
1.如何设计一个秒杀系统(开放题)
参考博客:http://blog.csdn.net/suifeng3051/article/details/52607544
看完博客后,归纳成自己的语言
可以从前端+服务器端+数据库端来回答
数据库比较脆弱,扛不住高并发请求,这些最好在服务器端都处理掉
前端:静态页面,避免重复提交,绑定请求IP
服务器端:网关层,避免恶意攻击,对于同一个userId限制请求
服务层:1.可以利用消息中间件来实现,缓存请求到队列中,数据库层订阅一定数量的请求
2.也可以利用缓存来实现写的操作(更多的是用来实现读操作)
2.原子操作类(Atomic)--原子类型的变量
参考博客:http://blog.csdn.net/u011116672/article/details/51068828
在java.util.concurrent.atomic包下,共有13个类,主要分为四种类型
原子更新基本数据类型:AtomicInteger,AtomicBoolean,AtomicLong
原子更新数组
原子更新引用类型
原子更新属性
解决问题:用来解决高并发,多线程的情况下变量值的改变(如自增)
之前如何解决:使用syncronized实现,修饰方法或者代码块
-----未完结------