这次准备出一个关于B树的合集。在第一部分,先来介绍下B树的基本概念。B树与bst等二叉树不同,B树是多叉树,而且B树是自平衡树。B树的Search、Insert、Remove算法时间复杂度都是O(logN)。B树常常用于数据库。数据库常常数据量巨大,因此不可能光放到内存中,需要放到硬盘中进行存储。而
鉴于在开发环境中,我们都使用过yml配置文件,而且我们在yml配置文件中,都加入过连接数据库的配置,也就是配置我们的连接池,但是对于不同的数据库,连接数据库的Jar包也都是不一样的,而且对应的配置也是不一样的,今天阿粉就来说说这个SpringBoot项目中的,配置数据库连接的各种参数以及不同的数据库
javascript在浏览器中运行的性能,可以认为是开发者所面临的最严重的可用性问题。这个问题因为javascript的阻塞性而变得复杂,事实上,多数浏览器使用单一进程来处理用户界面和js脚本执行,所以同一时刻只能做一件事。js执行过程耗时越久,浏览器等待响应的时间越长。加载和执行一.提高加载性能1
概述GlobalFilter接口与GatewayFilter具有相同的签名。这些是特殊的过滤器,有条件地应用于所有路由。在未来的里程碑版本中,此接口及其使用可能会发生更改。GlobalFilter拦截式的契约,Web请求的链式处理,可用于实现横切、应用程序无关的需求,如Security、Timeou
大家好,我是指北君。线程安全的问题,真的算是老生常谈了。这几天看到一个HashSet线程安全的骚操作,在这里分享给大家。在本文中,我们将分享如何构造线程安全的HashSet的几种方法。使用ConcurrentHashMap工厂方法构造线程安全的HashSet首先,我们来看看_ConcurrentHa
前言现在有很多Java技术方向的同学在找工作的时候,肯定都会去招聘网站上找职位投递简历。但是在很多职位JD上往往会有这样的一个要求:熟悉分布式系统理论、设计和开发,具备复杂分布式系统构建经验。之前不少同学后台留言问过我:这个分布式系统的设计和开发经验,到底指的是什么?那么这篇文章就给大家来解释一下这
大家好,我是CUGGZ。2023年1月24日,Astro2.0正式发布。Astro是一个现代化的轻量级静态站点生成器,用于构建以内容为中心的高性能网站。2022年,Astro在Github上新增15K Star,位列2022年 JavaScript明星项目第7位。下面就来看看As
前言2023年我们公司主抓代码质量,所以单元测试必不可少,而且都写到了年底的绩效目标中了。在考虑如何达成这个目标的过程中,我发现了一个关于单元测试的IDEA插件——SquareTest,它可以帮助我们提高编写单元测试的速度,你知道吗?SquareTest插件安装安装插件安装后,您可以看到它出现在顶
你好呀,我是歪歪。给大家分享一个关于ScheduledExecutorService线程池的BUG啊,这个BUG能直接把CPU给飚到100%,希望大家永远踩不到。但是,u1s1,一般来说也很难踩到。到底咋回事呢,让我给你细细嗦嗦。Demo老规矩,按照惯例,先搞个Demo出来玩玩:项目里面使用到了Sc
这篇文章,给大家来聊一个生产级的中间件系统的架构设计实践,希望给对中间件系统感兴趣的同学一点启发。1、Master-Slave架构这个中间件系统的本质是希望能够用分布式的方式来处理一些数据,但是具体的作用涉及到核心技术,所以这里不能直接说明。但是他的核心思想,就是把数据分发到很多台机器上来处理,然
概念类模板 std::function 是通用多态函数包装器。std::function的实例能存储、复制及调用任何可复制构造(CopyConstructible)的可调用(Callable)目标——函数、 lambda表达式、 bind表达式或其他函数对象,
大家好,我是CUGGZ。最近在看caniuse.com时发现,Chrome和Edge浏览器将在109版本实验性支持CSS原生嵌套语法!1月10日,Chrome109发布;1月26日,Safari技术预览版162发布。这两个浏览器版本都带来了CSS嵌套的实验性支持。Chrome官方指出,添加将CSS样
大家好,我卡颂。在我的技术群里大家经常会聊一些宏观的技术问题,就比如:Vue和React,最终谁会被淘汰?这样的讨论,到最后往往会陷入技术的细枝末节的比较,比如:对比两者响应式的实现原理对比两者的运行时性能很多程序员朋友,会觉得:技术问题,就应该从技术的角度找到答案但实际上,一些大家纠结的技术问题,
作为一名软件开发人员,您工作中最重要的方面之一就是编写干净、可读且易于维护的代码。干净且可维护的代码不仅使您更容易处理代码库,还使其他开发人员更容易理解、修改和构建。在本文中,我们将讨论一些编写干净且可维护代码的最佳实践,您可以在软件开发项目中使用这些代码。发现在软件开发中编写干净、可读且易于维护的
在过去几年中,JavaScript已成为开发人员和工程师使用的最流行的编程语言之一。此外,JavaScript的好处在于我们可以将它用于不同的用例和目的。Web开发、移动开发、游戏开发、机器学习、人工智能,它可以在框架和库的帮助下完成所有这些。但是,Web开发人员更多地使用JavaScript,使他
我的代码的哪些部分运行时间最长、内存最多?我怎样才能找到需要改进的地方?在开发过程中,我很确定我们大多数人都会想知道这一点,在本文中总结了一些方法来监控Python代码的时间和内存使用情况。本文将介绍4种方法,前3种方法提供时间信息,第4个方法可以获得内存使用情况。time模块%%time魔法命令l
生态系统(Ecosystem)原本是一个生物学术语,意思是由一些生命体相互依存、相互制约而形成的大系统,就像我们学生时代在生物学课堂上学到的那样。隐喻无处不在,人们把这个术语移植到了IT领域中来,比如我们常说的“软件生态系统”,实际上,这个问题涉及到所谓“巨型系统”、“复杂系统”、“异构系统”等等,
__str__和__repr__有什么异同?字符串的表示形式我们都知道,Python的内置函数 repr() 能够把对象用字符串的形式表达出来,方便我们辨认。这就是“字符串表示形式”。repr() 就是通过 __repr__ 这个特殊方法来得到
大家好,我是煎鱼。前段时间我们在写Go1.20新特性和变更时,发现了一个问题有悖论。Go1有兼容性承诺,但如果发现了BUG,会破坏兼容性。那怎么办?是大胆修改,破坏掉,还是说设计如此,打死不改?写了个开头结果阳了,现在阳康还咳嗽回来接着更。Go1兼容性保障在Go1引入了Go兼容性保障《Go1andt
消息中心作为电商业务场景必不可少的核心组件,自严选上线以来,就开始了建设和演进迭代之路。截止目前,消息中心已接入200+服务,1500+消息,覆盖基础技术、供应链、分销客售、主站、交易订单、数据算法等严选所有业务场景。本文对于消息中心的技术架构演进不做详细叙述,重点介绍面向业务使用方的消息中心管理平
大家好,我是呼噜噜。我们都知道现代计算机采用0和1组成的二进制,来表示所有的信息。那大家是不是有时候会有这些疑问:为什么计算机采用了二进制?二进制是如何表示计算机的相关信息的?比如数字、字符串、声音、图片、视频等等进制进位计算法是一种常见的计算方式,常见的有十进制,二进制,十六进制十进制十进制,都是
背景看到许多写selectforupdate是行锁还是表锁的文章,但每篇文章的结论好像都不太一样。同时,是行锁还是表锁的问题直接影响着系统的性能,所以特意为大家调研一番,也就有了本篇文章,一共为大家汇总验证了20个场景下的结论。对于软件或框架来说,特别是在有大版本更新的情况下,脱离了具体版本的结论
以后会开一个板块,摸鱼快报,快速记录这几周开发中雕虫小技,也算一个错题集。1.向开发环境localhost:3000种植cookie前端使用CreateReactApp脚手架,默认以localhost:3000端口启动;后端使用golang-gin框架,使用8034端口启动。登录模块走的是sso,前
大家好,我是煎鱼。本周末在学习的时候,看到Go团队大当家RussCox(下称:rsc)在近期分享的《GopherCon2022:RussCox-Compatibility:HowGoProgramsKeepWorking[1]》,讲的是Go在兼容性方面的现有问题和思考,还埋了个新预期。如下图:他提出