自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 资源 (7)
  • 问答 (1)
  • 收藏
  • 关注

原创 package-lock.json 文件是做什么用的?

文件是 npm(Node Package Manager)在版本 5 及以上自动生成的文件,用于锁定当前项目的依赖包的版本。文件应该被提交到版本控制系统中(如 Git),以便其他开发者在其他环境中都能够使用相同的依赖版本。文件对于确保项目的依赖包版本一致性和可重复性非常重要,并且可以提高依赖包的安装速度。命令时,npm 会自动生成或更新。文件中的依赖项,运行。

2024-08-29 18:39:40 410

原创 TypeScript 项目,自身 package 是 A,它引用了 B package。项目编译时,选择依赖版本的机制是什么?

在 TypeScript 项目中,当 package A 引用了 package B,编译 A 的过程中,B package 将按照 B package 自身的 package.json 文件中指定的各个库的版本进行编译,而不是按照 A package 中的库版本。总之,在编译 package A 时,A 中引用的 package B 将按照 B 自身的 package.json 文件中指定的库版本进行编译,确保了每个 package 使用其声明的依赖项版本,保持了 package 之间的独立性。

2024-06-03 01:16:07 380

原创 物流运输行业中,UTDI 和 EDI 的区别是什么?

在物流运输行业中,UTDI(Unified Telecommunications Data Interchange)和EDI(Electronic Data Interchange)是两种不同的数据交换标准和技术,用于在供应链中进行数据交换和通信。是一种更广泛的电信数据交换技术,不仅包括EDI,还包括语音、视频等通信数据的交换,适用于更多种类的通信场景。是一种专门用于商业文档交换的标准化数据交换技术,适用于供应链和物流行业中的订单、发票等电子文档的交换。

2024-02-04 16:11:04 327

原创 DynamoDB 的 LSI 和 GSI 有什么区别?

综上所述,LSI适用于需要在主键上进行查询和排序的场景,而GSI适用于更灵活的查询和排序需求,可以在任意属性上创建索引。选择使用LSI还是GSI取决于具体的业务需求和性能要求。在Amazon DynamoDB中,LSI(局部二级索引)和GSI(全局二级索引)是两种不同类型的辅助索引,用于在表中快速访问数据。

2024-02-01 15:58:49 414

原创 webpack 是什么?

它是前端开发中常用的构建工具之一,主要用于将项目中的多个模块和文件打包成一个或多个静态资源文件(通常是 JavaScript 文件),以便在浏览器中加载和运行。webpack 在现代前端开发中被广泛使用,它帮助开发者更有效地管理和构建复杂的前端项目,处理模块之间的依赖关系,提高了开发效率和项目的可维护性。提供了丰富的插件系统,允许开发者通过插件来扩展和定制构建过程,执行各种任务,例如代码优化、压缩、资源管理等。可以处理项目中的各种模块,并将它们打包成适合在浏览器中运行的静态资源。

2024-01-14 19:52:48 594

原创 AWS ECS、EC2、EKS 和 Fargate 之间的关系

ECS 和 EKS 都是用于容器化应用程序的服务,ECS 是 AWS 提供的自家容器服务,而 EKS 是托管的 Kubernetes 服务。在 ECS 中,可以选择使用 EC2 启动类型或 Fargate 启动类型。Fargate 是一种容器启动类型,既可以用于 ECS,也可以用于 EKS。在 Fargate 中,用户无需关心底层 EC2 实例的管理。总体而言,这些服务提供了多样化的选择,使得用户可以根据应用程序的要求选择适当的部署方式。

2024-01-04 15:20:15 3154

原创 IAM 中的 Action,sts:AssumeRole,是什么意思?

这是一种委派权限的机制,其中一个 IAM 实体(通常是 IAM 用户或 AWS 服务)请求扮演(assume)另一个角色的身份,以获取该角色所拥有的权限。在IAM策略中,可以通过指定 "Action": "sts:AssumeRole" 来授予实体执行 "sts:AssumeRole" 操作的权限。在AWS Identity and Access Management (IAM) 中,"Action" 是指一种操作或任务,而 "sts:AssumeRole" 是其中一种具体的操作。

