![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 91
小 z 想找份实习
这个作者很懒,什么都没留下…
展开
-
电商项目面试题
其实这种场景可以使用死信队列来做,就是用户提交订单之后,发送一条消息并且设置消息过期时间为半个小时(或其他时间),如果超过设置的这个时间,那么消息自动变成死信,就会被转发到死信队列中,这时候我们可以监听死信队列中的消息,然后查询一下订单的状态,如果还是未支付的话,那么更新订单的状态为已取消。在没有用RabbitMQ消息队列之前,我们可以通过设置一个定时任务,设定一个定时规则去轮询数据库查询超过半个小时而且未支付的订单,然后修改订单状态为已取消,这也是一个解决方案,但是需要轮询数据库,增加了对数据库的压力。原创 2024-05-07 17:54:30 · 708 阅读 · 0 评论 -
【Java面试篇】并发编程
-------------------------待更新-----------------------------------------------------底层采用了数组+链表,但是内部方法使用了synchronized关键字修饰,是线程安全的。JDK1.7之前:使用数组+链表实现,线程安全,使用Segment分段锁的方式,将数组分成一段一段的,当a段加锁时b段还能被其他线程访问。JDK1.8及之后:数组+链表+红黑树,丢弃分段锁,使用CAS+Sychronized实现并发安全性。原创 2024-04-26 16:34:36 · 279 阅读 · 1 评论 -
【java面试篇】Java基础
当使用HashMap的put时候,会先计算对象对应的HashCode,找到对应的位置,用equals方法比较该位置上的对象与所要加入的对象是否相等,相等则不加入,否则加入。重写一般发生在父类和子类中,方法名、参数要相同,返回类型可以是父类或者其子类,访问修饰符要大于等于父类的访问修饰符,抛出异常的范围要小于父类。所以String对象修改时会创建一个新的String对象,原指针指向新的对象。浅拷贝时会在堆上创建一个新的对象,如果对象内部有引用,则会复制引用,原引用和新引用指向同一个对象。原创 2024-04-25 13:42:32 · 856 阅读 · 3 评论