- 博客(32)
- 资源 (6)
- 收藏
- 关注
原创 软件行业发展现状以及2025走向和机会
1. 💐报告来源:极客邦科技InfoQ研究中心。2. 💐研究方法:桌面研究、专家访谈、用户调研。3. 💐开发者角色:数字经济建设者,影响力增强。4. 💐技术发展:AI、机器学习、AIGC技术革命。5. 💐人才需求:计算机专业人才需求增长,职位需求上升。6. 💐职场现状:新技术渗透行业,金融领域领先。7. 💐工作挑战:技术能力、工作价值、工作量。8. 💐工作满意度:鸿蒙开发者表现突出。9. 💐新紧缺岗位:人工智能工程师、鸿蒙开发。10. 💐薪资情况:新岗位薪资高于平均
2024-12-26 10:54:03
3350
原创 鸿蒙ArkUI状态管理新宠:@Once装饰器全方位解析与实战
状态保护:防止父组件更新意外覆盖子组件状态性能优化:减少不必要的数据传递和初始化开销代码可预测性:明确的数据流边界,提高代码可维护性架构清晰度:明确区分"初始配置"和"运行时状态"@Once装饰器作为鸿蒙ArkUI状态管理体系中的重要一环,为组件间通信提供了更精细的控制能力。通过确保数据的"一次性初始化",它有效解决了组件状态被意外覆盖的常见问题,让开发者能够构建出更加稳定和可预测的UI组件。无论是简单的配置传递还是复杂的业务场景,@Once都能为你的应用带来更好的状态管理体验。
2025-12-26 00:19:22
811
原创 鸿蒙ArkUI组件通信专家:@Param装饰器的奇幻漂流
Param装饰器作为ArkUI状态管理V2中的重要组成部分,为组件间通信提供了强大而灵活的解决方案。通过本文的学习,相信你已经掌握了:✅ @Param的核心特性和使用场景✅ 各种数据类型的传递方法✅ 实际项目中的最佳实践✅ 常见问题的应对策略记住,@Param和@Local就像是一对黄金搭档,一个主外(组件通信),一个主内(状态管理),合理运用它们可以让你的ArkUI应用更加模块化、可维护和高效!小贴士。
2025-12-25 23:59:34
606
原创 鸿蒙ArkUI状态管理新宠:@Local装饰器全方位解析与实战
状态封装:确保组件内部状态不被外部意外修改类型安全:支持多种数据类型和联合类型观测精准:提供不同粒度的观测能力开发体验:配合现代IDE提供更好的类型提示@Local装饰器的引入标志着鸿蒙ArkUI状态管理进入了更加成熟和规范的阶段。它通过强制性的内部初始化规则,解决了@State在状态管理边界上的模糊性问题,为开发者提供了更加可靠和可预测的状态管理方案。无论是简单的计数器应用,还是复杂的企业级项目,@Local都能帮助你构建出更加健壮和可维护的鸿蒙应用。
2025-12-25 23:41:54
572
原创 鸿蒙生态的“完美无瑕”与“吹毛求疵”
鸿蒙系统快速崛起,成为中国第二大移动操作系统(市占18%),全球第三大(4%)。其生态覆盖10亿设备,拥有35万应用和1000万开发者,性能提升显著。成功源于国家战略支持、万物互联设计及华为巨额投入。但面临海外拓展和应用生态完善等挑战。未来将深化国内市场并向工业领域扩展,展现全球操作系统"第三极"潜力。
2025-12-25 23:40:26
310
原创 HarmonyOS中LazyForEach的优缺点
鸿蒙应用开发中,LazyForEach可有效优化长列表的组件内存占用,仅保留可视区附近组件(约十几个),而非全部数据项(如10000个)。但它无法优化数据源本身的内存占用。实际开发中需配合分页加载、精简数据模型、按需加载等策略,双管齐下解决组件和数据的双重内存问题,实现高性能长列表。建议组件层使用LazyForEach,数据层采用分页或懒加载机制,达到最佳优化效果。
2025-06-11 17:18:45
1002
原创 鸿蒙Ability对比Android的Fragment
鸿蒙通过Ability和动态组件(NodeController)实现类似Android Fragment的模块化UI,采用声明式开发,生命周期更简洁(onStart/Active/Inactive/Stop)。相比Fragment,鸿蒙在资源占用、渲染效率(支持Vulkan)、跨设备适配及权限管理方面更优,支持多设备无缝流转。Android依赖FragmentTransaction,生态成熟但内存消耗较高。鸿蒙系统以轻量化、高效能见长,兼顾开发效率与多终端适配。
2025-05-23 22:26:41
1190
原创 打造流畅的下拉刷新与轮播交互:HarmonyOS手势识别与组件协同实战
当当前组件的内置手势识别器(current)与响应链中其他组件的手势识别器(others)存在同类手势时,将它们建立并行关系,并分别存储到 parentRecognizer 和 childRecognizer 中。在 onGestureRecognizerJudgeBegin 回调中,我们需要根据当前的手势事件(例如滑动的方向和偏移量)以及组件的状态(例如轮播的当前索引),决定哪个组件应该响应当前手势。通过这些状态的管理,我们可以精确控制组件的行为,并在手势操作中做出合理的响应。
2025-03-13 18:05:02
1012
原创 纯血鸿蒙ArkUI按钮组件详解
1. 设置边框弧度。使用通用属性来自定义按钮样式。例如通过borderRadius属性设置按钮的边框弧度。@Entry@Componentbuild() {Column() {// 设置按钮显示的文本// 设置按钮的类型为普通样式// 设置按钮的边框圆角半径为20vp// 设置按钮的高度为40vp// 设置子组件水平方向居中对齐显示的效果如下图所示:2. 设置文本样式。通过添加文本样式设置按钮文本的展示样式。
2024-12-30 16:37:55
934
原创 纯血鸿蒙ArkUI媒体查询详解
当任意媒体特征改变时,都会触发回调函数,返回匹配的结果,根据返回值更改页面布局或者实现业务逻辑,实现页面的响应式设计。媒体查询通过mediaquery模块接口,设置查询条件并绑定回调函数,任一媒体特征改变时,均会触发回调函数,返回匹配结果,根据返回值更改页面布局或者实现业务逻辑,实现页面的响应式设计。媒体查询条件由媒体类型、逻辑操作符、媒体特征组成,其中媒体类型可省略,逻辑操作符用于连接不同媒体类型与媒体特征,其中,媒体特征要使用“()”包裹且可以有多个。查询条件未写媒体类型时,默认为screen。
2024-12-30 15:38:41
1160
1
原创 纯血鸿蒙ArkUI相对布局详解
RelativeContainer为采用相对布局的容器,支持容器内部的子元素设置相对位置关系,适用于界面复杂场景的情况,对多个子组件进行对齐和排列。子元素支持指定兄弟元素作为锚点,也支持指定父容器作为锚点,基于锚点做相对位置布局。不设置id的组件能显示,但是不能被其他子组件作为锚点,相对布局容器会为其拼接id,此id的规律无法被应用感知。同方向上两个以上位置设置锚点,但锚点位置逆序时此子组件大小为0,即不绘制。对齐方式:通过对齐方式,设置当前元素是基于锚点的上中下对齐,还是基于锚点的左中右对齐。
2024-12-30 15:31:45
1539
原创 纯血鸿蒙ArkUI弹性布局详解
父容器宽度420vp,三个子元素原始宽度为100vp,左右padding为20vp,总和320vp,剩余空间100vp根据flexGrow值的占比分配给子元素,未设置flexGrow的子元素不参与“瓜分”。6. FlexAlign.SpaceEvenly:Flex主轴方向元素等间距布局,相邻子元素之间的间距、第一个子元素与主轴起始端的间距、最后一个子元素到主轴终点端的间距均相等。容器默认存在主轴与交叉轴,子元素默认沿主轴排列,子元素在主轴方向的尺寸称为主轴尺寸,在交叉轴方向的尺寸称为交叉轴尺寸。
2024-12-30 14:58:57
944
原创 纯血鸿蒙ArkUI层叠布局详解
层叠布局通过Stack容器组件实现位置的固定定位与层叠,容器中的子元素依次入栈,后一个子元素覆盖前一个子元素,子元素可以叠加,也可以设置位置。zIndex值越大,显示的层级越高,即zIndex值大的组件会覆盖在zIndex值小的组件的上一层。显示效果如下图所示,显然第一个列容器组件元素完全覆盖了第二个列容器组件元素,第三个列容器组件覆盖了第二个列容器组件,最终仅显示最上层的第三个列容器组件。上图中,最后的子元素3的尺寸大于前面的所有子元素,所以,前面两个元素完全隐藏。如下图所示,支持九种对齐方式。
2024-12-30 13:55:36
875
原创 纯血鸿蒙ArkUI选项卡布局详解
对于底部导航栏,一般作为应用主页面功能区分,为了更好的用户体验,会组合文字以及对应语义图标表示页签内容,这种情况下,需要自定义导航页签的样式。系统默认情况下采用了下划线标志当前活跃的页签,而自定义导航栏需要自行实现相应的样式,用于区分当前活跃页签和未活跃页签。设置自定义导航栏需要使用tabBar的参数,以其支持的CustomBuilder的方式传入自定义的函数组件样式。
2024-12-30 13:46:53
1283
原创 纯血鸿蒙ArkUI轮播布局详解
Swiper支持通过customContentTransition设置自定义切换动画,可以在回调中对视窗内所有页面逐帧设置透明度、缩放比例、位移、渲染层级等属性实现自定义切换动画。@Entry@Componenti++) {build() {Column() {Swiper() {// 透明度使用状态变量控制// 缩放使用状态变量控制// 切换使用状态变量控制// zIndex使用状态变量控制})// 切换动效持续时长为1000毫秒// 当发生切换的时候,执行下列操作。
2024-12-30 13:16:54
1137
原创 纯血鸿蒙ArkUI的网格布局详解
所以“0”按键横跨第一列和第二列,“=”按键横跨第五行和第六行,只要将“0”对应onGetRectByIndex的rowStart和columnStart设为5和0,rowSpan和columnSpan设为1和2,将“=”对应onGetRectByIndex的rowStart和columnStart设为4和3,rowSpan和columnSpan设为2和1即可。使用Grid构建网格布局时,若没有设置行列数量与占比,可以通过layoutDirection设置网格布局的主轴方向,决定子组件的排列方式。
2024-12-30 12:00:52
1282
原创 纯血鸿蒙ArkUI栅格布局详解
子组件空间按照上一层父组件的空间划分,粉色的区域是屏幕空间的12列,绿色和蓝色的区域是父组件GridCol的12列,依次进行空间的划分。在GridRow栅格组件中,允许开发者使用breakpoints自定义修改断点的取值范围,最多支持6个断点,除了默认的四个断点外,还可以启用xl,xxl两个断点,支持六种不同尺寸(xs, sm, md, lg, xl, xxl)设备的布局设置。这里只设置sm:4, md:8,则较小尺寸的xs:12,较大尺寸的参照md的设置,lg:8, xl:8, xxl:8。
2024-12-30 11:26:51
868
原创 纯血鸿蒙ArkUI线性布局详解
线性布局的排列方向由所选容器组件决定,Column容器内子元素按照垂直方向排列,Row容器内子元素按照水平方向排列。6. justifyContent(FlexAlign.SpaceEvenly):垂直方向均匀分配元素,相邻元素之间的距离、第一个元素与容器顶部的间距、最后一个元素到容器底部的间距都完全一样。6. justifyContent(FlexAlign.SpaceEvenly):水平方向均匀分配元素,相邻元素之间的距离、第一个元素与行首的间距、最后一个元素到行尾的间距都完全一样。
2024-12-30 10:37:40
1023
原创 移动端企业开发三方框架选型
在移动互联网的快速发展下,企业面临着多平台覆盖的需求,尤其是在iOS、Android和新兴的鸿蒙系统上。如何在保证用户体验的同时,提高开发效率、降低成本,并适应不同平台的特性,是每个开发团队都需要考虑的问题。本文将深入探讨在企业移动端开发中,如何根据不同的技术特点和业务需求,选择合适的开发框架,包括流行的第三方框架UniApp、Flutter、React Native、Taro,以及鸿蒙的一次开发多端部署方案ArkUI-X,并分析各自的优劣。
2024-12-23 17:50:21
1720
原创 免费Java资源下载:SpringBoot Spring Mybatis Redis MQ SpringCloud 高并发等
真正免费的资源分享,无套路,海量资源点击下载点我下载!!!!!!!持续更新中,每天都有新内容哦
2021-07-01 14:42:04
181
1
原创 听说你在秒杀的时候被限流了。。。
#互联网大厂的微服务架构系统应对超大流量解决方案## 常见的限流方式有:- 限制总并发数(数据库连接池、线程池等等)- 限制瞬时并发数(如Nginx的limit_conn模块)- 限制时间窗口的平均速率(如Guava的RateLimiter、Nginx的limit_req模块)- 限制远程接口的调用速率、限制消息系统的消费速率### **1.1 接入层限流**抗疫项目中,一般ISV会把Nginx作为业务的接入层,通过Nginx将请求分发...
2021-06-22 16:39:04
461
1
原创 并发编程的 StampedLock 你弄懂了吗?
1. 为什么引入StampedLockJDK8中新增StampedLock。锁 并发度 ReentrantLock 读读互斥,读写互斥,写写互斥 ReentrantReadWriteLock 读读不互斥,读写互斥,写写互斥 StampedLock 读读不互斥,读写不互斥,写写互斥 从ReentrantLock到ReentrantReadWriteLock,再到StampedLock,读操作并发度依次提高。ReentrantReadW...
2021-06-11 10:36:34
358
2
原创 面试官: 说一下线程池内部工作原理
如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方法讲起,然后再讲述它的实现原理,接着给出了它的使用示例,最后讨论了一下如何合理配置线程池的大小。1.线程池的
2021-06-08 10:48:55
221
原创 如何透彻理解Zab协议?
什么是Zab协议ZAB协议,全称 Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。它是专门为分布式协调服务——Zookeeper,设计的一种支持崩溃恢复和原子广播的协议。从设计上看,ZAB协议和 Raft 很类似。ZooKeeper集群中,只有一个Leader节点,其余均为Follower节点。整个ZAB协议一共定义了三个阶段: 发现:要求zookeeper集群必须选举出一个 Leader 进程,同时 Leader 会维护一个 Foll..
2021-06-04 10:50:07
199
原创 你是不是学了个假的单例模式?
• 考点在volatile和双层检测• 是否用过枚举• 所谓“单例模式”,就是采用某些手段保证在整个系统运行过程中,对于某个类只能让其生产出唯一的一个对象1 饿汉式• 实现步骤○ 构造器私有化 (防止 new )○ 类的内部创建对象○ 向外暴露一个静态的公共方法1.1 静态常量Plain Text // 饿汉式(静态变量) class Sun { // 1.构造器私有化, 外部能 new private Sun() { } // 2.本类内部创建对象实例 private
2021-06-03 13:53:27
178
原创 AQS原理剖析
并发编程是大厂面试中重点考察的问题。此类问题回答的好坏会在很大程度上影响我们面试的得分。1. AQS在java中的使用给代码加锁,是java中处理并发问题的重要手段。java中的很多锁都是基于抽象类AQS(AbstractQueuedSynchronizer)实现的。如下表所示:同步工具 同步工具与AQS的关联 ReentrantLock 使用AQS保存锁重复持有的次数。当一个线程获取锁时,ReentrantLock记录当前获得锁的线程标识,用于检测是否重复获取.
2021-06-01 15:59:48
316
原创 面试必问涨薪翻倍-分布式限流
什么是限流在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限流。为什么要限流Java程序员在大厂面试时 或者 想拿到一份不错的薪资时,肯定会涉及.
2021-05-31 10:46:23
151
原创 分布式事务解决方案-Seata
分布式事务解决方案-Seata1.1 事务不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。1.2 事务的具体定义事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所
2021-05-23 23:16:52
329
1
原创 Activemq队列已满向消息发送端发送通知
最近公司准备用Activemq进行消息的通知,并且是request-reply模式的,但是在xiang
2014-07-04 15:58:14
3425
原创 在64位Win8.1安装32位Oracle11g并且安装了32位的客户端之后连接PL/SQL成功
按这个道理,直接装64位11g并安装客户端连接PL/SQL应该也没有问题,有时间试试看
2014-03-15 23:55:56
1197
原创 魔幻计时器
对于FF、Chrome、IE的js时间的年份,用date.getFullYear()即可。 http-equiv="Content-Type" content="text/html;charset=gb2312" /> 进度条 type="text/javascrip
2013-07-25 17:01:04
536
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