自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ViewModel

ViewModel是Android Jetpack提供的UI数据管家,具有三个核心特性:1)生命周期长于Activity/Fragment,在配置变更时保留数据;2)集中管理UI相关数据和简单逻辑,使UI层代码更简洁;3)通过LiveData等组件实现数据自动更新。典型使用场景包括:防止屏幕旋转导致数据丢失、分离UI与业务逻辑、避免内存泄漏。使用时需继承ViewModel类,通过ViewModelProvider获取实例,并注意不要持有Context引用。ViewModel与Repository、LiveD

2025-09-05 17:03:57 718

原创 理解动态绑定

本文阐述了动态绑定的核心机制,分为编译时和运行时两个阶段。编译时仅检查声明类型的方法合法性,运行时则根据实际类型执行对应方法实现。通过Animal及其子类Cat、Dog的eat()方法调用示例,说明了同一父类引用在不同子类对象上能表现出不同行为(多态)。动态绑定的优势在于提高代码扩展性,新增子类无需修改原有逻辑,符合开闭原则。当子类未重写方法时,会执行父类默认实现。这种机制是多态特性的关键实现方式。

2025-09-05 11:22:24 617

原创 标签处返回

Kotlin中的"标签处返回"机制解决了嵌套函数/lambda中return作用范围过大的问题。通过使用显式标签(如return@lit)或隐式标签(如return@forEach),可以精确控制return仅跳出当前lambda块,而不影响外层函数。匿名函数中的return默认只退出自身,可作为替代方案。该机制与break不同,break仅适用于循环结构,而标签返回专门用于lambda表达式的流程控制,使嵌套函数中的逻辑更灵活可控。

2025-09-01 14:47:11 555

原创 “原生类型” vs “装箱类型”

Kotlin区分原生类型和装箱类型以兼顾性能与功能:原生类型(如Int)直接存储数值,栈内存操作高效;装箱类型(如Int?)支持可空值和泛型集合。Kotlin自动处理类型转换,开发者无需手动干预,既保留了数值运算的高效性,又实现了对象的功能灵活性。这种设计平衡了底层性能与上层开发需求,相比Java的手动装箱拆箱更为简洁友好。

2025-08-29 15:28:25 278

原创 kotlin官方文档学习记录

Kotlin语言特性与编程实践摘要 本文介绍了Kotlin的核心语言特性及其编程实践。重点包括:1)类型安全机制,通过可空类型(Int?)和编译检查从根源避免空指针;2)基础类型特殊处理,如字符与数字的严格区分、原生/装箱类型的选择;3)数组与集合的型变规则;4)流程控制改进,如if表达式和标签跳转;5)面向对象特性,包含继承规则、抽象类、密封类的有限继承结构;6)扩展函数实现API增强;7)运算符重载机制。这些特性使Kotlin兼具安全性、简洁性和表现力,提高了开发效率与代码质量。

2025-08-28 16:45:33 1781

原创 ContentProvider内容提供者

Android通过ContentProvider实现跨程序数据共享,可选择共享部分数据以保护隐私。运行时权限机制(Android 6.0+)将权限分为普通权限(自动授权)和危险权限(需用户手动授权)。ContentProvider使用ContentResolver操作数据,通过URI标识数据源,未注册URI的数据无法被外部访问,从根本上保障数据安全。其通信机制为"客户端→系统中间层→服务端"模式,实现安全可控的数据共享。

2025-08-27 10:34:55 800

原创 Service

本文摘要:Android开发中,Service适用于后台长期运行任务,其生命周期与所在应用进程绑定。多线程编程可通过继承Thread或实现Runnable接口,需注意run()与start()的区别及UI线程安全限制,推荐使用Handler或AsyncTask实现异步操作。Service的基本使用包括定义、启动/停止及Activity通信,通过Binder机制实现交互。Service生命周期受启动方式(startService/bindService)影响,需合理管理创建、执行和销毁过程。

2025-08-26 11:26:51 2202

原创 数据持久化技术

Kotlin采用非受检异常机制,将异常处理决定权交给开发者。Android数据存储主要方式包括:1)文件存储,通过流操作读写简单数据;2)SharedPreferences存储键值对,支持多种数据类型;3)SQLite数据库存储复杂关系型数据,通过SQLiteOpenHelper类管理。三种方式分别适用于不同场景,文件存储适合简单数据,SharedPreferences适合配置信息,SQLite适合结构化数据。开发者可根据数据类型和复杂度选择合适的存储方案。

2025-08-26 11:17:11 327

原创 Android中的广播机制

Android广播机制允许程序自由发送和接收广播,分为标准广播(异步执行,所有接收器同时接收)和有序广播(同步执行,按优先级顺序接收,可截断)。接收广播可通过动态注册(代码中实现)和静态注册(AndroidManifest.xml中声明),其中静态注册在Android 8.0后受限,仅允许接收部分系统广播。发送自定义广播时,标准广播使用sendBroadcast(),有序广播使用sendOrderedBroadcast()并设置优先级。注意广播接收器中的onReceive()方法应避免耗时操作,且静态注册需

2025-08-25 15:08:07 1357

原创 力扣 172. 阶乘后的零

只需要找5的个数就好了 而出现5*5 ,5*5*5 的时候还要另外再加一个5(因为5的个数一定比2多 所以直接找5的个数)这是自己写的 用的最简单直接的办法 没想到报错了 原因是结果溢出了。大佬三行写出来的 真的好牛!后面查看题解 直接膜拜。

2024-08-30 21:30:47 309 1

空空如也

空空如也

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

TA关注的人

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