首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java基础
订阅
Mike_zdy
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
Java集合源码分析之基础(六):红黑树(RB Tree)
红黑树和AVL树的思想是类似的,都是在插入过程中对二叉排序树进行调整,从而提升性能,它的增删改查均可以在**O(lg n)**内完成。 本文会从定义到实现一棵红黑树展开,还会简单介绍其与AVL树的异同。 红黑树是一棵二叉排序树。且满足以下特点: 每个节点或者是黑色,或者是红色。…
我画了近百张图来理解红黑树
之前在公司组内分享了红黑树的工作原理,今天把它整理下发出来,希望能对大家有所帮助,对自己也算是一个知识点的总结。 这篇文章算是我写博客写公众号以来画图最多的一篇文章了,没有之一,我希望尽可能多地用图片来形象地描述红黑树的各种操作的前后变换原理,帮助大家来理解红黑树的工作原理,下…
ReentrantLock 源码分析
ReentrantLock 具备: 可重入、公平/非公平、支持可中断、支持条件等待、可设置锁超时等特征。我们一起通过源码的维度来学习 ReentrantLock。
大家都说 Java 反射效率低,你知道原因在哪里么
我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运用更是常见。我相信,每次提到反射,大家的第一反应一定是反射效率低,尽量少使用。 这篇文章就来探索一下这些问题。 由于本机上安装的是 openjdk 12,所以这里就使用 openjdk 12 源码进行分析。 我…
Java 如何通过反射获取泛型的真实类型?
一、背景 在Android项目中想封装retrofit提供get、post等公共的方法,如: 返回的统一数据格式: data中的可能是以下情况: 基本数据类型的数据,如:true、1、字符串等 jso
【得物技术】深入理解synchronzied底层原理
synchronized是Java中的关键字,是一种同步锁。在多线程编程中,有可能会出现多个线程同时争抢同一个共享资源的情况,这个资源一般被称为临界资源。
通俗易懂的泛型原理及其相关知识点
前言环境:JDK1.8IntellijIDEA /Android Studio/ ASMByteViewer/byteviewcoder最近和同事讨论到泛型擦除和泛型重载、如何获取泛型,本文就泛型以
理解Java的强引用、软引用、弱引用和虚引用
Java执行GC判断对象是否存活有两种方式其中一种是引用计数。 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于(reachable)可达状态,程序才能使用它。 从JDK 1.2版本开始,对象的引用被划分为4种级别,…
为啥HashMap的默认容量是16?
集合是Java开发日常开发中经常会使用到的,而作为一种典型的K-V结构的数据结构,HashMap对于Java开发者一定不陌生。 本文就来分析下这个问题。 在Java中,保存数据有两种比较简单的数据结构:数组和链表。数组的特点是:寻址容易,插入和删除困难;而链表的特点是:寻址困难…
面试问我,创建多少个线程合适?我该怎么说
|如果好看,请给个赞现陆续将Demo代码和技术文章整理在一起Github实践精选,方便大家阅读查看,本文同样收录在此,觉得不错,还请Star为什么要使用多线程?既然多线程编程容易出错,为什么它还经久不