<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yuhang01的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/yuhang01</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; yuhang01]]></copyright><item><title><![CDATA[QT 自定义随机验证码校验]]></title><link>https://blog.csdn.net/yuhang01/article/details/162733544</link><guid>https://blog.csdn.net/yuhang01/article/details/162733544</guid><author>yuhang01</author><pubDate>Thu, 09 Jul 2026 16:10:41 +0800</pubDate><description><![CDATA[使用QT实现随机验证码校验功能的方法。通过创建VerifyCodeDialog对话框类，实现了一个包含4位随机数字字母验证码的弹窗界面。关键技术点包括：1)使用QRandomGenerator生成随机验证码；2)自定义CodeLabel类重写paintEvent方法绘制干扰线；3)实现验证码更新和校验功能（不区分大小写）。该实现简洁高效，只需几行代码即可调用，适用于各种需要验证码校验的QT应用场景。]]></description><category></category></item><item><title><![CDATA[Android compose屏幕适配终极解决方案]]></title><link>https://blog.csdn.net/yuhang01/article/details/151899169</link><guid>https://blog.csdn.net/yuhang01/article/details/151899169</guid><author>yuhang01</author><pubDate>Thu, 25 Sep 2025 16:49:21 +0800</pubDate><description><![CDATA[随着华为推出三折叠手机之后，各大厂商也是层出不穷相继推出折叠屏，以及大屏设备也慢慢贯穿我们的工作和生活，作为开发者的我们也要紧跟时代发展
屏幕适配也逐渐重新回归到我们的视野当中去]]></description><category></category></item><item><title><![CDATA[Android使用RxHttp进行国密4加密解密]]></title><link>https://blog.csdn.net/yuhang01/article/details/146415270</link><guid>https://blog.csdn.net/yuhang01/article/details/146415270</guid><author>yuhang01</author><pubDate>Fri, 21 Mar 2025 11:15:57 +0800</pubDate><description><![CDATA[为了网络安全需要对app内请求数据接口使用SM4国密4进行加解密操作，在实施的过程中遇到了些问题 也收获颇丰，特此记录在线SM4加密测试网址:点击此进入网址。]]></description><category></category></item><item><title><![CDATA[Linux文件目录结构]]></title><link>https://blog.csdn.net/yuhang01/article/details/146054357</link><guid>https://blog.csdn.net/yuhang01/article/details/146054357</guid><author>yuhang01</author><pubDate>Wed, 05 Mar 2025 22:02:15 +0800</pubDate><description><![CDATA[所有目录的文件的起点，类似windows的此电脑。]]></description><category></category></item><item><title><![CDATA[python pyusb与硬件 下位机通信]]></title><link>https://blog.csdn.net/yuhang01/article/details/137005318</link><guid>https://blog.csdn.net/yuhang01/article/details/137005318</guid><author>yuhang01</author><pubDate>Mon, 25 Mar 2024 10:36:28 +0800</pubDate><description><![CDATA[python pyusb 与硬件 下位机 通讯]]></description><category></category></item><item><title><![CDATA[HarmonyOS 数据持久化 Preferences 如何在页面中对数据进行读写]]></title><link>https://blog.csdn.net/yuhang01/article/details/134647523</link><guid>https://blog.csdn.net/yuhang01/article/details/134647523</guid><author>yuhang01</author><pubDate>Mon, 27 Nov 2023 16:18:59 +0800</pubDate><description><![CDATA[Harmonyos 数据持久化  Preferences  如何在页面中进数据进行读写]]></description><category></category></item><item><title><![CDATA[java初探之代理模式]]></title><link>https://blog.csdn.net/yuhang01/article/details/134431671</link><guid>https://blog.csdn.net/yuhang01/article/details/134431671</guid><author>yuhang01</author><pubDate>Wed, 15 Nov 2023 23:19:34 +0800</pubDate><description><![CDATA[代理模式+注解+反射实现retrofit]]></description><category></category></item><item><title><![CDATA[注解与反射]]></title><link>https://blog.csdn.net/yuhang01/article/details/134431640</link><guid>https://blog.csdn.net/yuhang01/article/details/134431640</guid><author>yuhang01</author><pubDate>Wed, 15 Nov 2023 23:17:36 +0800</pubDate><description><![CDATA[java基础注解与反射]]></description><category></category></item><item><title><![CDATA[三、设计模式之装饰者模式]]></title><link>https://blog.csdn.net/yuhang01/article/details/131101111</link><guid>https://blog.csdn.net/yuhang01/article/details/131101111</guid><author>yuhang01</author><pubDate>Thu, 08 Jun 2023 09:37:37 +0800</pubDate><description><![CDATA[Java设计模式之装饰者模式]]></description><category></category></item><item><title><![CDATA[二、设计模式之观察者模式]]></title><link>https://blog.csdn.net/yuhang01/article/details/131041758</link><guid>https://blog.csdn.net/yuhang01/article/details/131041758</guid><author>yuhang01</author><pubDate>Mon, 05 Jun 2023 09:39:34 +0800</pubDate><description><![CDATA[观察者模式]]></description><category></category></item><item><title><![CDATA[一、设计模式初探-策略模式]]></title><link>https://blog.csdn.net/yuhang01/article/details/131002793</link><guid>https://blog.csdn.net/yuhang01/article/details/131002793</guid><author>yuhang01</author><pubDate>Fri, 02 Jun 2023 10:57:30 +0800</pubDate><description><![CDATA[设计模式-策略模式初探 仅供学习记录]]></description><category></category></item><item><title><![CDATA[数据统计双重奏 Android自定义 双重/带缓冲横向柱状图]]></title><link>https://blog.csdn.net/yuhang01/article/details/128931171</link><guid>https://blog.csdn.net/yuhang01/article/details/128931171</guid><author>yuhang01</author><pubDate>Wed, 08 Feb 2023 10:39:02 +0800</pubDate><description><![CDATA[Android自定义 双重/ 带缓冲 横向柱状图]]></description><category></category></item><item><title><![CDATA[数据统计单重奏 Android自定义雷达图 文字颜色修改]]></title><link>https://blog.csdn.net/yuhang01/article/details/128927400</link><guid>https://blog.csdn.net/yuhang01/article/details/128927400</guid><author>yuhang01</author><pubDate>Tue, 07 Feb 2023 22:52:54 +0800</pubDate><description><![CDATA[Android自定义雷达图 蜘蛛图 文字颜色修改]]></description><category></category></item><item><title><![CDATA[Android 日期筛选器]]></title><link>https://blog.csdn.net/yuhang01/article/details/126345468</link><guid>https://blog.csdn.net/yuhang01/article/details/126345468</guid><author>yuhang01</author><pubDate>Mon, 15 Aug 2022 14:16:35 +0800</pubDate><description><![CDATA[最近接到了一个新的需求：
通过一个日期选择器筛选出自己想要的特定日期]]></description><category></category></item><item><title><![CDATA[Kotlin Lambda表达式与高阶函数]]></title><link>https://blog.csdn.net/yuhang01/article/details/123317327</link><guid>https://blog.csdn.net/yuhang01/article/details/123317327</guid><author>yuhang01</author><pubDate>Sun, 06 Mar 2022 21:01:11 +0800</pubDate><description><![CDATA[java于kotlin函数的区别：

