java基础
She_lock
get busy living,or get busy dying.
展开
-
Java常用四大线程池用法以及ThreadPoolExecutor详解
一、为什么用线程池?创建/销毁线程伴随着系统开销,过于频繁的创建/销毁线程,会很大程度上影响处-理效率线程并发数量过多,抢占系统资源从而导致阻塞对线程进行一些简单的管理二、ThreadPoolExecutor讲解 在Java中,线程池的概念是Executor这个接口,具体实现为ThreadPoolExecutor类,学习Java中的线程池,就可以直接学习他了对线程池的配置,...原创 2018-03-08 16:12:30 · 4540 阅读 · 0 评论 -
源码分析ThreadLocal及其应用
ThreadLocal用于保存某个线程共享变量,对于同一个ThreadLocal,不同线程只能从中get,set,remove自己的变量,而不会影响其他线程的变量。源码分析:核心方法:1、ThreadLocal.get: 获取ThreadLocal中当前线程共享变量的值。2、ThreadLocal.set: 设置ThreadLocal中当前线程共享变量的值。3、ThreadLocal...原创 2019-02-26 11:01:12 · 300 阅读 · 0 评论 -
常用集合之LinkedHashMap源码浅析
众所周知 HashMap 是一个无序的 Map,因为每次根据 key 的 hashcode映射到Entry数组上,所以遍历出来的顺序并不是写入的顺序。因此 JDK 推出一个基于 HashMap 但具有顺序的 LinkedHashMap 来解决有排序需求的场景。它的底层是继承于 HashMap实现的,由一个双向链表所构成。类图源码数据结构public class Link...原创 2018-08-17 17:34:39 · 4373 阅读 · 1 评论 -
常用集合之HashSet源码浅析
类图源码构造方法public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Ser原创 2018-08-17 16:25:29 · 4360 阅读 · 0 评论 -
常用集合之HashMap源码浅析
类图源码构造方法public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V&amp原创 2018-08-17 15:56:52 · 4387 阅读 · 0 评论 -
常用集合之LinkedList源码浅析
上一篇 【ArrayList和Vector源码解刨对比】先看 LinkedList 部分源码:public class LinkedList<E> extends AbstractSequentialList<E&amp原创 2018-08-17 14:32:36 · 4372 阅读 · 0 评论 -
常用集合之ArrayList和Vector的区别源码浅析
类图由上图可知: ArrayList 实现了List、 RandomAccess、Cloneable、java.io.Serializable 接口: 而List 继承了Collection接口(Java可以多实现[implements],但只能单继承[extends])。源码分析构造方法public class ArrayList<E&am原创 2018-08-17 11:59:44 · 4313 阅读 · 0 评论 -
JDK动态代理机制
看个例子吧: 设计如下一个模型,Subject 是一个接口,RealSubject是其实现类。Proxy是用来代理RealSubject,生成一个代理对象。可以通过调用代理对象来起到调用RealSubject的效果。时序图如下:talk is cheap ,show me the example. ok,接下来看看具体例子代码。 在java的动态代理机制中,有两个重要的...原创 2018-05-15 15:37:37 · 4744 阅读 · 0 评论 -
接口回调用法解析
应用场景:比如我写一个工具,下载任务,下载任务可能成功,可能失败。为了解耦,我的这个下载工具类只能专门用来下载,如何处理成功和失败,这个就交给调用方来完成。回调接口/** * @描述: 结果回调 */public interface ResultCallback { void success(); void failure(Exception e);}...原创 2018-05-13 10:31:07 · 5134 阅读 · 0 评论 -
java8 lambda表达式
匿名对象事件处理对集合进行的一系列处理forEachfilterMapReducedistinct计算集合元素的最大值、最小值、总和以及平均值表达式语法:(params) -> expression(params) -> statement(params) -> { statements }如果你的方法不对参数进行修...原创 2018-05-02 12:30:47 · 4552 阅读 · 0 评论