自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(105)
  • 收藏
  • 关注

原创 java如何从入门进阶到高级

本文整理了java各类学习资料,包含入门到高级。

2025-04-14 08:30:00 1225

原创 委托和 KVO 之间有什么区别?

表格特点委托(Delegate)KVO(键值观察)关系一对一一对多通知方式主动通知被动通知使用方式通过协议实现通过注册观察特定属性适用场景适合事件处理、UI交互适合响应数据模型变化、监听属性变化选择委托模式:当有明确的一对一关系,需要主动通知某个对象时。选择KVO:当需要观察多个对象或想要简化多个对象之间的通知时。尤其在动态数据更新时非常有用。

2025-04-14 01:00:00 325

原创 什么是单例模式?

单例模式(Singleton Pattern)是一种设计模式,确保一个类只有一个实例,并提供全局访问点。它通常用于共享资源,例如配置管理、数据库连接、日志记录等。下面是对单例模式的详细解释,结合iOS开发的实际应用。

2025-04-12 01:30:00 184

原创 什么是MVC?

MVC(Model-View-Controller)是一种设计模式,广泛应用于iOS开发中,用于组织代码和提升应用的可维护性和可扩展性。MVC把应用的内部逻辑、用户界面和用户交互分开,使得不同组件之间的职责清晰。

2025-04-12 01:00:00 263

原创 iOS 上的内存管理是如何处理的?

iOS主要通过来处理内存。

2025-04-11 08:47:19 646

原创 Swift 的主要特点和优点或缺点是什么?

Swift作为现代iOS开发的主流语言,提供了很高的灵活性和安全性,适合开发各种规模的应用程序。然而,开发过程中需要注意其生态系统的变化以及某些特性的学习。在实际工作中,常常需要根据项目需求权衡这些优缺点,选择合适的工具和方法。

2025-04-11 08:46:14 428

原创 Go语言中的垃圾回收是如何工作的?

在Go语言中,垃圾回收(Garbage Collection, GC)是管理内存的重要机制,它自动处理内存分配和回收,以减少内存泄漏和提高程序的效率。

2025-04-10 08:40:42 524

原创 Go语言中的runtime包是用来做什么的?

在Go语言中,runtime包提供了与Go运行时系统的交互接口。以下是runtime。

2025-04-10 08:39:16 383

原创 Go语言中的并发安全性是什么?如何确保并发安全性?

在Go语言中,并发安全性是指在多个 goroutine 同时访问共享资源时,能够确保数据的一致性和正确性,避免数据竞争、死锁、以及其他并发问题。这在多任务处理时尤为重要,因为不安全的并发访问可能导致程序崩溃或产生不可预测的结果。

2025-04-09 01:30:00 218

原创 Go语言中的select语句是什么?

在Go语言中,select语句用于处理多个通道的操作,它非常适合于多任务并发编程中,用于选择一个可用的通道进行发送或接收操作。这使得Go语言的并发模型更加灵活和高效。select。

2025-04-09 01:00:00 503

原创 Go语言中的通道(channel)是什么?

通道是Go语言实现并发编程的重要工具,简化了不同goroutine之间的通信。它不仅安全(避免了直接共享内存带来的问题),而且提高了代码的可读性和可维护性。

2025-04-08 01:30:00 305

原创 Go语言中的goroutine是什么?

Goroutine 由Go运行时管理,不同于操作系统的线程,它们在内存和上下文切换上更加高效。一个程序可以同时运行成千上万的goroutine。使用go关键字可以非常容易地创建一个新的goroutine。例如:go myFunction() // 在新的goroutine中运行myFunction。

2025-04-08 01:00:00 568

原创 go原子操作和锁的区别是什么?

在Go语言中,原子操作和锁都是用于实现并发编程的同步机制,但它们的工作方式和适用场景有所不同。

2025-04-07 09:20:46 559

原创 IOS开发如何从入门进阶到实战

整理了IOS开发从入门到实战的学习资料。

2025-04-07 09:19:23 2299

原创 什么是互斥锁(Mutex)?在Go语言中如何使用互斥锁来保护共享资源?

定义:互斥锁是一种同步机制,它用于保护共享资源,使同一时间只能有一个操作在访问该资源。工作原理:一个 goroutine 在访问共享资源之前需要先获取锁,完成后再释放锁。其他试图获取同一锁的 goroutine 会被阻塞,直到锁被释放。

2025-04-05 01:00:00 707

