深圳幻海软件技术有限公司 欢迎您!

  • 【Spring boot】RedisTemplate中String、Hash、List设置过期时间

    Redis中String设置时间的方法redisTemplate.opsForValue().set("loginCode","254588",2,TimeUnit.SECONDS);//过期时间2秒redisTemplate.opsForValue().set("loginCode","25458

  • 【C++】二叉搜索树

    文章目录一、二叉搜索树的概念二、二叉搜索树的优点三、二叉搜索树的操作及实现1、二叉搜索树的查找2、二叉树的插入3、二叉搜索树的删除4、二叉搜索树的递归实现5、模拟实现完整代码四、二叉搜索树的应用五、二叉树进阶面试题一、二叉搜索树的概念二叉搜索树又称二叉排序树,它具有一下性质:若它的左子树不为空,则左

  • B+Tree详解

    B+Tree的来源在日常的开发和面试中经常接触的就是InnoDB存储引擎中的B+Tree索引。而学习B+Tree之前先要学习二叉查找树,平衡二叉树,B数这三种数据结构。二叉查找树上图就是根据User表创建的二叉查找树的索引。通过图片可知二叉查找树中的每个节点都存储了键(key)和值(data)。ke

  • 【C++】哈希——unordered系列容器|哈希冲突|闭散列|开散列

    文章目录一、unordered系列关联式容器二、哈希概念三、哈希冲突四、哈希函数五、解决哈希冲突1.闭散列——开放定址法2.代码实现3.开散列——开链法4.代码实现六、结语一、unordered系列关联式容器在C++98中,STL提供了底层为红黑树结构的一系列关联式容器,在查询时效率可达到log2N

  • uniapp|微信小程序获取当前城市名称--逆地址解析

    六年代码两茫茫,不思量,自难忘6年资深前端主管一枚,只分享技术干货,项目实战经验关注博主不迷路~文章目录问题解决步骤看文档逆地址解析1.创建应用2.uniapp配置3.代码部分总结问题uniapp开发的小程序需要获取当前城市名称解决步骤看文档当然是看uniapp文档,我们查到有提供相关的API,即u

  • 当ChatGPT遇见Python

    在如火如荼的ChatGPT大潮当中,已经衍生出了各种各样的周边产品。Python作为著名的万金油工具,怎么能没有它的身影呢。今天我们就介绍两种通过Python调用ChatGPT的方法,一起来看看吧!chatgpt-wrapper这是一个开源在GitHub上的项目,通过自动化工具Playwright来

  • HashMap底层实现原理

    HashMap采用Node<K,V>数组来存储key-value对,每一个键值对组成了一个Node实体,Node类实际上是一个单向的链表结构,它具有Next指针,可以连接下一个Node实体。HashMap在JDK1.8之前和之后的区别JDK1.8之前,数组+链表存储结构缺点就是哈希函数很

  • 分布式锁实战-基于Etcd的实现很优雅

    一、etcd简介1.etcd的背景虽然Kubernetes给云原生时代带来了颠覆性的新气象,但却很少人了解被钦定作为其后端存储的etcd,本篇从分布式锁视角梳理etcd的各种机制,探索基于etcd的锁实现是怎样。etcd能被Kubernetes 如此青睐,是因为它一直在聆听社区的声音并快速

  • Java服务限流算法

    一、概述限流其实就是对服务的请求做一下QPS的控制,对于有些免登录的接口需要做一下访问的限制,不能无限制的去请求接口,不然的话会给服务器造成很大的压力,而且我们也希望一些接口做一下控制,控制请求量,这样我们就可以做一个plugin对服务做限流操作,超出限流就返回请求失败,保证系统的稳定运行。主要概念

  • 掌握 TypeScript 中的映射类型

    DRY原则(Don'trepeatyourself)是软件开发中最重要的原则之一,即不要重复自己。应该避免在代码中的两个或多个地方存在重复的业务逻辑。在TypeScript中,映射类型可以帮助我们避免编写重复的代码,它可以根据现有类型和定义的一些规则来创建新类型。下面就来看一下什么是映射类型以及如何

  • 九个应知应会的单行Python代码

    当我们开始学习Python时,我们通常会优先编写能够完成工作的代码,而不会关注代码的可读性以及代码的简洁性和效率。确切来说,这是完全没有问题的,但是有一些方法可以在不忽略可读性的情况下缩短我们的Python代码。单行Python代码,只要我们能够正确的使用它们,那么我们将能够很好的兼顾简洁和可读性!

  • 手写 Vue3 响应式系统:核心就一个数据结构

    响应式是Vue的特色,如果你简历里写了Vue项目,那基本都会问响应式实现原理。而且不只是Vue,状态管理库Mobx也是基于响应式实现的。那响应式是具体怎么实现的呢?与其空谈原理,不如让我们来手写一个简易版吧。响应式首先,什么是响应式呢?响应式就是被观察的数据变化的时候做一系列联动处理。就像一个社会热

  • 你知道疯狂的字典吗?

    你好,我是somenzz,Python的灵活程度让人发指,今天来分享一下关于字典的疯狂操作,计算斐波那契数列,话不多说,先看代码:代码定义了一个类FibDict,继承自dict,自定义了魔术方法__missing__当dict查找key失败(missing)的时候,会由Python解释器自行调用改方

  • TypeScript 类型挑战:元组转换为对象

    高质量的类型可以提高项目的可维护性并避免一些潜在的漏洞。一些前端面试中考察到了TypeScript高级类型的定义,本系列主要解答来自TypeChallenges项目中的TS类型挑战问题,以此更好的了解TS的类型系统,编写自己的类型工具,更好的应对前端面试。下面来看一个难度为简单的题目:元组转换为对象

  • 如何正确使用 ThreadLocal,你真的用对了吗?

    前言当多线程访问共享且可变的数据时,涉及到线程间同步的问题,并不是所有时候,都要用到共享数据,所以就需要ThreadLocal出场了。ThreadLocal又称线程本地变量,使用其能够将数据封闭在各自的线程中,每一个ThreadLocal能够存放一个线程级别的变量且它本身能够被多个线程共享使用,并且

  • Vue.js设计与实现之十三-渲染器的核心功能:挂载与更新02

    1、写在前面在上篇文章中介绍了虚拟节点的挂载与更新,以及虚拟DOM节点上的属性设置,封装了新的卸载函数unmount。那么,虚拟节点上的事件又是如何处理的呢,同一个事件设置多个处理函数,同一个元素绑定多个事件,触发事件和绑定事件的时机问题应该如何处理?2、事件的处理在Vue.js的事件处理先要解决的

  • TS 类型体操:索引类型的映射再映射

    TypeScript给JavaScript加了套静态类型系统。其中,JavaScript中的数组、对象等聚合多个元素的类型在TypeScript中对应的是索引类型。比如这就是一个索引类型:复制typeobj={name:string;age:number;gender:boolean;}1.2.3.

  • 余额并发扣减一致性,能否使用Redis事务?

    《并发扣款,如何保证数据的一致性?》一文的核心观点是:使用CAS乐观锁,在写回余额时加上旧余额的比对,可以在不影响吞吐量的前提下,保证余额的一致性。文章非常多朋友留言问,能不能把余额放到reids里,利用redis的事务性来扣减余额。今天,就这个问题简单的说一下。redis如何实现事务性?本质也是乐

  • 内存KV缓存/数据库,可以选择它? | 1分钟系列

    互联网业务,绝大部分场景,会使用缓存服务。《选redis还是memcache,源码怎么说?》《memcache内核的知识点,值得收藏》但有时候,确实会使用到进程内存缓存/数据库,这个时候,LevelDB就能派上用场了。啥是LevelDB?LevelDB是Google开发的,一个速度非常块的KV存储库

  • 面试官:你是如何使用JDK来实现自己的缓存(支持高并发)?

    需求分析项目中经常会遇到这种场景:一份数据需要在多处共享,有些数据还有时效性,过期自动失效。比如手机验证码,发送之后需要缓存起来,然后处于安全性考虑,一般还要设置有效期,到期自动失效。我们怎么实现这样的功能呢?解决方案 使用现有的缓存技术框架,比如redis,ehcache。优点:成熟,稳

推荐阅读