自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kotlin文件操作

Kotlin 提供了丰富的 API 来操作文件和目录,包括遍历、复制、获取父路径等。可以使用File和Path来创建、读取、遍历文件系统。遍历时注意根目录的处理,避免空指针异常。实际编程中应加上异常处理与空值检查。

2025-07-12 21:25:35 217

原创 Kotlin文件

熟练掌握 Kotlin 中的文件层级结构处理对于开发者来说是非常重要的技能。它能显著提升你管理数据、组织文件的能力,也让应用程序的文件交互更高效、更健壮。

2025-07-12 17:12:24 545

原创 Final

总的来说,Kotlin 中的final机制为继承和重写提供了更严格的控制,从而让代码更加安全、清晰和可维护。默认安全、显式开放。

2025-07-12 15:51:17 156

原创 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配置详解。

2025-05-20 19:37:00 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

原创 JDBC指南

所谓的JDBC,就是使用Java代码来操作所有的关系型数据库。JDBC。

2025-05-19 19:26:53 298

原创 Java IO流进阶实战详解(含文件读写、拷贝、加密、字符集)

Java IO(输入输出)是我们日常开发中必不可少的一部分。无论是读写文件、传输数据、处理日志,IO 都是底层支持。在这篇博客中,我们将基于实际代码案例,从到FileReaderFileWriter全面解析 Java IO 的用法与底层原理,并完成以下内容:文件写入(字节/字符流)文件读取文件拷贝(大文件/小文件/文件夹)编码解码与乱码问题文件加密与解密。

2025-05-17 18:06:55 1015 1

原创 Java文件IO

【代码】Java文件IO。

2025-05-17 17:41:52 105

原创 StringBoot Web实战

2025-05-10 09:42:59 148 2

原创 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

原创 01-javaEE开篇

软件是用代码解决实际问题的一种方式,比如写一个记事本程序用于记录信息。

2025-04-24 21:25:00 252

原创 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

价值百万的小米logo(mix2s开机动画)

价值百万的小米logo(mix2s开机动画)

2025-02-26

空空如也

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

TA关注的人

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