2024-01-03 00:11:26 590

原创 AWS 的 Glue 和 Athena 有什么区别?

总体来说,如果需要执行复杂的 ETL 任务并对数据进行转换和清理,可以选择 AWS Glue。如果只需要在存储在 S3 中的数据上运行 SQL 查询,那么 Athena 可能更适合。实际选择取决于具体需求和使用情境。在某些情况下,两者也可以结合使用,例如使用 Glue 进行数据准备,然后使用 Athena 进行查询。AWS Glue 和 Athena 都是 AWS 提供的数据处理和查询服务,但它们的用途和功能有一些区别。

2023-12-18 17:53:02 1261

原创 mockito 的 InjectMocks 和 Mock 有什么区别?

是 Mockito 框架中用于测试的注解,用于创建和管理模拟对象(mocks)的不同方式。它们通常一起使用,以帮助开发者编写更简洁和易于理解的单元测试。用于注入模拟对象到被测试对象中,而。

2023-09-25 21:35:11 4493

原创 Spring 框架的 MethodInterceptor 简介

是CGLIB库(Code Generation Library)中的一个接口,用于拦截方法的调用。来创建一个代理对象,将该代理对象应用于目标对象,从而在目标对象的方法调用时触发拦截器中的逻辑。提供了强大的方法拦截和增强能力,常用于创建AOP代理,执行事务管理、性能监控、安全性检查等。接口来创建一个自定义的方法拦截器,并在其中定义希望在方法调用前后执行的逻辑。,该方法在代理对象的方法被调用时被触发。以下是一个简单的示例,演示了如何使用CGLIB的。方法中,可以在方法调用前后添加自定义逻辑。

2023-09-18 21:31:07 1104

原创 如何在 Cypress 测试中通过 URL 下载文件?

要在 Cypress 中下载一个文件,可以使用。命令来发送 HTTP 请求以获取文件,并使用。

2023-09-18 12:11:28 302

原创 Cypress 做 e2e 测试,如何在获得某个 checkbox 后先判断它是否被 check 然后再更改它的状态?

比如如果这个 checkbox 已经被 check 了,就不做操作,否则将它 check。我们假设这个 checkbox 的 data-testid 属性是。

2023-08-22 22:51:36 1047

原创 如何增大 input 上的 arrow 调整按钮?

请注意,由于 spin buttons 的样式在不同的浏览器中可能有所不同,上述代码可能只适用于 WebKit 内核的浏览器(如 Chrome 和 Safari)。如果需要在其他浏览器中调整箭头按钮的大小,你可能需要使用其他厂商前缀和选择器,或者使用不同的方法来实现。箭头调整按钮(也称为 spin buttons)是指 input 元素的类型为 “number” 或 “datetime” 时,显示在输入框两侧的用于增加或减少值的小按钮。然后,通过设置宽度和高度,我们将箭头按钮的大小调整为 24 像素。

2023-08-03 17:54:15 363

原创 Java 实现 DynamoDB 查询的 IN 表达式

【代码】Java 实现 DynamoDB 查询的 IN 表达式。

2023-06-23 00:18:56 301

原创 React state 的生命周期

Recoil 的全局状态(global state)生命周期并不是由 Recoil 库直接管理的,而是由包含全局状态的顶层组件(如根组件或应用程序的主组件)创建和管理的。组件加载(Component Mounting):顶层组件加载时,创建并初始化全局 Recoil 状态。组件卸载(Component Unmounting):当顶层组件或包含全局状态的组件卸载时,全局状态也会被清理,以释放内存和资源。当状态发生变化时,相关组件将会重新渲染以反映最新的状态。当顶层组件卸载时,全局状态也会被销毁。

2023-06-23 00:05:59 217

原创 为什么 MySQL 的联合索引不需要 partition key 和 sort key,DynamoDB 的 GSI 却需要 partition key 和 sort key?

MySQL和DynamoDB是两种不同类型的数据库,其设计和实现原理有所不同,因此在索引的要求和设计上也存在差异。

2023-06-16 14:44:02 200

原创 前端开发中常说的 bundle 是什么?

