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

  • 【数据结构】链表

    单链表这张图是我们待会要实现的功能,我会尽可能的将每一步都说的很详细,方便理解。链表的概念及结构概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。这是较为书面的解释,这里我画个图解释一下:1的位置是当前链表的起始位置,我们称之为表头,它里面放

  • 分支限界法解决0/1背包问题(C语言实现)

    分支限界法的基本思想分支限界法的基本思想是,在分支结点上,预先分别估算沿着它的各个儿子结点向下搜索的路径中,目标函数可能取得的“界”,然后把这些儿子结点和它们可能所取得的“界”保存在一张结点表中,再根据题目要求选择表中“界”最大或最小的结点向下搜索。(一般用优先队列来处理这张结点表)这样当搜索到一个

  • Dapr 入门教程之发布订阅

    前面我们了解了如果在Dapr下面进行服务调用,以及最简单的状态管理,本节我们来了解如何启用Dapr的发布/订阅模式,发布者将生成特定主题的消息,而订阅者将监听特定主题的信息。使用发布服务,开发人员可以重复发布消息到一个主题上。Pub/sub组件对这些消息进行排队处理。该主题订阅者将从队列中获取到消息

  • 有图解有案例,我终于把Condition的原理讲透彻了

    哈喽大家好,我是阿Q!​​20张图图解ReentrantLock加锁解锁原理​​​文章一发,便引发了大家激烈的讨论,更有小伙伴前来弹窗:平时加解锁都是直接使用Synchronized​关键字来实现的,简单好用,为啥还要引用ReentrantLock呢?为了解决小伙伴的疑问,我们来对两者做个简单的比较

  • 多线程核心要点,你知道吗?

    多线程线程的状态。一、线程池提交任务时4种情况:小于corePoolSizeaddWorker()。大于corePoolSizeworkQueue.offer(command)直接增加task如果增加失败就拒绝。拒绝策略AbortPolicy抛出异常,默认。CallerRunsPolicy不使用线程

  • 调试工具的通用原理:调试四要素

    作为前端开发,调试是每天都会接触的概念。你觉得什么是调试呢?有同学说,我用ChromeDevTools调试网页,可以查看元素,网络请求,断点运行JS,用Performance工具分析性能等,这是网页的调试。有同学说,我用VSCodeDebugger调试Node.js,可以同时调试多个进程的代码。这是

  • 前端必学的动画实现思路!

    一个合理的动画是良好用户体验中必不可少的一部分。我们平常是怎样写动画的?CSS中的animation和transition,还有requestAnimationFrame?示例请看下面的示例:这是一个可添加的数字的随机乱序列表。首先想一想,我们第一直觉可能会这样做:将这些数字的DOM节点用绝对定位来

  • 面试官:Semaphore在项目中有使用过吗?

    Semaphore它就是我们之前在讲源码的时候提到的信号量,下面看下它的构造函数。复制publicSemaphore(intpermits){sync=newNonfairSync(permits);}publicSemaphore(intpermits,booleanfair){sync=fair

  • 两种方式!带你快速实现前端截图

    一、背景页面截图功能在前端开发中,特别是营销场景相关的需求中,是比较常见的。比如截屏分享,相对于普通的链接分享,截屏分享具有更丰富的展示、更多的信息承载等优势。最近在需求开发中遇到了相关的功能,所以调研了相关的实现和原理。二、相关技术前端要实现页面截图的功能,现在比较常见的方式是使用开源的截图npm

  • 聊聊最近给 Node.js 提交的几个PR

    最近因为工作中碰到的一些问题,希望给Node.js提交一些代码来解决我碰到的问题,一共提交了4个PR,目前一个已经在17.8.0中发布,一个刚合到主干,一个等reviewer回复,一个等31号tsc开会讨论。总的来说,提交的代码并不复杂,但是的确解决了我的问题,同时我觉得也是开发者需要的一些功能。下

  • 一篇带给你ElasticSearch集群部署

    ElasticSearch集群部署下载安装包下载地址https://www.elastic.co/cn/downloads/elasticsearch上传到服务器/usr/elastic目录解压复制cd/usr/elastictar-zxvfelasticsearch-7.17.0-linux-x8

  • Node.js 2021年开发者报告解读:健康稳步的发展中

      很多人觉得Node.js没有往年那么火了,事实上不是这样的,Node.js社区健康稳步的发展中,主要是从性能好向好用转变,在易用性上有很大提升,从Node.js源码更新的内容看,大抵如此。Node.jsDiagnosticsWorkingGroup是近二年Node.js社区的

  • 保姆级指南:Jekins+Docker构建部署React项目实战

    前置概念CI的含义CI的意思是持续构建。负责拉取代码库中的代码后,执行用户预置定义好的操作脚本,通过一系列编译操作构建出一个制品,并将制品推送至到制品库里面。常用工具有GitlabCI,GithubCI,Jenkins等。这个环节不参与部署,只负责构建代码,然后保存构建物。构建物被称为制品,保存制品

  • 面试官提到的 AVL 树,到底是个啥

     了解过平衡二叉树的朋友们,对它一定有印象,今天阿粉就与大家一起深入了解一下AVL树!一、摘要在上篇文章,我们详细的介绍了二叉树的算法以及代码实践,我们知道不同的二叉树形态结构,对查询效率也会有很大的影响,尤其是当树的形态结构变成一个链条结构的时候,查询最后一个元素的效率极底,如何解决这个

  • 34 个今年11月很受欢迎的 JavaScript 库

     直接开门见山,看看有哪些好用受欢迎的库值得我们使用。1.nodemonGitHub:https://github.com/remy/nodemonGitHubStars:19.6k在编写调试Node.js项目,修改代码后,需要频繁的手动close掉,然后再重新启动,非常繁琐。现在,我们可

  • Node.js模块系统源码探微

     Node.js的出现使得前端工程师可以跨端工作在服务器上,当然,一个新的运行环境的诞生亦会带来新的模块、功能、抑或是思想上的革新,本文将带领读者领略Node.js(以下简称Node)的模块设计思想以及剖析部分核心源码实现。CommonJS规范Node最初遵循CommonJS规范来实现自己

  • 不吹不黑,这个算法,你肯定不会

    01、前言我们常用缓存提升数据查询速度,由于缓存容量有限,当缓存容量到达上限,就需要删除部分数据挪出空间,这样新数据才可以添加进来。缓存数据不能随机删除,一般情况下我们需要根据某种算法删除缓存数据。常用淘汰算法有LRU,LFU,FIFO,这篇文章我们聊聊LRU算法。02、LRU简介LRU是Least

  • 分布式系统如何设计?看Elasticsearch是怎么做的

    分布式系统类型多,涉及面非常广,不同类型的系统有不同的特点,批量计算和实时计算就差别非常大。 图片来自Pexels这篇文章会重点讨论分布式数据系统的设计,比如分布式存储系统,分布式搜索系统,分布式分析系统等。我们先来简单看下Elasticsearch的架构。Elasticsearch集群架

  • Java能抵挡住JavaScript的进攻吗?

     JavaScript的进攻公元2014年,Java第八代国王终于登上了王位。第一次早朝,国王坐在高高的宝座上,看着毕恭毕敬的大臣,第一次体会到了皇权的威力。德高望重的IO大臣颤悠悠地走上前来:“启禀陛下,昨日收到战报,有个叫做Node.js的番邦又一次向我国进攻,我边防将士死伤惨重。”“

  • 你不知道的Node.js性能优化,读了之后水平直线上升!

    1、使用最新版本的Node.js仅仅是简单的升级Node.js版本就可以轻松地获得性能提升,因为几乎任何新版本的Node.js都会比老版本性能更好,为什么?Node.js每个版本的性能提升主要来自于两个方面:V8的版本更新;Node.js内部代码的更新优化。例如最新的V87.1中,就优化了某些情形下

推荐阅读