- 博客(49)
- 收藏
- 关注
原创 Kotlin文件操作
Kotlin 提供了丰富的 API 来操作文件和目录,包括遍历、复制、获取父路径等。可以使用File和Path来创建、读取、遍历文件系统。遍历时注意根目录的处理,避免空指针异常。实际编程中应加上异常处理与空值检查。
2025-07-12 21:25:35
217
原创 Kotlin文件
熟练掌握 Kotlin 中的文件层级结构处理对于开发者来说是非常重要的技能。它能显著提升你管理数据、组织文件的能力,也让应用程序的文件交互更高效、更健壮。
2025-07-12 17:12:24
545
原创 Noting
Kotlin 是一门灵活而强大的语言,具备优秀的类型系统和错误检测能力。其中Nothing类型提供了一种明确表达“永远不返回”的函数行为的方式,提升了代码可读性和安全性。而TODO函数结合Nothing类型,清楚地标记出尚未实现的功能,是团队协作或大型项目中的好帮手。Kotlin 通过这些设计增强了健壮性和开发体验。接下来,让我们通过一些练习来回顾所学内容吧!
2025-07-12 15:28:48
245
原创 Java可变参数
在 Java 中,可以使用一种特殊的语法 varargs(可变长度参数) 来向方法传递任意数量的同一类型的参数。这些参数通过在类型后面加上三个点 …numbers 表示这个方法可以接受任意数量的整数参数,包括 0 个。但调用时可以传入多个实参(如 1, 2, 3),这些实参会自动被打包成一个数组。当方法中有多个参数时,可变参数必须是最后一个参数。否则会导致语法错误。numbers 实际上在方法内部会被当作一个整型数组处理。方法定义中只有一个参数 int…这会报错,因为 varargs 不是最后一个参数。
2025-07-12 14:13:41
204
原创 Java类型推断
此功能可能存在一些争议:一方面,它可以让你的代码更简洁。另一方面,由于它没有明确指出类型,可能会对代码的可读性产生不利影响。目前,理解其基本概念就足够了。代替特定类型来强制根据分配值的类型进行自动。从 Java 10 开始,你可以使用。
2025-07-12 13:42:53
38
原创 细谈kotlin中缀表达式
你可以随时创建中缀函数,比如为了提高代码的可读性,或者创建领域特定语言(DSL)。但要记住,中缀函数调用的优先级低于算术操作符以及语言内置的其他元素,比如类型转换和。中缀函数是让代码更具可读性和可维护性的强大工具。中缀表达式能帮助你提升代码质量,扩展代码书写的可能性。记住,中缀函数调用时,接收者和参数都必须明确指定,并且在函数体内必须使用。在中缀表达式中,函数名放在参数之间,函数名本身充当操作符。参数不能是可变数量参数(vararg),且不能有默认值。必须是成员函数或扩展函数。关键字即可定义中缀函数。
2025-07-12 10:15:25
121
原创 Kotlin基础
正序(原始顺序)倒序reversed()创建副本,创建视图)随机顺序shuffled()随机打乱)这些方法提供了一种优雅且简洁的方式来重新组织集合数据。
2025-07-11 10:15:29
625
原创 MockK 简单使用
MockK 是专门为 Kotlin 设计的强大灵活的模拟库,支持 Kotlin 特有的功能(如协程、扩展函数),提供简洁易用的接口,社区活跃,维护良好。关键字含义mockk()创建一个模拟对象(Mock)every { }定义模拟对象方法的行为returns模拟方法返回指定值verify { }验证方法是否被调用过spyk()创建一个 Spy,包裹真实对象,可以调用真实方法用于模拟返回 Unit(无返回值)的方法模拟 Kotlin 中的单例对象解除对单例对象的模拟,避免影响其他测试@MockK。
2025-07-09 09:24:29
790
原创 Docker 报错及其解决方案
说明当前用户没有权限访问 Docker 守护进程(daemon),因为 /var/run/docker.sock 默认只允许 root 用户或 docker 组的成员访问。将当前用户加入 docker 组(推荐)
2025-06-26 14:48:20
267
原创 Linux常用文件目录命令
本文介绍了Linux系统中常用的文件与目录操作命令:1)目录浏览命令ls和pwd;2)目录操作命令cd、mkdir、rmdir;3)文件浏览命令cat、more、less、head、tail;4)文件操作命令cp、rm、mv、find、grep、tar。详细说明了各命令的功能、语法格式、常用参数及使用示例,例如ls -l显示详细信息、tar -czvf打包压缩文件等,涵盖了Linux系统日常文件管理的基本操作。
2025-06-05 09:31:59
1120
原创 MySql入门
数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映客观事物间的本质联系。数据库能有效地帮助一个组织或企业科学地管理各类信息资源。简而言之,我们的数据可以交给数据库来帮助我们进行管理,同时数据库能够为我们提供高效的访问性能。在JavaSE学习阶段中,我们学习了如何使用文件I/O来将数据保存到本地,这样就可以将一个数据持久地存储在本地,即使程序重新打开,我们也能加载回上一次的数据,但是当我们的数据变得非常多的时候,这样的方式就显得不太方便了。
2025-05-29 21:27:24
714
原创 MyBatis指定构造
MyBatis通过默认无参构造创建对象后使用反射赋值,但也可以通过resultMap中的constructor标签指定构造方法。构造参数使用idArg(主键)和arg标签定义,未传入的字段仍会通过反射赋值。这种方式允许实体类使用带参构造器进行初始化,同时保持灵活的数据映射能力。<|end▁of▁sentence|>
2025-05-21 15:38:18
160
原创 MyBatis简单使用
本文介绍了MyBatis与MariaDB数据库的集成使用方式。主要内容包括:1) 添加依赖和数据库配置;2) Mapper接口定义及SQL语句映射;3) 参数传递方式(单参数和多参数);4) 结果映射的多种实现方案,包括字段别名、@Result注解映射、复用结果映射关系以及开启驼峰命名自动转换;5) XML配置方式的示例。文章提供了从基础配置到高级映射的完整示例代码,涵盖了MyBatis操作数据库的核心功能实现。<|end▁of▁sentence|>
2025-05-21 15:35:25
193
原创 MyBatis常用方法
为了提高代码的复用性和简洁性,可以将MyBatis的初始化操作封装到一个工具类MyBatisUtils中。该工具类通过静态代码块加载MyBatis配置文件并创建SqlSessionFactory,同时提供openSession方法用于获取SqlSession对象。通过这种方式,可以简化代码,避免重复的初始化操作。此外,文章还介绍了MyBatis的注解使用、数据库配置、Mapper接口的编写,以及selectMap、selectCursor和select等查询方法的使用。这些内容帮助开发者更高效地使用MyBa
2025-05-20 19:30:44
323
原创 Mybatis面向接口编程
本文介绍了如何在MyBatis中实现Mapper接口与映射文件的绑定。首先,在UserMapper.xml文件中,通过namespace属性将映射文件与UserMapper接口绑定,并在其中定义了一个insertUser的SQL语句。接着,创建了UserMapper接口,并确保接口中的方法名与映射文件中的SQL语句id一致。然后,在MyBatis配置文件中引入UserMapper.xml映射文件。最后,通过测试类MyBatisTest进行代码实现和测试。整个过程展示了MyBatis面向接口编程的基本步骤和配
2025-05-20 19:24:41
175
原创 MyBatis入门指南
MyBatis 是一个支持定制 SQL、存储过程及高级映射的持久层框架。本文介绍了如何使用 MyBatis 查询数据库中的 user 表数据。首先,创建 user 表并插入数据,接着导入 MyBatis 依赖,编写核心配置文件和 SQL 映射文件。然后,通过加载配置文件获取 SqlSessionFactory 对象,进而获取 SqlSession 对象执行 SQL 查询,最后释放资源。此外,还介绍了 MyBatis 的面向接口编程方式,通过定义 Mapper 接口与映射文件进行关联,并展示了如何传入参数进行
2025-05-20 18:21:38
1039
原创 Java IO流进阶实战详解(含文件读写、拷贝、加密、字符集)
Java IO(输入输出)是我们日常开发中必不可少的一部分。无论是读写文件、传输数据、处理日志,IO 都是底层支持。在这篇博客中,我们将基于实际代码案例,从到FileReaderFileWriter全面解析 Java IO 的用法与底层原理,并完成以下内容:文件写入(字节/字符流)文件读取文件拷贝(大文件/小文件/文件夹)编码解码与乱码问题文件加密与解密。
2025-05-17 18:06:55
1015
1
原创 IdeaVim配置指南
IdeaVim是 JetBrains 系列 IDE(如 IntelliJ IDEA, WebStorm, PyCharm 等)中的一个插件,让你在 IDE 里使用 Vim 的按键习惯,大大提升效率。安装方法:在 IDE 中打开设置(Settings)→插件(Plugins) → 搜索IdeaVim→ 安装并重启。
2025-05-06 22:45:19
1131
原创 Java 多线程进阶:线程安全、synchronized、死锁、wait/notify 全解析(含代码示例)
Java 多线程的本质是对“共享资源 + 并发访问”下的一种控制与协作。理解 synchronized 的使用方式、死锁的本质、以及 wait/notify 的协作机制,能有效帮助我们写出更安全、灵活的并发程序。
2025-05-01 23:20:28
668
原创 Java 多线程进阶:什么是线程安全?
线程安全(Thread Safety)简单来说就是:在多个线程同时执行某段代码时,无论线程怎么调度、怎么交叉执行,都会得到正确的结果,不会出 bug。
2025-04-30 09:00:00
987
3
原创 Java 多线程基础:Thread 类详解
在 Java 编程中,线程是实现并发的重要工具。通过合理地使用 Thread 类,可以实现多任务并行处理,提升程序的响应能力和执行效率。本文围绕 Thread 类的核心功能展开,详细讲解了线程的创建、终止、等待、休眠等基本操作,同时介绍了如何获取当前线程实例以及线程可能处于的各种状态。文章旨在帮助读者打牢多线程基础,为后续掌握更复杂的并发控制机制(如线程池、同步锁、并发容器等)奠定坚实的理论基础。
2025-04-29 19:34:31
935
4
原创 Java多线程入门案例:实现Runnable接口
如何使用 Java 线程来实现并发执行。通过一个简单的示例,创建了一个实现 Runnable 接口的类 MyThread3,它在 run() 方法中包含一个死循环,每秒打印一次 "hello runnable"。同时,主线程也在 main 方法中以类似的方式执行,不停地打印 "hello main",展示了多线程的基本使用。
2025-04-28 11:07:00
388
原创 Java多线程入门案例详解:继承Thread类实现线程
通过一个简单实例,详细讲解了如何通过继承 Thread 类实现 Java 多线程。内容包括线程类的定义、run() 方法的实现、start() 方法与 run() 方法的区别、主线程与子线程的并发执行机制,以及程序运行效果分析。同时,文章指出了实际开发中需要注意的线程安全、异常处理与线程生命周期管理问题,并在最后提出思考题,引导读者深入理解多线程编程的核心概念。
2025-04-28 10:23:50
470
4
原创 JavaEE-多线程实战02
Runnable只管写任务,不管线程怎么执行。Thread既是线程本身,也能直接运行任务。推荐用 Runnable,因为更加灵活,避免继承带来的局限,可以更好地与线程池等高级功能结合。
2025-04-27 19:36:10
467
原创 JavaEE-多线程实战01
本文分析了一段使用 Java 多线程的示例代码。程序定义了一个继承自 Thread 类的自定义线程 MyThread2,在其 run() 方法中通过无限循环每秒打印一次 "hello thread"。主线程在启动子线程后,同样进入一个无限循环,每秒打印一次 "hello main"。通过调用 start() 方法,程序实现了两个线程的并发运行,分别独立执行各自的打印任务。本文还详细解释了线程启动、休眠、异常处理机制,以及运行时可能出现的输出交错现象。同时指出,该程序缺乏优雅终止机制,实际应用中应当设计合理的
2025-04-27 19:06:06
466
原创 IdeaVim 配置与使用指南
IdeaVim是 JetBrains 系列 IDE(如 IntelliJ IDEA, WebStorm, PyCharm 等)中的一个插件,让你在 IDE 里使用 Vim 的按键习惯,大大提升效率。安装方法:在 IDE 中打开设置(Settings)→插件(Plugins) → 搜索IdeaVim→ 安装并重启。
2025-04-27 09:13:27
1270
1
原创 Fedora 下 Hyprland 安装与基础配置
以上就是 Fedora 上 Hyprland 的基础配置教程。整体体验非常流畅炫酷,配置也不算复杂。如果大家有更多实用的优化方法,欢迎一起讨论交流!刚创的hyprland频道,欢迎加入->HYPR2025LD(QQ频道)
2025-04-26 23:26:02
479
1
原创 Linux 下的游戏指南 | 让你的 Linux 变成最强游戏平台!
1. Linux 诞生时的游戏基因《雷神之锤》(Quake)的“神助攻”1991 年,林纳斯·托瓦兹(Linus Torvalds)开发 Linux 内核时,曾公开表示自己受《雷神之锤》的启发——他为了在 PC 上玩这款游戏(当时需要 Unix 系统),决定自己写一个类似 Unix 的操作系统内核。(冷知识:Linux 的早期开发动力之一是想玩 3D 游戏!《波斯王子》的间接贡献。
2025-04-26 16:52:06
1618
1
原创 《多线程×时间管理大师》——程序员的并发修炼之路!
线程是操作系统调度的最小单位。简单来说,一个线程就是一个“执行流”,它可以和其他线程同时执行不同的任务。打个比方,如果一个公司去银行办理多个业务,单靠一个人(主线程)效率低下,不如多个员工同时处理各自的事务,这就像我们用多个线程来并发处理不同任务,提高程序效率。更好地利用多核 CPU 的资源提升 IO 密集型程序的响应能力相比多进程更加轻量和高效Java 多线程虽不易,但掌握核心概念之后,其实也没那么难。
2025-04-25 22:50:38
482
原创 Java算法01
其实这就好比操场跑步,如果你和另一个人都是相同速度,那么就永远也不可能相遇为什么最开始时快指针比慢指针多走一步?第一次判断时,slow 和 fast 是一样的,直接跳出循环,导致判断错误!先看这个代码再看这个代码。
2025-04-22 22:34:57
240
原创 《03-javaEE系列---线程》
1.线程是什么一个线程就是一个执行流(指的就是程序中的指令是按照什么顺序被执行的。你可以把它想象成做事情的流程图)。每个线程之间都可以按照顺序执行自己的代码,多个线程之间“同时”执行着多份代码。举个日常生活中的例子:想象你家里人做晚饭。比如:洗菜切菜炒菜煮饭摆盘只能一件事情做完,再做下一件。执行流是线性的。就像单线程程序。于是妈妈请了家里人(你和你弟弟)一起来帮忙:妈妈在切菜(线程A)你在洗菜(线程B)弟弟在煮饭 (线程C)
2025-04-22 10:10:08
1094
原创 《03-javaEE系列---多线程》
进程的概念多任务操作系统,希望系统能够同时运行多个程序。本质上来说进程是解决并发编程的问题的。在互联网发展的早期,web开发是用c语言来编写的服务器程序这是一种CGI的技术基于多进程的编程模式。服务器同一时刻会进行很多请求,针对每个请求,都会创建出一个进程。一旦这个请求处理完了,这个进程就销毁了。如果请求很多,意味着你的服务器就需要不停创建新的进程,也需要不停的销毁进程。频繁创建和释放。这样的开销是非常大的。进程在频繁创建和销毁的时候开销比较大,最关键的原因是资源的申请和释放。
2025-04-18 20:05:59
256
原创 《02-javaEE系列---进程(补充)》
进程是操作系统分配资源的基本单位。多任务操作系统(Windows、Linux、Android、iOS等)可以同时管理多个进程。单任务操作系统(如老式功能机)一次只能运行一个程序。优先级 = 系统默认 + 用户调整 + 进程类型 + 动态调整 + 特殊需求系统最后会综合这些因素,给每个进程打分(优先级),然后调度器根据优先级高低,来安排谁上CPU、谁排队等。
2025-04-15 09:00:00
508
原创 《02-javaEE系列---进程》
可以把内存想象成一个旅馆,这个旅馆里面有很多个房间,所谓的申请内存,就是你跟老板说开一个房间,这时候就是申请到了一个空的房间号(这个房间号是我们不能确定的)。注意,这里讲的和我们之前所说的同时运行是不冲突的,(CPU频率往往都是GHz,一秒钟能够执行几十亿条指令的,由于执行速度太快,我们肉眼感知不到),通过一个简单的不重复的整数来进行区分的,系统会保证pid的唯一性,针对某个进程来操作,就可以通过pid,pid一般是从1开始累加的。整个系统的内存不是我们决定的,
2025-04-07 20:43:51
728
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人