iOS 三种画板实现方式 UIBezierPath,Quartz2D,OpenGLES 1. UIBezierPath 1 UIBezierPath 使用UIBezierPath可以创建基于矢量的路径,此类是Core Graphics框架关于路径的封装。使用此类可以定义简单的形状,如椭圆、矩形或者有多个直线和曲线段组成的形状等。 UIBezierPath是CGPathRef数据类型的封装。如果是基于矢量形状的路 移动开发 2025年06月23日 38 点赞 0 评论 6217 浏览
史上最全的 IDEA Debug 调试技巧(超详细案例) Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。 所以学习下如何在Intellij IDEA中使用好Debug,主要包括如下内容: Debug开篇 基本用法&快捷键 变量查看 计算表达式 智能步入 断点条件设置 多线程调试 回 移动开发 2025年06月23日 134 点赞 0 评论 14431 浏览
DownloadManager 使用 最近做SDK开发,有个简单的下载功能,为了方便及不增加第三方库,遂采用了系统的DownloadManager来处理下载任务。 官网的说明: The download manager is a system service that handles long-running HTTP downloads. Clients may request that a URI be downloaded t 移动开发 2025年06月23日 186 点赞 0 评论 12362 浏览
RunLoop最细详解 Runloop的实现机制 RunLoop 通过mach_msg()函数接收、发送消息。它的本质是调用函数 mach_msg_trap(),相当于是一 个系统调用,会触发内核状态切换。在用户态调用时会切换到内核态; 而内核态中内核实现了mach_msg()函数会完成实际的工作。 RunLoop基本作用 保持程序的不断运行 处理App中的各种事件,触摸事件,定时器事件 节省CPU的资源,提高程序 移动开发 2025年06月22日 154 点赞 0 评论 18349 浏览
Netty线程模型相关概念知识 点击查看 官网 点击查看NIO相关的知识 Java - NIO网络编程 一、Netty 简介 Netty是一个高性能、高可扩展性的异步事件驱动的网络应用程序框架,它极大地简化了TCP和UDP客户端和服务器开发等网络编程。 Netty重要的四个内容 Reactor线程模型:一种高性能的多线程程序设计思路 Netty中自己定义的Channel概念:增强版的通道概念 ChannelPipelin 移动开发 2025年06月22日 110 点赞 0 评论 6912 浏览
如何设计一个可靠传输协议? 1.0——设计一个理想化的可靠传输协议 topdown理解计算机网络这本书从1.0升级到3.0带我们走进可靠协议的设计思路,不可靠的本质是loss&&bit error,假定没有这种bad case,作者带领我们设计一种完美可靠传输协议,版本1.0。 发送端【rdt_send】可靠传输提供给应用层的发送数据接口,经过可靠传输协议处理之后,交给【udt_send】不可靠 移动开发 2025年06月22日 159 点赞 0 评论 6038 浏览
面试官:ThreadLocal使用场景有哪些?内存泄露问题如何避免? ThreadLocal使用场景有哪些? image.png 推荐学习:必刷的30万面试题:巧用弱引用解决ThreadLocal内存泄漏! Thread类中有两个变量threadLocals和inheritableThreadLocals,二者都是ThreadLocal内部类ThreadLocalMap类型的变量,我们通过查看内部内ThreadLocalMap可以发现实际上它类似于一个 移动开发 2025年06月22日 178 点赞 0 评论 9492 浏览
Object.is()详解 ES5判断两个值是否相等,有两种方法:相等运算符(==)和严格相等运算符(===)。这两种方法都有缺点,前者会自动转换数据类型,后者判断NaN不等于自身,+0 等于 -0 ES6新出了Object.is方法解决这个问题。如果满足以下任意条件则两个值相等: 都是 undefined 都是 null 都是 true 或都是 false 都是相同长度、相同字符、按相同顺序排列的字符串 都是相同对象(意 移动开发 2025年06月22日 91 点赞 0 评论 5798 浏览
Android四大组件的工作过程 一、Activity启动过程 应用冷启动过程: Launcher进程通过Binder机制通知AMS创建应用 AMS判断当前应用是否启动,没有启动通过Socket通讯通知Zygote进程fork应用进程 AMS通过Binder机制请求ApplicationThread创建并启动根Activity ApplicationThread通过Handle机制通知主线程ActivityThre 移动开发 2025年06月22日 67 点赞 0 评论 8514 浏览
用 Flutter 的 Canvas 画点有趣的图形 简介 上一篇我们介绍了使用 Flutter 的 Canvas 绘制基本图形的示例,简单的示例没什么好玩的,今天这一篇我们来点有趣的,我们会完成如下图形的绘制: 发现数学重复之美:使用等边三角形组合成彩虹伞面。 绘制彩虹。 绘制评分用的五角星。 通过这一篇,我们可以知道自定义形状绘制的基本原理,然后可以在这个基础上绘制你自己想要绘制的图形。 等边三角形构建重复之美 首先我们来绘制等边三角形,其实 移动开发 2025年06月22日 113 点赞 0 评论 13048 浏览