通过使用捆绑工具(如Webpack、Parcel、Rollup等),可以将这些源文件打包为一个或多个捆绑包文件。捆绑工具会分析源文件之间的依赖关系,并将它们合并为一个文件,通常是一个 JavaScript 文件(称为主捆绑包),其中包含了所有的代码和资源。在前端开发中,“bundle”(捆绑包)是指将多个源文件(例如 JavaScript、CSS、图像等)合并为单个文件的过程和结果。捆绑包的目的是将多个文件捆绑在一起,以便在浏览器中更高效地加载和传输。

2023-06-11 21:33:37 2339

原创 HTML 如何将一段文字放在另一段文字之后?要紧随不换行,并且两段文字样式是不一样的。

可以防止文字换行。然后,使用不同的类名(例如 text-style1 和 text-style2)分别给两段文字应用不同的样式。要在一段文字之后紧随而不换行地添加另一段文字,并且两段文字具有不同的样式,可以使用。可以根据需要自定义样式和调整代码,以适应具体要求和设计。元素来包裹两段文字。通过设置该类的 CSS 样式。元素和 CSS 来实现。在上面的示例中,使用了一个带有。/* 样式1的CSS样式 *//* 样式2的CSS样式 *//* 防止换行 */

2023-06-11 00:56:20 1168

原创 HTML,文字过长截断并带有“显示更多“按钮。怎么判断文字是否被截断?

要在 HTML 中实现根据文本是否被截断来动态显示或隐藏"显示更多"按钮,可以使用 JavaScript 来进行判断并控制按钮的显示状态。通过这种方式,可以根据文本是否被截断来动态显示或隐藏"显示更多"按钮。只有当文本被截断时,按钮才会显示出来,以提供展开文本的选项。接下来,根据截断状态来动态控制"显示更多"按钮的显示与隐藏。如果容器的实际高度大于可见高度,则说明文本被截断,我们将显示"显示更多"按钮;事件监听器,以便在窗口大小变化时重新检查文本截断状态,以保持按钮的显示与隐藏状态的更新。

2023-05-21 23:51:10 744

原创 如何让 HTML 的 input 组件的输入只能是数字?

属性设置为 “number”,这将限制用户只能输入数字。

2023-05-21 16:50:25 915

原创 CSS,如何让 div 的宽度自适应内部文字的宽度?

要让 div 元素的宽度自适应内部文字的大小,你可以使用 CSS 属性。则可以禁止文本换行,保证元素宽度只受内部文本宽度影响。,可以使其宽度根据内部内容自适应调整。

2023-05-12 00:50:30 7645

原创 TypeScript 对于同步函数,如何暂停其执行一段时间?

后面的代码仍然会继续执行,不会等待回调函数执行完毕再执行。如果你需要在回调函数执行完毕后再执行后续代码,可以将后续代码也放到回调函数中,或者使用异步的方式来处理。的第二个参数是要暂停的时间,以毫秒为单位。在这个例子中,我们将要暂停的时间设置为 1000 毫秒,也就是 1 秒钟。函数可以让我们在指定的时间后执行一个函数,因此我们可以将要暂停的代码放到一个函数中,然后在。在 TypeScript 中,要暂停同步函数的执行一段时间,可以使用。函数是异步的,它会在指定的时间后才执行回调函数。

2023-05-12 00:40:04 987

原创 【算法题】逐段反转链表

输入一个链表和逐段反转的长度,输出反转的结果。最后一段如果达不到给定长度,不反转。示例:输入链表“0->1->2->3->4->5->6->7”和长度 3,输出链表“2->1->0->5->4->3->6->7”。思路:从头开始逐段反转。// Package mainpackage mainimport "fmt"type Node struct { Val int Next *Node

2022-05-30 00:32:19 140

原创 【算法题】堆排序

首先要会构造堆。全部代码如下// Package mainpackage mainimport "fmt"// heapSort 堆排序func heapSort(arr []int) { makeHeap(arr) for l := len(arr) - 1; l > 0; { arr[0], arr[l] = arr[l], arr[0] l-- siftDown(arr, 0, l) }}// makeHeap 构造堆(这里是最小堆)func make

2022-05-02 18:40:14 436

原创 微服务架构的优缺点

