- 博客(184)
- 资源 (2)
- 收藏
- 关注
原创 SpringBoot:web开发
springboot:web开发,技术摘要1. webjars2. Bootstrap3. 模板引擎thymeleaf4. 嵌入式Servlet容器5. 注册web三大组件
2024-02-06 17:24:16 1121
原创 正则表达式提取短信验证码
从短信中提取短信验证码正则表达式public class TestGetDynamicPwd { public static void main(String[] args) { getDynamicSmsVerifyCode(); getDynamicSmsVerifyCode2(); } /** * 从字符串中截取连续6位数字组合 ([0-9])截取六位数字 进行前后断言不能出现数字 用于从短信中获取动态密码 *
2021-06-04 10:32:47 3699
原创 Kotlin:for循环的几种示例
Kotlin:for循环的几种示例0 until 3 不包含3inex in 0 ..2downTolist.indiceslist.withIndex()index in 0 until list.size
2024-04-04 22:20:08 579
原创 Kotlin:常用标准库函数(let、run、with、apply、also)
一、let 扩展函数Kotlin标准库函数let可用于范围确定和空检查。当调用对象时,let执行给定的代码块并返回其最后一个表达式的结果。对象可以通过引用(默认情况下)或自定义名称在块中访问二、run 扩展函数与let类似,run是标准库中的另一个作用域函数。基本上,它做同样的事情:执行一个代码块并返回其结果。不同的是,在内部运行对象是通过this访问的。当您想要调用对象的方法而不是将其作为参数传递时,这是很有用的。
2024-04-04 22:14:25 573
原创 Android: Gradle 命令
- x.x.x (*) 该依赖已经有了,将不再重复依赖。 - x.x.x -> x.x.x 该依赖的版本被箭头所指的版本代替。 - x.x.x -> x.x.x(*) 该依赖的版本被箭头所指的版本代替,并且该依赖已经有了,不再重复依赖。
2024-03-20 23:04:04 734 1
原创 Android:adb命令
1 adb devices 查看已连接的设备与模拟器2. adb connect ip:端口 连接设备3. adb disconnect ip:端口 取消连接4. adb version 查看adb的版本5. adb start-server 启动adb服务6. adb shell pm list packages -3 输出系统用户安装的第三方app包名7. adb shell pm list packages -s 输出系统自带的包名
2024-03-20 09:50:05 1267
原创 我的创作纪念日(创作者的第2048天)
我的CSDN博客账号码龄9年了,借着成为创作者的第2048天的创作纪念日,和大家分享最初成为写博客的初心。
2024-03-15 23:42:34 969
原创 Kotlin:runBlocking导致App应用出现ANR问题实例
runBlocking 是常规函数;runBlocking 方法会阻塞当前线程来等待;runBlocking 的主线程会一直 阻塞 直到 runBlocking 内部的协程执行完毕。
2024-03-15 14:01:27 1124
原创 Kotlin: 协程的四种启动模式(CoroutineStart)
协程的四种启动模式:CoroutineStart.DEFAULTCoroutineStart.LAZYCoroutineStart.ATOMICCoroutineStart.UNDISPATCHED
2024-03-14 23:41:56 1990
原创 Kotlin:内联类(inline class)
内联类必须含有唯一的一个属性在主构造函数中初始化。在运行时,将使用这个唯一属性来表示内联类的实例
2024-03-13 06:00:00 856
原创 Kotlin:密封类(sealed class)
密封类用来表示受限的类继承结构:当一个值为有限几种的类型、而不能有任何其他类型时。在某种意义上,他们是枚举类的扩展:枚举类型的值集合也是受限的,但每个枚举常量只存在一个实例,而密封类的一个子类可以有可包含状态的多个实例。
2024-03-12 06:00:00 878
原创 Kotlin:数据类(data class)
为了确保生成的代码的一致性以及有意义的行为,数据类必须满足以下要求:1. 主构造函数需要至少有一个参数;2. 主构造函数的所有参数需要标记为 val 或 var;3. 数据类不能是抽象、开放、密封或者内部的;4.(在1.1之前)数据类只能实现接口。
2024-03-11 10:28:53 918
原创 Kotlin:类、构造函数、继承
类声明由类名、类头(指定其类型参数、主构造函数等)以及由花括号包围的类体构成。类头与类体都是可选的; 如果一个类没有类体,可以省略花括号。 在 Kotlin 中的一个类可以有一个主构造函数以及一个或多个次构造函数。主构造函数是类头的一部分:它跟在类名(与可选的类型参数)后。
2024-03-11 09:54:07 1072
原创 MySQL:视图
1. 视图是一种虚拟的表,是从数据库中一个或者多个表中导出来的表。2. 数据库中只存放了视图的定义,而并没有存放视图中的数据,这些数据存放在原来的表中。3. 使用视图查询数据时,数据库系统会从原来的表中取出对应的数据。
2024-03-04 15:23:03 846
原创 MySQL:索引
索引定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度;类似于图书的目录,方便快速定位,寻找指定的内容.
2024-03-04 06:00:00 810
原创 MySQL:函数
日期和时间函数1. CURDATE() 返回当前日期 只包含年、月、日部分,格式为YYYY-MM-DD;2. CURTIME() 返回当前时间 只包含时、分、秒部分,格式为HH:MM:SS3. MONTH(d)返回日期d中的月份值,范里是1~124. NOW()函数 返回当前日期和时间 包含年、月、日、时、分、秒,格式为YYYY-MM-DD HH:MM:SS
2024-03-01 13:10:36 1435
原创 Kotlin:协程上下文与调度器
协程上下文包含一个 协程调度器 (CoroutineDispatcher)它确定了相关的协程在哪个线程或哪些线程上执行。协程调度器可以将协程限制在一个特定的线程执行,或将它分派到一个线程池,亦或是让它不受限地运行。所有的协程构建器诸如 launch 和 async 接收一个可选的 CoroutineContext 参数,它可以被用来显式的为一个新协程或其它上下文元素指定一个调度器。
2024-02-28 22:56:53 1317 1
原创 MySQL:单表查询SQL语句
单表查询SQL语句带BETWEEN AND 的范围查询LIKE的模糊查询DISTINCT 去重复查询GROUPBY分组查询
2024-02-27 17:35:57 463
原创 Kotlin:组合挂起函数
组合挂起函数,默认顺序调用;使用 async 的结构化并发;在概念上,async 就类似于 launch。它启动了一个单独的协程,这是一个轻量级的线程并与其它所有的协程一起并发的工作。不同之处在于 launch 返回一个 Job 并且不附带任何结果值,而 async 返回一个 Deferred 可以使用 .await() 在一个延期的值上得到它的最终结果
2024-02-26 21:12:32 1302
原创 Kotlin:协程基础
GlobalScope.launch: 在后台启动一个新的协程并继续runBlocking:方法会阻塞当前线程来等待coroutineScope:只是挂起,会释放底层线程用于其他用途delay 是一个特殊的 挂起函数 ,它不会造成线程阻塞,但是会 挂起 协程,并且只能在协程中使用。
2024-02-26 10:08:55 1433
原创 SpringBoot:数据访问-整合 spring-boot-starter-data-jpa
Spring Data的JPA模块包含一个允许定义存储库bean的自定义名称空间。它还包含JPA特有的某些特性和元素属性。通常,可以使用repositories元素来设置JPA存储库:
2024-02-25 23:41:04 438
原创 SpringBoot:数据访问-整合 Druid 配置数据源监控
Druid Spring Boot Starter 用于帮助你在Spring Boot项目中轻松集成Druid数据库连接池和监控。
2024-02-25 23:11:14 485
原创 Jetpack Compose 架构层
Jetpack Compose 不是一个单体式项目;它由一些模块构建而成,这些模块组合在一起,构成了一个完整的堆栈。通过了解组成 Jetpack Compose 的不同模块,您可以:1.使用适当的抽象级别来构建应用或库2.了解何时可以“降级”到较低级别,以获取更多的控制权或更高的自定义程度3.尽可能减少依赖项
2024-02-24 06:27:22 793
原创 Jetpack Compose 架构
在 Compose 中,界面是不可变的,在绘制后无法进行更新。您可以控制的是界面的状态。每当界面的状态发生变化时,Compose 都会重新创建界面树中已更改的部分。可组合项可以接受状态并公开事件,例如 TextField 接受值并公开请求回调处理程序更改值的回调 onValueChange。
2024-02-24 06:18:00 771
原创 Jetpack Compose 可组合项的生命周期
正如管理状态文档中所述,一个组合将描述应用的界面,并通过运行可组合项来生成。组合是描述界面的可组合项的树结构。当 Jetpack Compose 首次运行可组合项时,在初始组合期间,它将跟踪您为了描述组合中的界面而调用的可组合项。然后,当应用的状态发生变化时,Jetpack Compose 会安排重组。重组是指 Jetpack Compose 重新执行可能因状态更改而更改的可组合项,然后更新组合以反映所有更改。组合只能通过初始组合生成且只能通过重组进行更新。重组是修改组合的唯一方式
2024-02-23 08:10:44 780
viewtobitmap.rar
2019-12-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人