java
TingBen
这个作者很懒,什么都没留下…
展开
-
Java中的基本类型和引用类型变量的区别
[定义] 引用类型表示你操作的数据是同一个,也就是说当你传一个参数给另一个方法时,你在另一个方法中改变这个变量的值, 那么调用这个方法是传入的变量的值也将改变.值类型表示复制一个当前变量传给方法, 当你在这个方法中改变这个变量的值时,最初生命的变量的值不会变.通俗说法: 值类型就是现金,要用直接用;引用类型是存折,要用还得先去银行取现。----(摘自网上) 值传递和引用转载 2017-11-22 14:23:53 · 1487 阅读 · 0 评论 -
乐观锁+synchronized
业务场景: 同一个活动,已报名人数不能大于报名人数,每一次报名,已报名人数+1,直至已报名人数等于大于报名人数。 由于存在多个用户在同一个活动的并发情况,采用@version乐观锁来防止已报名人数信息错乱,但在并发的情况下,乐观锁只能保证数据不错乱,并不能保证业务的正常进行,因为用户已经支付活动费用成功,不能因为乐观锁计算已报名人数失败而告知用户支付失败,这个时候需要解决并发情况。 原代码:...原创 2019-06-26 14:29:25 · 875 阅读 · 0 评论 -
AQS—阻塞队列(待整理)
阻塞队列不包含 head,头结点也不包含线程 Sync 有两个实现,分别为 NonfairSync(非公平锁)和 FairSync(公平锁)。 public static ReentrantLock reenT = new ReentrantLock();//参数默认false,不公平锁 private static ReentrantLock lock = ne...原创 2019-07-08 21:24:14 · 1226 阅读 · 0 评论 -
AQS--条件队列(待整理)
//条件队列属性: 只有两个属性 firstWaiter 和 lastWaiter; public class ConditionObject implements Condition, java.io.Serializable { private static final long serialVersionUID = 1173984872572414699L; ...原创 2019-07-08 21:24:29 · 387 阅读 · 0 评论 -
ArrayBlockingQueue
1.ArrayList ArrayList是基于数组实现的List类,完全支持List接口的全部功能,底层实质上就是一个Object[]数组,是一个动态数组,可以实现容量的动态增长。ArrayList不是线程安全的。 1.扩容,逻辑为newCapacity = oldCapacity + (oldCapacity >> 1),即在原有的容量基础上增加一半。容量为minCapacit...原创 2019-07-06 11:08:00 · 317 阅读 · 0 评论