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