logo头像
Snippet 博客主题
聊聊Java锁的那些事

聊聊Java锁的那些事

昨天我们学习了HashMap相关的源码,本来打算今天写ConcurrentHashMap源码分析,但是ConcurrentHashMap涉及到一些锁的概念,所以我觉得越是底层的东西,越是要好好研究一番,今天趁此机会好好的系统学习一下。 那么今天就来聊聊Java锁的那些事情。Java为我们提供了...

深入分析HashMap源码

深入分析HashMap源码

Map这种Key-Value格式的数据结构在日常开发中是非常的常见,大部分的高级编程语言都有Map类型,Map类型常用于在内存中存取数据。 在Java中,HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新...

红黑树深入剖析及Java实现

红黑树深入剖析及Java实现

谈到数据结构的树,笔者的印象中还是在大学时期的概念,最早的概念源自于哈夫曼树(最优二叉树),其他的树结构还有二叉查找树、完全二叉树、平衡二叉树(又分为AVL树、RB红黑树、SBT、伸展树、TREAP、替罪羊树 )、平衡多叉树(B - Tree 和B+ Tree)等,今天我们来研究一下平衡二叉树...

谈谈国内大环境下的996加班文化

谈谈国内大环境下的996加班文化

LZ每天都要打开开源中国网站看看互联网百态,在今天的网站里,看到了两件有意思的趣事: 抵制996加班文化996.icu,大家在996I.ICU GitHub畅谈自由、吐槽加班 某程序员删库跑路制作的网站-安徽汽车网是由简单的图片显示拼接而成的。 996加班文化无论是传统行业,...

视频下载神器之you-get

视频下载神器之you-get

我们日常上网过程中,需要将网页中的视频资源提取下载出来,一般如果网站没有屏蔽视频地址且用的是非Flash播放器(现流行HTML5播放器),我们可以在视频播放器右键直接下载视频资源,但是国内网站运营商为了保护版权,会将真正的资源地址屏蔽起来,我们无法找到真实地址并进行下载。因此出现了好多第三...

GC调优基础之堆大小

GC调优基础之堆大小

调整堆大小GC调整的第一堂课是调整应用程序堆的大小。关于堆大小的调整还有更高级的话题,不过作为第一步,我们首先讨论如何设置总体堆的大小。 与其他的性能问题一样,选择堆的大小其实是一种平衡。如果分配的堆过于小,程序的大部分时间可能都消耗在GC上,没有足够的时间去运行应用程序的逻辑。但是,简单粗暴...

局域网文件共享与下载服务新姿势

局域网文件共享与下载服务新姿势

在平常生活或工作中,我们经常需要传输文件,比如将电脑上下载的App传送到手机或另一台PC上、同事之间传输一些大型的文件。当我们遇到此类问题时,首先想到的就是使用QQ或者微信,更深一层,去网上搜索一些文件传输工具,如Send Anywhere,LZ当时在大学时候经常使用的是FTP、Samba服务...

RabbitMQ工作模式之简单模式

RabbitMQ工作模式之简单模式

今天我们来学习一下RabbitMQ工作模式之简单模式,在学之前我们根据官方文档(纯英文文档,可以装个Chrome插件选中翻译)学习一下RabbitMQ的一些术语,这才能让我们更深入的了解。 准备条件本教程假定RabbitMQ已在标准端口(5672)上的localhost上安装并运行。如果您使用...

RabbitMQ概述

RabbitMQ概述

之所以今天写RabbitMQ学习专栏,主要是因为自己没有真正的系统学习过。之前工作经历中都是为用MQ而用的MQ,对MQ整个内部机制没有一个深入的了解和系统的学习。比如我们用Spring Cloud Stream或Spring Cloud Bus组件时候,我们会经常碰到MQ。MQ产品市面上有很多...

Docker安装分布式消息中间件-RabbitMQ

Docker安装分布式消息中间件-RabbitMQ

RabbitMQ是流行的开源消息队列系统,采用天生抗并发的erlang语言开发。RabbitMQ是AMQP(高级消息队列协议)的标准实现。接下来,我们通过Docker的方式安装RabbitMQ。 查看RabbitMQ版本进入docker hub官方镜像仓库或阿里docker镜像库,搜索rabb...