摘要: 方法都比较简单,这里列出来即可: add(index,ele) //忘制定下标插入元素 add(ele) addAll(Collection <C> c) 泛型必须与调用add的泛型保持一致 set(index,ele) remove(index) remove(Object) removeAll( 阅读全文
posted @ 2019-12-09 19:45 Scorpicat 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 占位 阅读全文
posted @ 2019-12-09 19:16 Scorpicat 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 占位 阅读全文
posted @ 2019-12-09 19:15 Scorpicat 阅读(106) 评论(0) 推荐(0) 编辑
摘要: emm...记一些关键词吧 原子操作 悲观锁、乐观锁 比较交换 硬件层面 C、C#底层实现 JUC = java.util.concurrent 高级并发才使用 面试会问到 了解即可 剩下的内容交给未来的自己吧!——2019.12.9 阅读全文
posted @ 2019-12-09 18:38 Scorpicat 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 我们使用的synchronized加的锁是可以延续使用的,如下: public void test() { //第一次获得锁 synchronized(this) { while(true) { //第二次获得同样的锁 synchronized(this) { System.out.println( 阅读全文
posted @ 2019-12-09 17:54 Scorpicat 阅读(266) 评论(0) 推荐(0) 编辑
摘要: 目前阶段,我只能知其然,不能做到知其所以然,这里引用一篇其所以然的文章,为以后理解ThreadLocal做准备: https://www.cnblogs.com/ldq2016/p/9041856.html 我把它大概理解为:一个线程模型,这个模型下的线程都共享这个模型下的一个泛型引用变量,但各线程 阅读全文
posted @ 2019-12-09 12:33 Scorpicat 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 在多线程并发的情况下,同一个变量被多个线程调用,那修改的数据就不会每分每秒保持一致。例如,对于某个变量a,线程1对它进行一套操作,线程2又对它进行另一套操作,但如果cpu太忙了,太忙了,假设cpu都用来处理线程1了,线程2对a的值进行修改了,也没有应用到线程1中来。(这只是可能发生的事,不是绝对发生 阅读全文
posted @ 2019-12-09 10:58 Scorpicat 阅读(131) 评论(0) 推荐(0) 编辑