Java
文章平均质量分 73
安安静静做个程序猿
喜欢Java,乐于敲代码。。。
展开
-
秒杀(四)Jmeter演示秒杀中的超卖和重复购买并解决问题
1、超卖现象超卖现象大家都知道是什么,我们思考一下,为什么会超卖?当库存接近于0的时候,在高并发的情况下会出现某时刻多个线程查询库存够的,但下一时刻某个一个线程下单了,对库存进行减操作,使得库存变为0,照理现在的状态是不能下单成功的,因为库存已经不够了,但别的线程仍然认为数量还够,对库存进行减操作,从而导致库存出现负数的情况,那这就是超卖了。那么有小伙伴说这个问题简单,对库存加锁啊,Lock、Synchronized或者cas乐观锁,那不就解决了。加锁是一个思路,那我们再考虑...原创 2021-05-15 17:45:30 · 1569 阅读 · 0 评论 -
秒杀(二)关于秒杀系统的思考与解决方案
1、思考软件开发过程中的可行性分析就不分析了,别人都已经做出来来了,说明开发秒杀系统本身就是可行的。接下来我们要思考一下秒杀系统会遇到哪些问题?以下的内容有参考各种的资料整理出来的。高并发秒杀的特点就是这样时间极短、 瞬间⽤户量⼤。缓存雪崩,缓存击穿,缓存穿透这些都是有可能发⽣的,出现问题后请求全部到DB那就很难受了,活动失败⽤户体验差,后果很严重超卖本来准备秒杀10个MacBook pro,超卖多了20个,那就尴尬了,那最后只能杀个开发祭天了恶意请求对于懂技术的人,...原创 2021-05-13 21:32:17 · 571 阅读 · 0 评论 -
秒杀(一)记录一个秒杀系统的开发过程
最近换了份工作,工作不是很忙,离家又比较近,所以晚上差不多六点半就可以到家了,除了亲子时光,八点半之后就是自由时间,闲着没事干,正好自己的大学时的笔记本没什么用处,就想把它利用起来,笔记本的配置比较差,i3 + 8G +2TB。逛知乎的时候,搜索“值得学习的Java项目”,找了一个比较感兴趣的项目:开发一个秒杀系统。参考的github地址:GitHub - qiurunze123/miaosha: ⭐⭐⭐⭐秒杀系统设计与实现.互联网工程师进阶与分析???????? 选择理由:秒杀系统涉及的内容比较多,可以将原创 2021-05-11 22:41:10 · 383 阅读 · 0 评论 -
Java源码分析之HashMap
Java源码分析之HashMap说明:这里分析的是jdk1.8的源码。1.位于java.util包下,从JDK1.2开始有的。2.继承关系 public class HashMap extends AbstractMap implements Map, Cloneable, Serializable {}1)继承自抽象基类Abstr原创 2015-04-19 12:26:44 · 447 阅读 · 0 评论 -
Java源码分析之LinkedList
Java源码分析之LinkedList1.这个类位于java.util包下。2.继承关系public class LinkedList extends AbstractSequentialList implements List, Deque, Cloneable, java.io.Serializable1)继承AbstractSequentialList原创 2015-04-14 19:37:17 · 966 阅读 · 0 评论 -
Java源码分析之Object
Java源码分析之Object1.位于java.lang包下,从JDK1.0就有了。2.是所有类的父类,属于金字塔顶尖位置,没有父类。3.方法1) private static native void registerNatives(); static { registerNatives(); }registerNatives()方法原创 2015-04-18 21:47:44 · 463 阅读 · 0 评论 -
Java源码分析之ArrayList
自我学习源码,也借鉴了网上其他的资料,有写的不准确的地方,请轻喷,谢谢1.位于Java.util包下2.继承关系1)继承自AbstractList类2)实现了RandomAccess接口,RandomAccess接口是List 实现所使用的标记接口,用来表明其支持快速(通常是固定时间)随机访问。此接口的主要目的是允许一般的算法更改其行为,从而在将原创 2015-04-13 15:48:50 · 421 阅读 · 0 评论 -
spring 子类覆盖父类中注入的bean
我们在设计程序框架的时候,会设计一个抽象基类,子类继承这个基类,共有的方法放到基类中去,使用spring后使代码变的很简单,现在遇到的问题是在基类中注入bean后,子类不可能都会是有这个bean,那么需要考虑到子类需要覆盖或者说重新注入个性化的bean有三种方法来实现这个效果,以下是一种方法,如下面代码:抽象基类:public abstract class AbstractNameSe原创 2016-01-19 10:56:57 · 17233 阅读 · 0 评论