微服务相比单体服务主要是解耦,优缺点主要从开发、运行和维护三个方面看。优点1、开发各模块不会相互影响,不容易造成代码冲突,容易做 code review 和功能测试。可以采用各自的技术栈。局部修改易部署。2、运行某个模块的异常不会影响到其它模块的运行。3、维护各模块按需扩缩容。此外,自己的数据不需要开放给无关的人员。4、业务切分开发人员关注自己的业务,便于组织管理。缺点1、开发需要考虑分布式的复杂性,比如事务和系统容错等。2、运行增加网络延迟。3、

2022-04-23 23:53:29 5104

原创 【算法题】阿拉伯数字和中文数字转换

示例:输入12051,输出一万二千零五十一。package mainimport ( "fmt" "strings")var m = map[int]string{ 0: "零", 1: "一", 2: "二", 3: "三", 4: "四", 5: "五", 6: "六", 7: "七", 8: "八", 9: "九",}func transfer(num int) string { var res string yNum := num / 10000

2022-04-18 23:29:48 543

原创 【算法题】图的 DFS 和 BFS

package mainimport "fmt"type Node struct { data string next []*Node // 代表每个节点能够访问的结点,比如 v0 的 next 为 v1,v2,v3}var m map[string]boolfunc DFS(node *Node) { if node == nil || m[node.data] { return } fmt.Print(node.data, " ") m[node.data] ....

2022-04-04 00:09:27 346

原创 【算法题】Golang使用多协程按给定顺序打印多个数组

两个channel,一个写123,另一个写abc,最终输出a1b2c3。package mainimport ( "fmt" "sync")func main() { arr := []int{a, b, c} arr2 := []int{1, 2, 3} signalCh := make(chan int) signalCh2 := make(chan int) wg := sync.WaitGroup{} wg.Add(1) go func() { defer

2022-03-30 01:17:42 986

原创 海量数据面试题整理

核心思想:分治法+外排序,或者位处理1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url?方案1可以估计每个文件安的大小为50G×64=320G,远远大于内存限制的4G。所以不可能将其完全加载到内存中处理。考虑采取分而治之的方法。遍历文件a,对每个url求取,然后根据所取得的值将url分别存储到1000个小文件中。这样每个小文件的大约为300M。遍历文件b,采...

2022-03-27 14:04:38 184

原创 动态规划和递归的区别

动态规划和递归的区别

2022-03-20 23:32:30 744

原创 【算法题】非负 int 型数据,二进制格式最高位 1 的位置

比如对于 6,输出应该是 3(6 的二进制表示是 110);对于 1956,输出应该是 11(1956 的二进制表示是 11110100100)。1、O(n) 复杂度func IdxOfHighestOne(value int) int { var res = 0 for value != 0 { res++ value = value >> 1 } return res}2、O(logn) 复杂度func I

2020-07-20 14:17:57 464

原创 【算法题】数组中重复的数字

题目描述在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字,例如如果输入长度为 7 的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字 2。package mainimport "fmt"func duplicate(nums []int) (bool, int) { for i := 0; i < len(nums); i++ {

2020-06-23 14:41:20 177

原创 【算法题】tuple 保序的全排列

package mainimport ( "fmt")func combinations(inputs [][]string) []string { var res []string for i, input := range inputs { subCombinations := combinations(append(inputs[:i], inputs[i+1:]...)) first := input[0] secon...

2020-06-08 16:44:25 275

原创 Golang pprof 使用

什么是 Profile?在计算机性能调试领域里,profile就是对应用的画像,这里画像就是应用使用 CPU 和内存等情况,也就是说应用使用了多少 CPU 资源、都是哪些部分在使用、每个函数使用的比例是多少、有哪些函数在等待 CPU 资源等等。知道了这些,我们就能对应用进行规划,也能快速定位性能瓶颈。Golang 是一个对性能特别看重的语言,因此语言中自带了 profile的库,这篇文...

2020-02-05 18:18:33 11038

原创 Android开发,完全退出APP的实现

这是每个APP开发中都会遇到的问题。要完全退出APP,需要结束所有的Activity。在网上看到的一个主要方法是用一个继承自Application的类存放所有打开的Activity,退出APP时,遍历所有Activity一一关闭。然而笔者实践发现,这种方法最后还会遗留某些Activity,原因可能是因为当前所在的Activity结束后中断了结束所有Activity过程的执行。解决方法很简单,退

2017-04-27 18:37:18 2199

原创 Android开发,使用ViewPager实现完全真正的左右循环滑动

相信读者看到这个博客时,对它的内容一定不会陌生。这是一个Android开发中非常常见的需求,并且网上也有很多实现方法。然而,就笔者目前在网上看到的实现方法,大概可分为两种。一种是将PagerAdapter中的getCount()返回值定为Integer.MAX_VALUE,即使用户看不到边界;另一种是将数据源数组多出首尾两个节点,然后在onPageSelected(int position)中进行跳转。这两种方法实际上效果都不好。第一种方法由于将ViewPager边界设成很大,性能上会受到影响,有时会出现加

2017-04-21 17:39:04 474

原创 Unreal蓝图开发,使用ScrollBox实现平滑移动的分类式菜单

笔者进行Unreal开发已经半年多了,使用过其自带的UMG,但初认为这个东西灵活性有限,很难做出非常炫丽的效果。这里介绍一下我之前做的能够平滑移动的分类式菜单,算上是较深入地挖掘了UMG的功能。

2017-04-07 17:56:41 6693 2

原创 Unreal 4 C++开发,获取序列器上物体播放的自身音轨上的语音

首先说明,这是一个非常hack的做法,非常有可能因引擎版本的升级等原因带来不稳定性,并且项目打包后可能无法得到预期结果,但在编辑器中播放是可以的。读者应把本文的重点放在解决这个问题的过程以及一些开发中用到的具体技术。我做这件事情的原因是为了获得角色播放的语音并实现一些语音可视化的功能。本文内容基于UE 4.14版本。

2017-03-06 10:55:31 2509

原创 Unreal 4引擎中,使用BehaviorTree控制AI行为的C++实现

很多这样AI的实现都是使用蓝图,尤其是国内网站上,Unreal C++的资料少之又少。本文讲述如何用C++实现一个由BehaviorTree控制的AI,并提供了源代码供读者参考。

2017-02-15 19:21:34 2196

原创 Android开发,dp、sp和px之间的关系

这个问题其实非常基础也非常简单,将几个概念罗列出即可理解。1、基本概念dp(density-independent pixel,也简写为dip):设备无关像素,用来描述组件的长宽。这是一个抽象概念,可以理解为不管设备像素密度多大,用dp描述出来的尺寸看起来都是相同的。sp(scale-independent pixel):尺度独立性像素,用来描述字体的大小。这也是一个抽象概念,可以理解

2016-10-31 14:00:59 596

使用Python的第三方库gTTS访问Google TTS服务

Google的TTS服务已经推出多时,在网上搜索国内的使用资料,大多是说要访问“http://translate.google.com/translate_tts?tl=en&q=text”这个接口。然而笔者试了一下发现,此接口目前已无法正常使用。这里给出一种非常简单的使用Google TTS服务的方法,即使用Python的gTTS库。

2017-03-28

Unreal 4引擎中,使用BehaviorTree控制AI行为的C++实现

保证可用,对应文档见http://blog.csdn.net/winfield821/article/details/55212031。

2017-02-15

springboot + hibernate + gradle结合使用工程

springboot + hibernate + gradle结合使用的工程,其中没有swagger定义的model类,但是springboot + hibernate + gradle部分是完全正确的,可供使用着参考

2016-10-24

Protocol Buffers 2.5.0(Windows版)

Protocol Buffers 2.5.0的Windows版哦,在Windows系统上编译程序时可以用到。这个资源太老了,现在官网上都不容易下载下来(经常断),我好不容易下载下来分享了哦~~

2016-08-19

lrzsz ssh客户端直接传文件的工具

本人亲测可用,用它就不用专门传输文件的xftp这样的软件了!

2015-12-23

EI会议和期刊(信号处理相关)

我花费一整天时间整理的EI会议和期刊,我的心血啊

2013-10-21

Matlab 字符串数组,单元数组和架构数组

关于matlab字符串数组、单元数组和结构

2011-08-24

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除