
每日一课
厚积薄发,积少成多
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
每日一题 分割平衡字符串String.charAt()影响时间
//为何第二次和第三次消耗时间还是有差距呢因为每次调用charAt时候都会将String转换为char[]数组所以直接一次转换完成后再去通过index取值就可以了提交时间提交结果执行用时内存消耗语言几秒前通过1 ms36.8 MBJava6 分钟前编译出错N/AN/AJava7 分钟前通过0 ms37.8 MBJava9 分钟前通过1 ms37.8 MBJava9 分钟前编译出错N/AN/AJavaString.charAt源码 /** The...原创 2020-06-04 16:26:38 · 210 阅读 · 0 评论 -
线程池参数,拒绝策略 实际开发设置 详解
七大参数详解:1.corePoolSize :线程池中常驻的核心线程数2.maximumPoolSize :线程池同时最多可以执行的最大线程数,此值必须大于13.long keepAliveTime 多余空闲线程的存活时间4.TimeUnit unit, 时间的单位5.BlockingQueue<Runnable> workQueue 任务队列,别提交,但是尚未执行的任务6.ThreadFactory threadFactory,表示生成线程池中工作线程的线程工厂,用..原创 2020-06-01 23:33:35 · 579 阅读 · 0 评论 -
多线程下List和线程不安全详解
原因:并发修改List的时候,因为会出现修改抢占导致根本原因:List的add方法没有添加synchronized关键字修饰如何解决:1.使用VectorWhy因为Vector的add方法是加了synchronized的modCountint expectedModCount = modCount;public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(ele...原创 2020-05-21 01:05:50 · 667 阅读 · 0 评论 -
CAS详解附源码
CAS定义:CAS 也就是CompareAndSwap 比较并交换,主要为了解决多线程下的原子性,大体思想就是在更新前,进行比较,举个例子AtomicInteger 下的compareAndSet(expect,update) expect 为期望值也就是未更新的值,update是如果期望值相同则更新的值。原理:首先compareAndSe调用了rt.jar下的Unsafe类,这个类下的大部分方法和变量都用native修饰,也就是说更多的是操作是面向地址的,也就是当我们调用时会形成系统原语,原语原创 2020-05-17 23:18:41 · 380 阅读 · 0 评论 -
语法糖demo
public class GrammaticalSugarDemo { public static void main(String args[]){ GrammaticalSugarDemo demo = new GrammaticalSugarDemo(); demo.doSomething(2); demo.doSomething(3,2,1);...原创 2019-11-07 12:35:28 · 141 阅读 · 0 评论