![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JDK源码
小马不奔腾
这个作者很懒,什么都没留下…
展开
-
多线程之深入理解线程池执行器ThreadPoolExecutor
一. 为什么使用线程池?a.线程创建所需时间为T1,线程执行任务时间为T2,线程销毁时间为T3,而往往T1+T3>T2。所以频繁创建线程会损坏而外的时间。b.如果有任务来了,再去创建线程的话效率比较低。c.线程池可以管理控制线程,线程是稀缺资源,如果无休止的创建会消耗系统资源,还会降低系统稳定性。使用线程池可以进行统一分配,方便调优和监控,重复利用。d.线程池提供队列,存放缓冲等待执行任务。二. 有多少种线程池?Java通过Executors提供四种线程池,分别为:newCache原创 2020-06-23 17:42:08 · 500 阅读 · 0 评论 -
创建线程的三种方式-继承Thread,实现Runnable以及实现Callable
创建线程的三种方式实现Runnable接口继承Thread类实现Callable接口Runnable接口,其实就是提供一个run()方法,让实现它的类覆盖这个run()方法。@FunctionalInterfacepublic interface Runnable { /** * 当使用实现接口Runnable的对象创建线程时,启动该线程将导致在该单独执行的线程中调用对象的run方法。 * run方法的一般约定是,它可以采取任何操作 * *原创 2020-06-11 01:47:47 · 920 阅读 · 0 评论 -
Java基础——代理(静态代理、JDK动态代理、Cglib动态代理)
代理模式 为其他对象提供一个代理以控制对某个对象的访问。代理类主要负责为委托了(真实对象)预处理消息、过滤消息、传递消息给委托类,代理类不现实具体服务,而是利用委托类来完成服务,并将执行结果封装处理。 其实就是代理类为被代理类预处理消息、过滤消息并在此之后将消息转发给被代理类,之后还能进行消息的后置处理。代理类和被代理类通常会存在关联关系(即上面提到的持有的被带离对象的引用),代理类本身不实现服务,而是通过调用被代理类中的方法来提供服务。静态代理&nb原创 2020-05-26 18:39:56 · 283 阅读 · 0 评论 -
JDK源码分析——HashMap(JDK1.8)
1. 概述本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多...转载 2019-01-22 15:32:41 · 223 阅读 · 0 评论 -
JDK源码分析——不可变的String类
##String 源码分析在研究String源码之前,因为String类是用final修改的,所以必须先了解一下final,如果对final非常了解的话,可以跳过,直接看String的源码分析。##关键字 final(此处参考: 原文链接: Javarevisited 翻译: ImportNew.com - 唐小娟 译文链接: http://www.importnew.com/7553.htm...原创 2019-01-16 15:45:02 · 258 阅读 · 0 评论 -
JDK源码分析——Object
##Object 源码分析#Object源码package java.lang;/** * Class {@code Object} is the root of the class hierarchy. * @author unascribed * @see java.lang.Class 默认是所有类的父类 * @since JDK1.0 Object类是类层...原创 2019-01-16 14:03:14 · 160 阅读 · 0 评论 -
JDK源码分析——Queue接口
##Queue源码分析#Queue源码package java.util;/** * Queue队列 接口 */public interface Queue<E> extends Collection<E> { /** * 将指定的元素插入到此队列中,如果可以立即执行此操作,而不会违反容量限制, true在成功后返回 * Ille...原创 2019-01-21 16:29:08 · 229 阅读 · 0 评论 -
JDK源码分析——Stack类(栈)
##Stack源码分析#Stack源码package java.util;/** * Stack栈 FILO */publicclass Stack<E> extends Vector<E> { /** * 创建一个空栈 */ public Stack() { } /** * push 新增一...原创 2019-01-21 16:26:52 · 618 阅读 · 0 评论 -
JDK源码分析——Vector(线程安全的队列)
##Vector 源码分析#Vector源码(只分析了大部分方法)/* * Vector是同步的。 如果不需要线程安全的实现,建议使用ArrayList代替Vector * 几乎所有的方法都是synchronized方法修饰的。 */package java.util;import java.io.IOException;import java.io.ObjectInput...原创 2019-01-21 16:24:53 · 346 阅读 · 0 评论 -
JDK源码分析——LinkedList(双端链表)
Java集合框架----LinkedList###LinkedList源码:package java.util; import ...原创 2019-01-18 16:59:56 · 284 阅读 · 0 评论 -
JDK源码分析——Iterator接口、Collection接口、ArrayList类
##集合框架从类图结构可以了解 java.util包下的2个大类:1、Collecton:可以理解为主要存放的是单个对象2、Map:可以理解为主要存储key-value类型的对象##Iterator接口分析package java.lang;import java.util.Iterator;import java.util.Objects;import java.util.S...原创 2019-01-18 14:55:26 · 201 阅读 · 0 评论 -
JDK源码分析——Integer
##Integer源码分析#Integer源码如下: (目前只关注一些重点方法解析)package java.lang;import java.lang.annotation.Native;public final class Integer extends Number implements Comparable<Integer> { /** * @N...原创 2019-01-17 13:43:52 · 411 阅读 · 0 评论