#包源码

源码角度分析-newFixedThreadPool线程池导致的内存飙升问题

前言使用无界队列的线程池会导致内存飙升吗?面试官经常会问这个问题,本文将基于源码,去分析newFixedThreadPool线程池导致的内存飙升问题,希望能加深大家的理解。(想自学习编程的小伙伴请搜索圈T社区,更多行业相关资讯更有行业相关免费视频教程。完全免费哦!)内存飙升问题复现实例代码ExecutorService...

阿里巴巴fastjson源码阅读(待完成)

git地址:https://github.com/alibaba/fastjson.git...

React 源码中的依赖注入方法

一、前言依赖注入(DependencyInjection)这个概念的兴起已经有很长时间了,把这个概念融入到框架中达到出神入化境地的,非Spring莫属。然而在前端领域,似乎很少会提到这个概念,难道前端的代码就不需要解耦吗?前端的代码就没有依赖了?本文将以React的源码为例子,看看它是如何使用依赖注入这一设计模式的。二...

ConcurrentHashMap底层实现原理(JDK1.8)源码分析

  ConcurrentHashMap相比HashMap而言,是多线程安全的,其底层数据与HashMap的数据结构相同,数据结构如下:    说明:ConcurrentHashMap的数据结构(数组+链表+红黑树),桶中的结构可能是链表,也可能是红黑树,红黑树是为了提高查找效率。  1、类的继承关系 publiccla...

CopyOnWriteArrayList实现原理及源码分析

  我们都知道,集合框架中的ArrayList是非线程安全的,Vector虽是线程安全的,但由于简单粗暴的锁同步机制,性能较差。而CopyOnWriteArrayList则提供了另一种不同的并发处理策略(当然是针对特定的并发场景)。  很多时候,我们的系统应对的都是读多写少的并发场景。CopyOnWriteArrayL...

Zookeeper学习之ZooKeeper源码分析

  ZooKeeper宏观分析源码,如下图所示:          要想分析源码,首先需要宏观分析整个ZooKeeper结构,要知道ZooKeeper分为两部分:服务端集群、客户端。  其中服务端:每台ZooKeeper服务器都有三个状态:初始化、运行中、结束关机。因此当服务器都处于运行时,构成一个zookeeper集...

Spring可二次开发常用接口、类及其源码详解

  Spring为了用户的开发方便和特性支持,开放了一些特殊接口和类,用户可进行实现或者继承,常见的如这些: ApplicationContextAware接口、ApplicationEvent抽象类、ApplicationListener接口、BeanNameAware接口、BeanFactoryAware...

Redis学习之API学习及Jedis源码原理分析

  Redis是一个开源的使用ANSIC语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 我们在进行Java项目开发的时候,如果要使用Redis数据库,那么常常是通过Redis的Java客户端来简化Redis的使用,例如Redisson,Je...

Redis学习之Jedis源码原理分析探究(BIO手写Jedis客户端)

  在Redis的使用过程中,大多数人都是使用现成的客户端,如Jedis,Redisson,Lettuce。因此本文研究用BIO的方式手写Redis客户端尝试,对遇到的问题进行探究及总结。  如何从架构角度思考架构分层?  Redis通讯协议RESP是怎么回事?  如何基于BIO实现Redis客户端?  Redis客户...

TreeMap核心源码实现解析

  TreeMap实现了SotredMap接口,它是有序的集合。而且是一个红黑树结构,每个key-value都作为一个红黑树的节点。如果在调用TreeMap的构造函数时没有指定比较器,则根据key执行自然排序,如果指定了比较器则按照比较器来进行排序。  1、继承关系publicclassTreeMap<K,V&g...

TreeMap源码实现类中文全解析

/***基于红黑树(Red-Blacktree)的NavigableMap实现。该映射根据其键的自然顺序进行排序,*或者根据创建映射时提供的Comparator进行排序,具体取决于使用的构造方法。**此实现为containsKey、get、put和remove操作提供受保证的log(n)时间开销。*这些算法是Corme...

Spring源码解析

一、首先来讲解下springMVC的底层工作流程  1、首先我们重点放在前端控制器(DispatcherServlet)  其类图:    因为从流程图看,用户的请求最先到达就是DispatcherServlet。他是springmvc的核心,也是中央出处理器。因此我们分析源码,先看看他是什么样的流...
代码星球 代码星球·2021-01-24

Collections.shuffle()源码分析

Java.util.Collections类下有一个静态的shuffle()方法,如下:  1)staticvoidshuffle(List<?>list) 使用默认随机源对列表进行置换,所有置换发生的可能性都是大致相等的。  2)staticvoidshuffle(List<?>li...

HashMap实现原理及源码分析

  哈希表(hashtable)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JD...

linux内核源码注解

轻松学习Linux操作系统内核源码的方法针对好多Linux爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制;一.核心源程序的文件组织:1.Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(例...
代码星球 代码星球·2021-01-24
首页上一页...678910...下一页尾页