原创 在Go语言中什么是并发编程中的自旋状态

自旋锁(Spinlock)是一种通过忙等待实现的锁机制,可以在特定场合下提高并发性能。虽然 Go 语言的标准库没有直接提供自旋锁的实现,但通过使用atomic包,可以很方便地创建自己的自旋锁。在使用自旋锁时,需要注意其高 CPU 占用的特性,确保在合适的场景中使用,以避免对系统性能造成负面影响。

2025-04-05 01:00:00 246

原创 go怎么移除切片中的数据?

在 Go 中,移除切片中的数据,可以通过多种方式实现。切片的特性使得移除元素的操作相对简单,但需要注意在移除元素后切片的重新组织和可能的内存浪费问题。

2025-04-04 01:00:00 316

原创 Go语言中的panic和recover有什么作用?

在 Go 语言中,panic和recover是用于错误处理的重要机制。它们主要用于处理程序中的严重错误或异常情况,以保证程序的健壮性和可恢复性。以下是对它们的详细解释以及在实际工作中的应用。

2025-04-04 01:00:00 307

原创 go的map是无序的,每次迭代map的顺序可能不同。如果需要按特定顺序遍历map,应该怎么做呢?

通过将map中的键或值提取到切片中并利用 Go 的 sorting 函数,可以灵活地按照特定顺序遍历map。这种方法适用于不同类型的排序需求,只需调整排序的逻辑即可。

2025-04-03 01:00:00 260

原创 Go语言中的slice和数组有什么区别?

数组数组是一种固定大小的集合,大小是类型的一部分。例如,声明了一个包含 3 个整数的数组。切片切片是一个动态大小的序列,是对数组的更灵活的封装。切片背后的数组长度是动态的。例如,声明了一个整数切片,初始时没有元素。

2025-04-03 01:00:00 259

原创 Go语言中的map是什么?

你可以使用。

2025-04-02 01:15:00 231

原创 Go语言中的指针有什么作用?

指针在 Go 语言中提供了更有效的资源管理和数据传递方式,尤其是在处理复杂的数据结构和大规模数据时。正确地使用指针可以显著提高程序性能和内存效率。指针允许函数接收变量的引用,而不是复制变量的值。多个 goroutine 可以共享访问同一数据结构的指针,从而实现数据共享和协调,尽管需要小心数据竞争问题。当结构体或数组比较大时,直接传递指针会比传递值更高效,因为只需要复制指针的地址,而不是整个数据结构的内容。通过指针,你可以直接操作内存地址,这在管理和分配动态数据结构(如链表、树等)时特别重要。

2025-04-02 01:00:00 411

原创 Go语言中的defer关键字有什么作用?

在Go语言中,defer关键字用于确保某些操作在函数返回时被执行,通常用于清理工作,例如关闭文件、释放资源或解锁互斥锁。无论函数以何种方式退出(正常返回或发生panic),所有被defer声明的操作都会执行。defer。

2025-04-01 09:03:28 272

原创 Go语言中的并发是如何实现的?

在Go语言中,并发是通过和实现的。Goroutine 是轻量级的线程,可以通过go关键字轻松创建,而 channels 则用于在 goroutines 之间进行通信。

2025-04-01 09:02:08 337

原创 Golang开发新手如何从入门进阶到实战?

本文整理了go开发学习的各种资料,特别适合新手入门学习。

2025-03-31 09:00:00 2066

原创 自定义 eslint 插件, 要求常量为大写 snake 命名方式, 该怎么做?

创建 ESLint 插件:建立一个目录结构,配置。实现规则:编写规则逻辑,检查常量命名规范。使用并测试规则:在 JavaScript 项目中应用该规则。

2025-03-31 01:00:00 527

原创 eslint 是怎么做到用配置规则去检验代码异常?

ESLint 是一种广泛使用的 JavaScript 和 TypeScript 代码质量工具,它通过配置规则来检查和标记代码中的潜在问题。

2025-03-29 15:00:00 391

原创 Recoil 里面 selectorFamily 的作用是什么?和 selector 有啥区别?

在 Recoil 中,是用于创建一组可以根据参数生成的选择器的工具。它的作用和基本的selector。

2025-03-29 09:00:00 277

原创 vite 开发过程是直接将文件给浏览器?