- java的函数 先有输出 在有输入

```java
//     输出               输入
public Object getStudent(String name)
```

- kotlin函数 先后输入 再有输出

```kotlin
//              输入         输出
fun getStudent(name:String):Any
```

 kotlin函数比较符合人思维模式]]></description><category></category></item><item><title><![CDATA[Okhttp源码解析]]></title><link>https://blog.csdn.net/yuhang01/article/details/122778630</link><guid>https://blog.csdn.net/yuhang01/article/details/122778630</guid><author>yuhang01</author><pubDate>Thu, 03 Feb 2022 20:50:19 +0800</pubDate><description><![CDATA[Request是一个构建者模式，调用call.execute()同步请求，会阻塞住知道okhttp有了响应得到Response
调用流程
OkHttp请求过程中最少只需要接触OkHttpClient]]></description><category></category></item><item><title><![CDATA[Java IO在Android中的使用]]></title><link>https://blog.csdn.net/yuhang01/article/details/122657484</link><guid>https://blog.csdn.net/yuhang01/article/details/122657484</guid><author>yuhang01</author><pubDate>Sun, 23 Jan 2022 21:24:45 +0800</pubDate><description><![CDATA[## 什么是IO

IO是值Input/Output,即输入和输出

- Input是指从外部读入数据到内存，例如：把文件从磁盘读取到文件，从网络读取数据到内存。(读入)
- OutPut是指把数据从内存输出到外部，例如：把数据从内存写入到文件，把数据从内存输出到网络等等(写出)

