首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java
订阅
仁杰一程序秀
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
面试:为了进阿里,需要深入理解ReentrantLock原理
ReentrantLock是个典型的独占模式AQS,同步状态为0时表示空闲。当有线程获取到空闲的同步状态时,它会将同步状态加1,将同步状态改为非空闲,于是其他线程挂起等待。在修改同步状态的同时,并记录下自己的线程,作为后续重入的依据,即一个线程持有某个对象的锁时,再次去获取这个…
深入ArrayList源码分析(JDK1.8)
数据结构中有两种存储结构,分别是:顺序存储结构、链式存储结构。在 Java 中,对于这四种结构分别进行实现的类有: 这里只对 ArrayList 的源码进行分析,ArrayList 是一个数组队列,相当于 动态数组 。与Java 中的数组相比,它的容量能动态增长。 ArrayL…
Docker服务开放了这个端口,服务器分分钟变肉机!
之前有很多朋友提过,当使用docker-maven-plugin打包SpringBoot应用的Docker镜像时,服务器需要开放2375端口。由于开放了端口没有做任何安全保护,会引起安全漏洞,被人入侵、挖矿、CPU飙升这些情况都有发生,今天我们来聊聊如何解决这个问题。 Dock…
面试必备 之 Java 集合框架
顾名思义,容器就是用来存放数据的。 Map 存放 key-value 键值对。 就是单身狗放 Collection 里面,couple 就放 Map 里。(所以你属于哪里? 学习源码的设计,面试要会答啊。 关于 Map,之前那篇 HashMap 的文章已经讲的非常透彻详尽了,所…
跳跃表确定不了解下😏
hello,大家好,周五见了。前面几周我们一起看了Redis底层数据结构,如动态字符串SDS,双向链表Adlist,字典Dict,如果有对Redis常见的类型或底层数据结构不明白的请看上面传送门。 今天我们来看下ZSET的底层架构,如果不知道ZSET是什么的,可以看上面传送门第…
面试官:听说你精通并发编程,来说说你对ThreadLocal的理解
ThreadLocal 是一个解决多线程并发问题的工具类,ThreadLocal有的人可能理解为本地线程,这个并不是正确的理解。「ThreadLocal并不是一个线程,应该把它理解为一个线程本地变量」。 它底层的实现原理是通过为「每一个线程提供一个共享变量的副本,每个线程的操作…
Spring 源码第六弹!容器的始祖 DefaultListableBeanFactory
在 XML 文件解析流程一文中,松哥和大家分享了 Spring 中配置文件的加载方式,如果小伙伴们还没看过,一定先看一下,这有助于更好的理解本文,传送门:Spring 源码第一篇开整!配置文件是怎么加载的?。 当 ClassPathResource 将文件以 IO 流的方式输出…
系统运行缓慢,CPU 100%,以及Full GC次数过多问题的排查思路
一般排查问题也是围绕着内存cpu等几个元素去排查。下图是一张大体的排查故障或者性能问题的过程,看图,不多说。 处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的…
Java中线程池,你真的会用吗?
在《深入源码分析Java线程池的实现原理》这篇文章中,我们介绍过了Java中线程池的常见用法以及基本原理。 关于这个问题,在那篇文章中并没有深入的展开。作者之所以这么说,是因为这种创建线程池的方式有很大的隐患,稍有不慎就有可能导致线上故障,如:一次Java线程池误用引发的血案和…