浅谈ArrayList及扩容机制
ArrayList ArrayList就是动态数组,其实就是Array的复杂版本,它提供了动态的添加元素和删除元素的方法,同时实现了Collection 和 List接口,能够灵活的设置数组的大小。 通过源码的分析,我们可以看到ArrayL...
ArrayList ArrayList就是动态数组,其实就是Array的复杂版本,它提供了动态的添加元素和删除元素的方法,同时实现了Collection 和 List接口,能够灵活的设置数组的大小。 通过源码的分析,我们可以看到ArrayL...
1、概念 死锁是指两个或多个以上的进程在执行过程中,因争夺资源而造成一种互相等待的现象,若无外力干涉那他们都将无法推进下去,如果资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。 产生死锁的...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
1、消息整体处理过程 这里我们将消息的整体处理阶段分为3个阶段进行分析: Producer发送消息阶段。 Broker处理消息阶段。 Consumer消费消息阶段。 Producer发送消息阶段 发送消息阶段涉及到Producer到brok...
1、前序遍历 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> lists = new ArrayList<>()...
1、 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释...
本文摘自 敖丙大神的文章 tech.souyunku.com5ea913… 你会发现,永远都不会输出有点东西这一段代码,按道理线程改了flag变量,主线程也能访问到的呀? 为会出现这个情况呢?那我们就需要聊一下另外一个东西了。 JMM(Ja...
1、 在采用Redis预减库存的时候,如果Redis扣减库存成功了,消息也通过消息中间件Rocketmq发送出去了,但是在生成订单的时候失败了。如何处理? 解决方案:将订单生成的业务放在Rocketmq的本地事务执行。如果本地事务执行失败了...
1、为什么用Redis? 因为传统的关系型数据库如Mysql已经不能适用所有的场景了,比如秒杀的库存扣减,APP首页的访问流量高峰等等,都很容易把数据库打崩,所以引入了缓存中间件,目前市面上比较常用的缓存中间件有 Redis 和 Memca...
我们都知道利用缓存可以提高系统的效率,那该如何运用缓存了? 在我的项目中,有个业务需要经常访问一张配置表,而配置表的内容是很少变化的,此时就可以利用缓存,减少服务器与数据库之间的频繁交互,从而提高效率。 实现起来非常简单 import ja...
冒泡排序介绍 冒泡排序是我们得最多的排序方式之一,原因是简单易实现,且原理易懂。顾名思义,冒泡排序,它的排序过程就像水中的气泡一样,一个一个上浮到水面。 冒泡排序代码实现 import java.util.Arrays; public cl...