一旦资源被更新,Vite 会通过 WebSocket 通知浏览器只更新发生变化的模块,而不会整个页面重新加载。:Vite 使用 ES 模块(ESM)的方式,它会解析请求的资源,处理依赖关系。在 Vite 的开发过程中,它并不是直接将文件提供给浏览器,而是采用一种更为高效的方式来处理文件。所以,Vite 在开发阶段通过开发服务器处理和转换文件,而不是将原始文件直接提供给浏览器。在这个阶段,它会进行许多优化,生成最终的可部署文件。:当你启动 Vite 开发服务器时,Vite 会监测项目目录中的文件变化。

2025-03-28 01:00:00 225

原创 前端面试:node 里面 stream 是什么, 有啥应用场景?

在 Node.js 中,是一个用于处理数据流的抽象接口,允许我们以块的方式读取和写入数据,而不是一次性加载整个数据。这种方式特别适用于处理大文件或需要实时处理的数据流。

2025-03-28 01:00:00 579

原创 vite 在开发过程中, 是如何处理 TS 文件的?

在前端开发中,Vite 对 TypeScript (TS) 文件的处理主要依赖于原生 ES 模块和一些工具的集成。

2025-03-27 01:00:00 231

原创 vite 与 esbuild 是什么关系?

在前端开发中,和是两个紧密相关的工具,但它们的角色和功能有所不同。

2025-03-27 01:00:00 283

原创 vite 开发和构建有何不同?

在前端开发中,使用 Vite 进行开发和构建有几个关键不同点。

2025-03-26 01:30:00 330

原创 前端有哪些性能指标?其中:FCP、LCP、TTFB、FID、TTI、CLS、TBT 等, 分别表示什么意思?

了解这些性能指标可以帮助开发者在前端开发中有针对性地优化网页加载和用户交互体验。

2025-03-26 01:00:00 546

原创 前端面试:如何去衡量用户操作过程中否卡顿?

衡量用户在应用中的操作是否卡顿是前端开发中的一个关键任务,涉及用户体验的各个方面。

2025-03-25 08:40:42 530

原创 前端面试:使用 vite 打包工程, 输出为 es6 的代码, 但是依赖的 模块是 es5 commonjs 写的;这个他是怎么处理的?

在使用 Vite 打包工程时,处理依赖 ES5 CommonJS 模块的方式主要依赖于 Vite 的构建特性和模块转换机制。

2025-03-25 08:39:29 478

原创 程序员小白如何入门量化交易?

整理了量化交易学习的相关资料,包括学习平台、博客、课程、书籍等。

2025-03-24 09:00:00 2469

原创 前端面试:前端两个 dom 元素是可以拖拽的, 要实现两个 dom 之间的连接线,如何实现?

当用户拖动其中一个元素时,连接线会自动更新位置,提供了直观的连接效果。在前端开发中,实现两个可拖拽的 DOM 元素之间连接线的功能通常涉及到以下几个步骤:设置可拖拽元素、计算连接线的起始和结束位置,并在这些位置之间绘制连线。// 清空 canvas。/* 让 canvas 不阻止鼠标事件 */// 设置 canvas 的宽高为窗口的宽高。// 计算元素在页面上的绝对位置。// 初始绘制连接线。

2025-03-24 01:00:00 941

原创 前端面试:将已经 push 到远端的两个 commit 合并成一个 commit 应该怎么做 ?

通过以上步骤,你可以将两个已经 push 到远端的 commit 合并为一个。在实际工作中,这种方法是清理和优化 commit 历史的一种有效手段,使得代码库更整洁、更易于阅读。在 Git 中,将已经 push 到远端的两个 commit 合并成一个 commit 通常涉及到使用 rebase 和 push --force 操作。接下来,Git 会提示你编辑合并后的 commit 信息。你可以修改合并后的 commit 消息,将两个 commit 的信息合并为一条更有意义的消息。根据需要修改并保存。

2025-03-22 01:00:00 452

原创 前端面试:代码里console.log比较多,该怎么办?

在开发过程中,console.log 是一种常见的调试工具,用于输出变量值和程序状态。然而,随着代码的增长,过多的 console.log 可能会显得杂乱无章,影响代码的可读性和性能。这些库提供更有效的日志管理和调试选项,比如不同的日志级别(info、warn、error 等)和更灵活的输出选项(如输出到文件或远程日志服务)。通过引入合适的工具、规范和流程,可以有效管理和减少代码中的 console.log 数量。在代码审查过程中,定期检查团队的提交,确保没有多余的 console.log 被合并。

2025-03-22 01:00:00 792

空空如也

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

TA关注的人

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