移动开发

iOS 三种画板实现方式

UIBezierPath,Quartz2D,OpenGLES 1. UIBezierPath 1 UIBezierPath 使用UIBezierPath可以创建基于矢量的路径,此类是Core Graphics框架关于路径的封装。使用此类可以定义简单的形状,如椭圆、矩形或者有多个直线和曲线段组成的形状等。 UIBezierPath是CGPathRef数据类型的封装。如果是基于矢量形状的路

Block源码解析

block源码 源码 如图所示一个正常block底层被编译成了 __main_block_impl_0结构体,该结构体里包括 _block_impl里面存储的是block的调用信息,__main_block_desc_0表示的是block内存描述。 剩下的属性即为block里引用到的属性 typedef void (^Block)(void); Block block; {

第二章 RocketMQ 基本消息

基本消息发送有三种姿势:同步、异步、单向。 同步:消息发送到 Broker 成功后,返回发送成功结果;这种可靠性同步地发送方式使用的比较广泛,比如:重要的消息通知,短信通知。 异步:消息发送出去后立即返回结果,可以在发送成功的消息回调中,查看消息是否发送成功;异步消息通常用在对响应时间敏感的业务场景,即发送端不能容忍长时间地等待 Broker 的响应。 单向:消息发送出去,Broker 不返回

Java注解实现异步导入与导出(二)

Java注解实现异步导入与导出(一) 上一篇写完了用注解实现异步导入,这一篇实现用注解异步导出。 1.背景: 导出最容易遇到的问题就是超时了,随着我们DB数据越来越多,导出时特别容易超时,这时候通常的解决办法就是优化SQL,或者直接限制导出条数,但是这两种方法都只能解决暂时的问题,过一段时间可能就又会冒出来。所以还是使用异步导出,先存到nas中,然后让用户再去下载。 2. 流程设计: 2.1 生

【Android】Room数据库的基本使用

【Android】Room数据库的基本使用 一、什么是Room 1.1 Room简介Room是Android Jetpack组件库中的一部分,对SQLite进行了封装,简化了对SQLite数据库的操作,让开发者使用面向对象的方式(通过Java/Kotlin)来操作SQLite数据库,从而避免了编写大量繁琐的SQL

2025最新OpenEuler系统安装MySQL的详细教程

2025最新OpenEuler系统安装MySQL的详细教程 一、环境准备 操作系统:OpenEuler 22.03 LTS-SP2 或更新版本 用户权限:需要root权限 网络连接:确保能连接openEuler源或配好本地repo 作者✍️提示:如果你是全新环境,可先执行 dnf makecache 构建本地缓存

mac 安装虚拟机保姆级教程(vmware fusion)

 安装前提更新MAC OS 版本安装vmware fusion(从 VMware Fusion 13.5.2 开始已支持无需输入密钥即可使用,前提需要更新mac OS 版本否则不兼容         官网链接:VMware Fusion Pro: Now Available Free for Personal Use - VMware Fusion Blo

macOS Tahoe 26 界面乱象:圆角不统一引发的视觉危机与适配指南

macOS Tahoe 26界面乱象:圆角不统一引发的视觉危机与适配指南在操作系统迭代的进程中,细节往往是决定用户体验优劣的关键。2025年推出的macOS Tahoe 26,本应凭借全新的设计理念为用户带来更优质的使用感受,然而,其在窗口圆角设计上的混乱表现,却让众多追求视觉一致性的细节控陷入了困扰。本文将深入