Java类加载机制详解、Redis内存淘汰和过期删除策略原理分析|每日掘金第296期

Hello,又到了每天一次的下午茶时间。酱酱们的下午茶新增优质作者介绍和码上掘金板块,专注于发掘站内优质创作者和优质内容,欢迎大家多提宝贵意见!

酱酱们的下午茶全新改版,欢迎大家多提宝贵意见!

本文字数 3600+,阅读时间大约需要 6 分钟。

  • 【掘金酱的下午茶】亮点:
  • 前端Vite的出现解决了什么?
  • 虚拟滚动实现
  • 小程序底层架构剖析
  • 谈谈node架构中的线程进程的应用场景、事件循环及任务队列
  • 速看!!剖析红包原理,教你抢红包的正确姿势 | 京东云技术团队
  • Redis内存淘汰和过期删除策略原理分析
  • ......

筛选规则:文章发布时间在本期「掘金酱的下午茶」发布时间的 1-3 天内,且符合社区推荐标准,也会同步发布在掘金相关技术社群。

今日主理人|下午茶

本期每日掘金由 法医 负责制作。如有投稿文章,请私信👉 法医

每日干货|下午茶

主理人们会对近期(1-3 天)社区深度技术好文进行挖掘和筛选,优质的技术文章有机会出现在下方列表,排名不分先后。

『前端』

在 ESM 出现之前,Javascript 是没有一个标准的模块方案。比如说 CJS 是用于 Node 服务端的模块化方案,AMD 是用于浏览器的模块化方案。为了解决这个模块共用性问题,出现了 UMD 用于兼容这两种模块规范。鉴于上面共用性问题,实际开发中配置的打包方式,采用的还是 UMD 模式。因为这样可以避免打包而产生的规范问题,并且在 ESM 不能使用的情况下也会选择 UMD。

根据子孙元素的情况, 为祖先元素设置样式; 或者根据后面兄弟节点的情况, 为前面的兄弟节点设置样式; 这一类的需求是司空见惯的, 在早期我们往往都是需要借助 JS 来实现; 好在现在出现了 :has(), 终于可以不用 JS 来实现该类需求咯, 当然实际上 :has() 更为强大, 它可以让你根据页面任意元素的情况, 为页面任意样式设置样式, 那么下面开始...

虚拟滚动或者移动是指禁止原生滚动,之后通过监听浏览器的相关事件实现模拟滚动。所以虚拟滚动包含两部分内容

认证方式是浏览器遵守http协议实现的基本授权方式,HTTP协议进行通信的过程中,HTTP协议定义了基本认证认证允许HTTP服务器对客户端进行用户身份证的方法。

Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,nodejs是单线程执行的,它基于事件驱动和非阻塞I/O模型进行多任务的执行。在理解Node.js的工作原理时,我们需要了解进程、线程、事件循环[1]以及消息队列[2]的概念,本篇文章就基于这几点去详细介绍,帮你慢慢理解node的工作原理。

『后端』

叮咚~,红包来了!相信大家一定在日常生活中抢过红包,但每次都和"手气最佳"无缘。因此,大家都很好奇后台是如何分配红包金额的,那么今天和大家聊一下红包背后的原理,以及如何抢红包才是正确姿势!

所谓数据淘汰是指在Redis内存使用达到一定阈值的时候,执行某种策略释放内存空间,以便于接收新的数据。内存可使用空间由配置参数maxmemory决定(单位mb/GB)。故又叫"最大内存删除策略",也叫"缓存删除策略"。

通过CompletableFuture可以将复杂的业务逻辑从Dubbo线程池(大小默认200)切换到用户自定义的业务线程来执行,提升Dubbo线程池请求的处理能力,同时增加自定义业务线程池,提升服务器的资源利用率。接下来我们来看下CompletableFuture怎么异步化Dubbo接口以及其原理。

资源共享指的是在一个 Context 中的创建的 Texture 资源可以被其他 Context 所使用。一般来讲只有相同 share group Context 创建的 Texture 才可以被共享,而 Chromium 设计了一套允许不同 share group 并且跨进程的 Texture 共享机制。

昨天晚上语雀发布了关于 10 月 23 日的故障公告,公告中关于故障的时间点梳理如下:

『移动端』

首先要了解一下 AGPASMAGP 的全称是 Android Gradle Plugin,这是 Googleapkaar 打包在 gradle 平台上开发的一款插件,简单来说你通过 Android Studio 打出的 apkaar 包都是由它完成的,AGP 还为其他的插件提供了 transform 接口来实现 JVM 字节码或者其他资源的处理;ASM 是处理 JVM 字节码知名的库,它可以很简单的读取和修改 JVM 字节码。

组件化一直是移动端比较流行的开发方式,有着编译运行快,业务逻辑分明,任务划分清晰等优点,针对Android端的组件化,之前有比较系统的总结过相关文章,感兴趣的朋友,可以查看,点击直达;与Android端的组件化相比,HarmonyOS的组件化可以说实现起来就颇费一番周折,因为HarmonyOS经过更新迭代之后,最新的开发方式已经和之前兼容AOSP阶段有着很大的区别,基于最新的Api9 ,以及采用全新的ArkTs语言的开发方式,想实现组件化,就需要另谋途径。

在先前的一篇探讨了 Objective-C 类实现的文章中,忽略了一个有趣的细节:用于识别元类的函数的一个概念,即未实现的类。

私有远程库是为了防止别人访问,但是又能支持pod导入的一种很好的解决方案,一般公司项目或自己的私有项目模块采用这个方式可以实现组件化。

📖 投稿专区|下午茶

大家可以在评论区推荐认为不错的文章,并附上链接和推荐理由,有机会登上下一期。文章创建日期必须在近 1-3 天内;可以推荐自己的文章、也可以推荐他人的文章。

相关推荐
Adolf_19932 分钟前
Flask-JWT-Extended登录验证, 不用自定义
后端·python·flask
dot.Net安全矩阵9 分钟前
.NET内网实战:通过命令行解密Web.config
前端·学习·安全·web安全·矩阵·.net
叫我:松哥13 分钟前
基于Python flask的医院管理学院,医生能够增加/删除/修改/删除病人的数据信息,有可视化分析
javascript·后端·python·mysql·信息可视化·flask·bootstrap
Reese_Cool15 分钟前
【C语言二级考试】循环结构设计
android·java·c语言·开发语言
海里真的有鱼16 分钟前
Spring Boot 项目中整合 RabbitMQ,使用死信队列(Dead Letter Exchange, DLX)实现延迟队列功能
开发语言·后端·rabbitmq
Hellc00720 分钟前
MacOS升级ruby版本
前端·macos·ruby
工业甲酰苯胺27 分钟前
Spring Boot 整合 MyBatis 的详细步骤(两种方式)
spring boot·后端·mybatis
前端西瓜哥29 分钟前
贝塞尔曲线算法:求贝塞尔曲线和直线的交点
前端·算法
又写了一天BUG30 分钟前
npm install安装缓慢及npm更换源
前端·npm·node.js
平凡シンプル33 分钟前
安卓 uniapp跨端开发
android·uni-app