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

开发工具

  • Go 语言为什么建议 append 追加新元素使用原切片变量接收返回值?

    ​1.介绍在Go语言中,切片类型比较常用,将新元素追加到切片也比较常见,因此Go语言提供一个内置函数 append,该函数可以非常方便实现此功能。虽然Go语言内置函数 append 使用非常方便,但是使用不当会不小心掉入一些“坑”。本文我们介绍一下Go语言为什么建议&n

  • 代码开发技巧之快速逆向工程

    我们都知道,在开发的时候,是百分百都能够使用到我们的实体类,各种工具类,而有些实体类,因为表中字段的增多,一个实体类,有可能有二三十个字段,而如果每一个字段都让我们自己去编辑,那你有一多半的时间,都会浪费在处理这个字段上面,所以,今天阿粉就来交给你,这个快速而又简单的根据表结构,生成实体类的小工具,

  • 聊聊字符串转树结构

    前言有一个多行字符串,每行开头会用空格来表示它的层级关系,每间隔一层它的空格总数为2,如何将它转为json格式的树型数据?本文就跟大家分享下这个算法,欢迎各位感兴趣的开发者阅读本文。例如有一个字符串:复制consttext=`LanguageJavaScriptTypeScriptNodeJSHTM

  • SpringBoot读取资源目录中的JSON文件方法

    前言最近在做一个公共相关的内容,公告里边的内容,打算做成配置化的。但是考虑到存储到数据库,需要建立数据库表;存储到配置组件中,担心配置组件存储不下;于是决定先暂时存储到项目中的资源目录中,以JSON的格式存储,待观察公告这一模块的需求变更如何,再另行做打算。本文分享SpringBoot读取资源目录J

  • 如何控制方法的调用Timeout超时,并主动中断调用请求

    前言在我们实际开发过程中,我们经常遇到一些场景:1、如果调用方法超过1秒,就应该停止调用,不要一直阻塞下去,防止把本身的服务资源搞挂。2、在不可预知可能出现死锁/死循环的代码,要加上时间的阀值,避免阻塞。很多开源框架都会有超时响应的设置;如果是我们自己开发的服务,怎么能做到这点呢?JDK的Futur

  • 彻底了解线程池的原理—40行从零开始自己写线程池

    前言在我们的日常的编程当中,并发是始终离不开的主题,而在并发多线程当中,线程池又是一个不可规避的问题。多线程可以提高我们并发程序的效率,可以让我们不去频繁的申请和释放线程,这是一个很大的花销,而在线程池当中就不需要去频繁的申请线程,他的主要原理是申请完线程之后并不中断,而是不断的去队列当中领取任务,

  • 变更数据捕获:爱彼迎、网飞和优步的关键环节

    ​译者|布加迪审校|孙淑娟现代数据堆栈(MDS)是数字颠覆者的基础。不妨以网飞(Netflix)为例。该公司开创了一种基于视频即服务的新商业模式,但其成功主要立足于实时流数据。网飞在使用分析工具向观众推送高度相关的推荐内容。它监控实时数据,对网络性能保持持续可见性。它在同步影片和节目数据库,Elas

  • Java 中的接口还可以这样用,你知道吗?

    Java​ 程序员都知道要面向接口编程,那 Java​ 中的接口除了定义接口方法之外还能怎么用你知道吗?今天阿粉就来带大家看一下 Java 中的接口还可以有哪些用法。基本特性我们先看一下接口的基本特性接口的定义需要使用关键字interface;接口定

  • Java 数据结构与算法之树(AVL)

    一、前言AVL树历史在计算机科学中,AVL树以其两位苏联发明家GeorgyAdelson-Velsky和EvgeniiLandis的名字命名,他们在1962年的论文“信息组织算法”中发表了它。它是一种自平衡二叉搜索树(BST),这是发明的第一个这样的数据结构。二、AVL树数据结构AVL自平衡二叉树的

  • 深入理解 ForkJoinPool:入门、使用、原理

    ​大家好,我是树哥。本文将从一个简单的例子出发,与大家解释为啥要有ForkJoinPool的存在。接着向大家介绍ForkJoinPool的基本信息及使用,最后讲解ForkJoinPool的基本原理。诞生原因对于线程池来说,我们经常使用的是ThreadPoolExecutor,可以用来提升任务处理效率

  • 集合 List 分片的五种实现

    前些天在实现MyBatis批量插入时遇到了一个问题,当批量插入的数据量比较大时,会导致程序执行报错,如下图所示:原因是MySQL只能执行一定长度的SQL语句,但当插入的数据量较多时,会生成一条很长的SQL,这样程序在执行时就会报错。要解决这个问题,有两种方法:第一,设置MySQL可以执行SQL的最大

  • Go 学习:那些不一样的知识点(上)

    在学习Go语言的过程中,会涉及到语法、数据结构、和一些Go特有的东西,其中有不少现在还印象深刻,本文就说说Go语言中那些不一样的地方。1、变量和函数的声明复制packagemainimport"fmt"funcmain(){varnamestringname="oec2003"age:=18fmt.

  • 监控平台SkyWalking9入门实践

    一、业务背景微服务作为当前系统架构的主流选型,虽然可以应对复杂的业务场景,但是随着业务扩展,微服务架构本身的复杂度也会膨胀,对于一些核心的业务流程,其请求链路会涉及到多个业务服务,少则三五个,多则十几个都很常见:真实的业务场景远比图解复杂,在这种模式下当请求发生故障时,或者进行优化时,需要分析链路性

  • 关于软件定时器的一些讨论

    简介这里先介绍下软件定时器和硬件定时器的区别硬件定时器:CPU内部自带的定时器模块,通过初始化、配置可以实现定时,定时时间到以后就会执行相应的定时器中断处理函数。硬件定时器一般都带有其它功能,比如PWM输出、输入捕获等等功能。但是缺点是硬件定时器数量少!!软件定时器:软件定时器允许设置一段时间,当设

  • 如何在Java中加密和解密zip文件?

    大家好,我是指北君。在本文中,我们来学习如何用Zip4j库创建受密码保护的压缩文件并将其解压。依赖让我们先把 zip4j​ 依赖关系添加到我们的 pom.xml 文件中。复制<dependency><groupId>net.lingal

  • 聊聊 Java 19 新功能,你学会了吗?

    ​Java19 在2022年9月20日正式发布,Java19不是一个长期支持版本,直到2023年3月它将被JDK20取代,这次更新共带来7个新功能。复制➜bin./java-versionopenjdkversion"19"2022-09-20OpenJDKRuntimeEnvironme

  • Spring WebFlux使用函数式编程之HandlerFunction

    本篇主要内容:RouterFunction的使用概述路由器函数用于将请求路由到相应的HandlerFunction。通常情况下,你不需要自己编写路由器函数,而是使用RouterFunctions类中的方法来创建一个。RouterFunctions.route()(无参数)为创建路由器函数提供了一个流

  • 深入浅出 JavaScript 数组

    大家好,我是CUGGZ。今天来重学JavaScript中的数组,看看有哪些你不知道的细节!一、数组基础1.数组概述数组是最常用的数据类型之一,ECMAScript数组跟其他语言的数组一样,都是一组有序的数据,但跟其他语言不同的是,数组中每个槽位可以存储任意类型的数据。除此之外,ECMAScript数

  • 超详细的JavaScript深浅拷贝实现!

    一、浅拷贝浅拷贝是指,一个新的对象对原始对象的属性值进行精确地拷贝,如果拷贝的是基本数据类型,拷贝的就是基本数据类型的值;如果拷贝的是引用数据类型,拷贝的就是内存地址。如果其中一个对象的引用内存地址发生改变,另一个对象也会发生变化。1.Object.assign()object.assign&nbs

  • TypeScript 的装饰器有哪些?

    大家好,我是前端西瓜哥。JS的装饰器还在提案中(提案了好久),还没进入正式标准,掌握半成品实在性价比不高。但装饰器实在是太强了,TypeScript还是基于第一版实现了自己的装饰器特性,并标明为实验性质,让大家能够早早地用上。目前也不少知名的第三方库(比如Nest.js)使用了TS的装饰器,还是有必

  • 四种缓存的避坑总结

    背景分布式、缓存、异步和多线程被称为互联网开发的四大法宝。今天我总结一下项目开发中常接触的四种缓存实际项目中遇到过的问题。JVM堆内缓存JVM堆内缓存因为可以避免Memcached、Redis等集中式缓存网络通信故障问题,目前还在项目中广泛使用。堆内缓存需要注意GC的问题。假如我们的设计是定时的从远

  • 使用Spring的AOP打印HTTP接口出入参日志

    前言最近在维护一个运营端的系统,和前端联调的过程中,经常需要排查一些交互上的问题,每次都得看前端代码的传参和后端代码的出参,于是打算给HTTP接口加上出入参日志。但看着目前的HTTP接口有点多,那么有什么快捷的方式呢?答案就是实用Spring的AOP功能,简单实用。思路定义个一个SpringAOP的

  • 做低代码产品经理半年后,我有哪些思考

    今年三月份我转行做了低代码平台的产品经理。最近刚刚过了半年试用期,也在复盘自己入职以来的表现。客观来说,这半年的产出并不符合我的预期,我希望自己可以发挥出更大的价值,但看起来事实并不如所愿。我在想,到底是哪里出了问题。最近自己有了一些思考结果,也跟更高阶的产品同学有了一些交流,希望在这篇文章中能将这

  • 再有人问你什么是MVCC,就把这篇文章发给他!

    ​一想到并发控制,很多人第一反应就是加锁,的确,加锁确实是解决并发问题最常见的方案。但是,其实除了加锁以外,在数据库领域,还有一种无锁的方案可以来实现并发控制,那就是大名鼎鼎的MVCC。MVCC,是MultiversionConcurrencyControl的缩写,翻译过来是多版本并发控制,他也是一

推荐阅读