自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 面试官问你是否了解JUC包?

JUC源码简析线程安全性:多个线程访问某个类时,这个类始终都能表现出正确的行为,那么就称这个类是线程安全的。如何保证一个类的线程安全:变量不共享变量在线程间隔离。例如:局部变量、ThreadLocal等。共享不可变共享可变加同步乐观锁对数据的安全性持乐观的态度,认为该数据不会被别人改变,就算改变了再选择"原谅"就好了。代表:CAS悲观锁对数据的安全性持悲观的态度,认为共享的数据必定会被改变,所以在使用该数据时必须强占。代表:synchronized、Reentra

2021-06-21 14:59:36 648

原创 这么简单的CountDownLatch你竟然说你不会?

文章目录前言一、CountDownLatch源码总览二、关键方法源码分析countDown()await()CountDownLatch如何使用总结前言CountDownLatch顾名思义是一个倒计数闩锁,这次我们来玩点新东西,如果你不知道这个类怎么用,我们来通过源码来看看这个类有什么用!先看源码再使用!是谁给我的自信?竟然先看源码再使用,而不是先使用再研究源码?因为CountDownLatch源码真的是 超!级!简!单!接下来让我们一起来看看吧!一、CountDownLatch源码总览看!

2021-04-28 09:36:53 376 2

原创 CountDownLatch是(算)什么东西?

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码

2021-01-26 10:53:00 551 3

原创 ReentrantLock源码详解

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2020-11-27 14:01:27 623 2

原创 多线程并发的开端-AQS

文章目录前言一、AQS是什么?二、源码解析1.引入库2.读入数据总结前言多线程并发在java中有着举足轻重的地位。在日常的增删查改项目中可能接触的比较少,可能就线程池接触的多一点,但线程池实现原理中肯定也有AQS的影子。要想理解多线程并发,AQS这个核心类是绕不过的。那么AQS是个什么东西?是如何实现的呢?我们一起来看看。一、AQS是什么?它的全称是AbstractQueuedSynchronizer,是juc包下的一个核心类。它提供了用于实现依赖先进先出(FIFO)等待队列的阻塞锁和相关同步器

2020-11-25 10:36:55 341 1

原创 xxl-job在项目中的使用

xxl-job在项目中的详细使用。

2024-04-27 17:38:52 1541 1

原创 mybatis插件使用详解

mybatis插件使用

2024-04-21 13:25:35 454 1

原创 nacos之config详细入门

nacos 官网:https://nacos.io/

2024-04-21 00:32:55 558

原创 安装nginx

nginx安装

2023-05-03 12:01:44 158

原创 Linux安装JDK

将安装包上传到Linux服务器的 /opt目录下(可自定义选择目录),然后解压。在文件的最后添加以下参数(注意:你的目录如果不一样,则需要修改下)至此,恭喜你,jdk已经安装完成了!编辑 /etc/profile 文件。添加完成保存后重新初始化配置文件。如果显示如下内容,则表示安装成功。

2023-03-27 18:18:29 177

原创 工作遇到的问题处理,持续更新中...

问题处理记录

2023-02-20 10:43:46 621 1

原创 RocketMQ之NameServer详解

文章目录前言一、NameServer的作用二、NameServer启动过程1.启动类NamesrvStartup2.读入数据总结前言RocketMQ是阿里巴巴开源的一个顶级项目,高性能加上几乎能做到零丢失率让它在越来越多的企业项目中运用,这篇文章不会讲RocketMQ在项目中去如何使用,而是基于源码级别进行剖析讲解。首先来看看RocketMQ的架构图。RocketMQ分为四个部分:1、NameServerNameServer是RocketMQ的路由中心,用于Broker服务的注册和发现,类似z

2021-04-10 21:37:05 6532 3

原创 线程池原理ThreadPoolExecutor

文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言上一篇已经介绍完了ThreadPoolExecutor结构体系,也对FutureTask做了详细的分析,这次将对ThreadPoolExecutor源码进行详细分析,面试过程中问到的线程池原理和重要参数也都是在这个类中,作为线程池的核心实现类,学习多线程无论如何都要把这个类给掌握了。提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决

2021-01-25 12:20:02 200 1

原创 线程池原理FutureTask,你懂了吗?

文章目录前言一、ThreadPoolExecutor结构体系二、使用步骤1.引入库2.读入数据总结前言线程池在项目中使用的还是比较多的,那为什要用线程池呢?线程池顾名思义,是放线程的池子,主要有以下优势:复用线程可以降低系统的资源消耗。通过已有线程来处理请求,可以提高系统响应效率。方便管理线程,保证系统的稳定性,防止并发量大而导致无限制创建线程产生OOM等问题。提供更强大的功能,如延时定时线程池。下面我通过分析ThreadPoolExecutor类的源码来介绍线程池原理。一、Thre

2020-12-24 12:38:57 546 1

原创 LinkedHashMap比HashMap多了啥?

文章目录前言一、LinkedHashMap数据结构二、源码分析1.主要属性2.构造函数2.关键方法1、afterNodeAccess(Node e)2、afterNodeInsertion(boolean evict)总结前言继承自HashMap,LinkedHashMap = HashMap + LinkedList,话不多说,直接看源码。一、LinkedHashMap数据结构双链表结构:单向链表 + 双向链表。如下图所示:再来看看源码数据结构static class Entry<

2020-11-23 22:02:29 597 6

原创 jdk1.8的HashMap源码解析

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、HashMap是什么?二、HashMap源码解析1.主要属性2.构造方法3.构造方法总结前言HashMap在工作中是最常用的一种数据结构,那么深入了解它的工作原理也成了必不可少的一环,而且大部分面试都会问到HashMap底层原理,学习它益处多多。一、HashMap是什么?HashMap是基于数组+单向链表+红黑树等基本数据结构组成的一种存储key-value键值对的数据结构。基于hash操作查找速度非常快。使用

2020-11-15 22:00:03 662 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除