- 博客(7)
- 收藏
- 关注
原创 Java线程池配置由繁至简,找到适合自己的天命线程池(二)
上一篇我们简单介绍了下线程池的一些基本内容,不清楚或者想回顾的同学可以点进主页里查看,或者后面把链接🔗贴在评论里。我们这篇主要来解决上一篇最后提出的问题:根据项目,自己来设置合适的参数。这个合适到底要怎么来定义?且往下看。
2022-08-22 21:42:56 995 3
原创 Java线程池配置由繁至简,找到适合自己的天命线程池(一)
还记得刚入这行,还处于实习阶段的我,第一个项目就震撼到我了,因为发现自己熬夜苦读学习的知识和实际工作中需要的差别太大了,再加上项目用到的一些框架模块都很久,我连阅读代码的业务逻辑都很困难;其中让我印象深刻的就有一个封装了群发http请求的工具类,里面就用到了线程池,眼花缭乱的参数让那时的我头痛不已,有的参数甚至不知道是做什么用,为什么要设置成这个?
2022-08-22 21:27:17 1625 2
原创 Redis数据结构详解(4)-为了节约内存的数据结构(压缩列表ziplist)
前提知识🧀前面几个文章里我们介绍到了字典dict和跳表skiplist,它们都是redis为了追求性能而开发的基本数据结构,里面或多或少都借助了一些辅助的元素;例如字典dict在rehash时会同时存在两个哈希表,又或者跳表skiplist里节点多了层的结构,这些设计都是为了追求性能而牺牲了内存空间。如果你多多少少了解HashMap的底层原理的话,你就知道: 在JDK1.8中,随着元素越来越多,HashMap发生hash冲突,桶中元素大于等于8个,并且容量大于等于64时,会由链表形式转化为红黑树结构.
2022-04-06 18:13:40 1204
原创 Redis数据结构详解(3)-redis中的“排序好手”(跳表skiplist)
前提知识🧀自从通过博客开始记录学习内容、整理知识,整个人变得比以前更积极了,虽说本质是为了记录和整理,但不免对各大博客网站的阅读数和点赞评论数关心(虽然到现在还少得可怜哈哈哈),有的博客网站还有自己专属的积分值,甚至还有排行榜,我偶尔也会点开看看,幻想自己能出现在上面~(嘻嘻~梦里什么都有)问:那么这个排行榜应该怎么实现呢?(强行应题!)答:简单!数据库用一个表来维护,按积分值字段大小排序不就行了~确实可行,但因为网站的并发量高,需要快速响应,就要借助缓存来实现,而redis中刚好有一个基本数
2022-04-01 09:06:57 1486
原创 Redis数据结构详解(2)-redis中的字典dict
前提知识🧀字典,又被称为符号表(symbol table)或映射(map),其实简单地可以理解为键值对key-value。比如Java的常见集合类HashMap,就是用来存储键值对的。字典中的键(key)都是唯一的,由于这个特性,我们可以根据键(key)查找到对应的值(value),又或者进行更新和删除操作。字典dict的实现Redis的字典使用了哈希表作为底层实现,一个哈希表里面可以有多个哈希表节点,每个节点也保存了对应的键值对。Redis的字典dict结构如下:typedef stru
2022-03-28 19:07:10 465
原创 Redis数据结构详解(1)-redis中的字符串(SDS)
前提知识🧀我们先从百科上摘下Redis的解释:Redis是一个使用ANSI C编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库。(不用过多在意ANSI,它只是一个标准,你可以理解为早期民间版本很多,后来统一了标准,大学课程里包括现在在用的都是标准化后的C语言版本)没错!Redis的底层是由 C语言 实现的!大学不管是什么专业应该都有这个课,但是不管大家还有没有它的记忆,都不影响我们接下来的学习哈哈哈~redis第一步,字符串是基础回想当初学习Java,
2022-03-18 21:32:47 1738
原创 为什么JVM要用到压缩指针?Java对象要求8字节的整数倍?
前言前两天在一个帖子中看到一道面试题:堆内存超过32G时,为什么压缩指针失效?之前没有了解过这方面的知识,于是开始google起来,但当我翻看了不下一页的帖子,我都仍然没有搞懂,因为好多答案给我的感觉更像是:因为堆内存超过32G,压缩指针会失效,所以堆内存超过32G时,压缩指针会失效。我:???本着有问题搞不懂就吃不下冰激凌的原则,我决定搞清楚这个问题。32位和64位首先我们都知道知道操作系统有32位操作系统(别名 x86 )和64位操作系统(别名 x86-64 或 x64),相对的J.
2022-03-17 17:45:58 1375 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人