自定义博客皮肤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)
  • 资源 (1)
  • 收藏
  • 关注

原创 【redis】一文看完redission看门狗机制源码实现

Hi,今天白梦又来卷了,趁着有时间,看了Redission锁原理以及看门狗的部分源码,主要是和这两个类。看新不看旧,首先引入Redission最新版本。

2024-02-20 09:27:51 951

原创 JVM:性能监控工具分析和线上问题排查实践

在日常开发过程中,多少都会碰到一些jvm相关的问题,比如:内存溢出、内存泄漏、cpu利用率飙升到100%、线程死锁、应用异常宕机等。在这个日益内卷的环境,如何运用好工具分析jvm问题,成为每个java攻城狮必备的技能。所以白梦特意整理了jdk自带分析工具的使用,以及常见的jvm问题分析和处理。

2024-01-18 09:49:42 664

原创 终于看了ThreadLocal源码

之前看ThreadLocal原理基本是博客,但对这个还是一知半解,趁着这几天有空看了一遍,印象深刻了很多。同时发现新大陆,原来ThreadLocal在进行set、get等操作,都会有槽位清理的逻辑,来防止内存泄漏,这也是之前一直没有关注的地方。在看之前,希望大家先花亿分钟打开ThreadLocal的源码,跟着来一步一步的分析。

2023-12-28 08:52:40 369 1

原创 Javacv-利用Netty实现推流直播复用(flv)

上一篇文章《JavaCV之rtmp推流(FLV和M3U8)》介绍了javacv的基本使用,今天来讲讲如何实现推流复用。从设备获取音视频流利用javacv进行解码(例如flv或m3u8)将视频解码后数据推送到前端页面播放推流直播复用,是指假如该设备某一个channel已经在解码直播了,其他channel只需要直接拿该设备解码后的视频帧数据进行播放即可,而无需重复上面三步。实现一次解码,多客户端播放。在Netty中,每个Channel实例代表一个与远程对等方的通信链接。在网络编程中,一个。

2023-12-24 14:54:19 1593

原创 JavaCV之rtmp推流(FLV和M3U8)

FFmpeg是一款开源的多媒体处理工具集,它包含了一系列用于处理音频、视频、字幕等多媒体数据的库和工具。JavaCV集成了FFmpeg库,使得Java开发者可以使用FFmpeg的功能,比如视频解码、编码、格式转换等。

2023-12-11 19:43:51 970 5

原创 单机无锁线程安全队列-Disruptor

Disruptor是英国外汇交易公司LMAX开发的一个高性能队列,研发的初衷是解决内存队列的延迟问题。基于Disruptor开发的系统单线程能支撑每秒600万订单。

2023-12-05 21:05:37 141

原创 开发一个二方包,优雅地为系统接入ELK(elasticsearch+logstash+kibana)

生成一个logger对象交给spring容器管理。后面直接从容器取就可以了。

2023-04-01 18:39:27 1220 2

原创 2023最新ELK日志平台(elasticsearch+logstash+kibana)搭建

Elasticsearch 是一个分布式、Restful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 Elastic Stack 的核心,Elasticsearch 会集中存储您的数据,让您飞快完成搜索,并对数据进行强大的分析。Logstash 是免费且开放的服务器端数据处理管道,能够从多个来源采集数据,转换数据,然后将数据发送到数据库中。

2023-03-10 23:08:36 3156

原创 try-with-resource理解和使用

背景try-finally带来的问题在日常开发中,经常都是手动关闭资源,比如IO流,特别是使用多个输入输出流时,finally方法里写的嵌套代码真的是不堪入目,下面看一个例子:public static void main(String[] args) { BufferedInputStream inputStream = null; BufferedOutputStream outputStream = null; try {

2021-10-11 22:27:55 697

原创 为什么要用Redis压缩表,是快吗?

首先需要了解什么是压缩表,推荐Redis设计与实现第二版:https://www.w3cschool.cn/hdclil/gcqrlcqm.html为什么要用压缩表呢?是快吗?其实不是的,恰恰相反,ziplist是为了节省内存而设计出来的一种数据结构。ziplist与普通的双端列表不同的是,双端列表保存了前后指针,在Redis,一个指针是占了8个字节的。而ziplist是维护了上一个节点的长度和当前节点的长度,然后每次通过长度来计算出前后节点的位置。ziplist涉及计算,肯定有性能上的..

2021-03-06 21:21:14 233

原创 Java内部类笔记整理

前言由于平时使用内部类不多,所以对内部类只有一个很浅的认知。趁着春节有空,整理了一些内部类的使用笔记。 使用内部类的好处使用内部类可以很好地解决多重继承的问题,每个内部类都能独立地继承一个(接口的)实现。内部类的分类成员内部类静态内部类方法内部类匿名内部类 1.成员内部类public class Demo { private int num = 100; String name = "zhou"; public class Inne

2021-02-16 22:34:30 142 2

原创 Redis 哈希表中负载因子问题

最近在看Redis设计与实现,发现Redis中的哈希表也是根据负载因子的扩容和收缩。当以下条件中的任意一个被满足时, 程序会自动开始对哈希表执行扩展操作:服务器目前没有在执行 BGSAVE 命令或者 BGREWRITEAOF 命令, 并且哈希表的负载因子大于等于 1 ;服务器目前正在执行BGSAVE 命令或者 BGREWRITEAOF 命令, 并且哈希表的负载因子大于等于 5 ;上面意思是Redis在进行rdb快照备份的时候,负载因子为5。没有执行rdb快照时负载因子为1。 为什么

2021-02-15 20:58:27 1662 1

原创 Firefox、Edge下无法使用jQuery的css("margin")、css("padding”)和css("border")获取值

今天遇到了浏览器的迷惑行为,在Edge上使用jQuery的css("margin")获取值,发现获取的是空值,换了Firefox也是如此。看了jquery官方原话,发现如下一段话Retrieval of shorthand CSS properties (e.g.,margin,background,border), although functional with some br...

2020-04-15 23:22:12 412

原创 一款基于js/jquery标签拖拽排序小组件

使用1.新建配置 let option = { dragbox: { width: '400px',//dragbox宽度,可以设置为百分比 fontSize: '14px',//字体大小 backgroundColor: '#87cefa',//dragbox背景颜色 }, draglist: { listS...

2020-04-14 20:54:06 222

原创 Vue 在table中使用v-for,满足一定条数换行

<table id="example" class="table table-bordered"> <tbody><!--满足4条数据换行--> <tr v-for="(chapte...

2020-01-14 22:44:20 10976 8

原创 福昕高级PDF编辑器Foxit PhantomPDF Business v9.3.0.10826企业版+破解补丁

原文地址:https://zhouxiaoben.info/src/?p=2655福昕高级PDF编辑器(Foxit Phantom PDF),又称为福昕凤腾PDF套件,是福昕公司开发的一款专业的PDF编辑软件,它可以与Adobe Acrobat Pro相媲美。通过福昕高级PDF编辑器,用户可以在PDF文档创建后直接在PDF文档中执行编辑和修改操作, 而无需“先转为其他格式进行修改,然后再转换为...

2018-10-30 19:48:24 21975 10

java五子棋

大一的时候用java写的五子棋,用基本的数组和线程实现,有人机对战和人人对战,人机对战算法初级级别。

2018-05-28

空空如也

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

TA关注的人

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