程序在执行的时候，是在内存中进行的，外部的数据需要读写到内存才能处理；而在内存中的数据是随着程序的结束而消失的，有时候我们也需要把数据输出到外部文件。]]></description><category></category></item><item><title><![CDATA[事件争夺战 Android事件处理机制与原理分析]]></title><link>https://blog.csdn.net/yuhang01/article/details/122457836</link><guid>https://blog.csdn.net/yuhang01/article/details/122457836</guid><author>yuhang01</author><pubDate>Wed, 12 Jan 2022 17:09:46 +0800</pubDate><description><![CDATA[直接继承自View的(ImageView/TextView 没有子view的)只能处理事件的

没有子View的只有两种选择：

1. 处理事件 重写dispatchTouEvent()
2. 不做处理，交由父类View.java中的实现

 有子View的(ViewGroup)才能进行分发事件 且ViewGroup中实现了事件分发代码
事件分发：ViewGroup.java--->dispatchTouchEvent  继承自View重写dispatchTouchEvent  实现分发逻辑 

事件处理]]></description><category></category></item><item><title><![CDATA[Android自定义View]]></title><link>https://blog.csdn.net/yuhang01/article/details/122394571</link><guid>https://blog.csdn.net/yuhang01/article/details/122394571</guid><author>yuhang01</author><pubDate>Sun, 09 Jan 2022 15:49:16 +0800</pubDate><description><![CDATA[自定义View的最基本的三个方法分别是：onMeasure()，onLayout()，onDraw(),View在Activity中显示出来，要经过测量，摆放，绘制三个步骤，分别对应三个动作:measure,layout和draw。

- 测量：onMeasure()决定View的大小
- 布局：onLayout()决定View在ViewGroup中的位置
- 绘制：onLayout()决定绘制这个View
]]></description><category></category></item><item><title><![CDATA[Java筑基三《代理模式》]]></title><link>https://blog.csdn.net/yuhang01/article/details/122334955</link><guid>https://blog.csdn.net/yuhang01/article/details/122334955</guid><author>yuhang01</author><pubDate>Thu, 06 Jan 2022 00:14:00 +0800</pubDate><description><![CDATA[代理模式给某一个对象提供一个代理对象，并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。

目的：

1. 通过代理对象的方式来间接访问目标对象，防止直接访问目标对象给系统带来的不必要的复杂性；
2. 通过代理对象访问进行控制。

代理模式一般会有三个角色：

**抽象角色**：指代理角色和真实角色对外提供的公共方法，一般为一个接口

**真实角色**：需要实现抽像角色接口，定义了真实角色所要实现的业务逻辑，以便供代理角色调用。也就是真实的业务逻辑在此。

**代理角色**：需要实]]></description><category></category></item></channel></rss>