自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 jvm必知必会-类的生命周期图文详解

类的生命周期描述了一个从加载、使用到卸载的过程;而其中的。

2024-06-17 20:09:48 371 3

原创 10分钟部署一个个人博客

确保到这一步之前,你的项目可以通过命令成功跑起来。首先,自定义我们能看到的首页一切,比如:下面是我自己博客的截图示例修改主页按钮信息找到项目中的那个README文件,修改其中的内容,效果如下,根据自己的需求修改之后,再次运行项目查看效果,你就知道具体改动了哪些东西。修改主页logo和名称找到项目中一个名为config.js的文件,这里可以修改右上角的功能导航栏、主页名称和座右铭;

2024-06-15 17:25:52 1600 2

原创 Rust基础学习-Modules&Package

在Rust中,可以使用mod// code这里,是模块的名称。看下面的例子;println!("config!");上面的示例中,我们使用mod定义了以config为名称的一个模块。在模块内部,我们定义 了一个简单的函数print;

2024-06-13 09:40:27 818 2

原创 Rust基础学习-标准库

栈和堆是我们Rust代码在运行时可以使用的内存部分。Rust是一种内存安全的编程语言。为了确保Rust是内存安全的,它引入了所有权、引用和借用等概念。要理解这些概念,我们必须首先了解如何在栈和堆中分配和释放内存。

2024-06-11 21:21:53 1174 1

原创 Rust基础学习-Rust宏

Rust中的宏是生成另一段代码的一段代码。可以根据输入生成代码,简化重复模式,使得代码更加简洁。比如我们一直在用的都是宏。

2024-06-08 09:24:36 852 3

原创 Rust基础学习-Rust中的文件操作

方法来打开一个指定文件,函数接收一个文件路径作为参数并返回一个文件对象,如果文件不存在,将会返回一个。文件 I/O 是通过提供与文件系统交互的功能的。中的文件读写相关的内容,掌握了文件处理中的读写删追等基本操作,怎么样,你坤哥厉不厉害!变量进行模式匹配,如果打开文件时出现错误,就会调用。这种方式写入文件,新的内容会将之前文件中的内容覆盖。运行程序会打印读取到的文件对象,如果存在的花。)的所有字节,并将其复制到一个可变字符串。如果打开文件没有错误,我们将输出。方法,该方法将一个空的可变字符串。

2024-06-06 10:16:06 1201 3

原创 X-CSV-Reader:一个使用Rust实现CSV命令行读取器

这篇文章主要学习如何基于Rust使用csv这个crate构建一个CSV文件读取器的过程。学习了csv相关的用法以及一些往期学过的crate的复习,兼顾了实用性和Rust的学习,是个很不错的练手小项目。

2024-05-27 08:47:35 1861 41

原创 无畏并发: Rust Mutex的基本使用

是很多编程语言避不开的一块主要内容,主打一个无畏并发的Rust自然也面临这样的挑战。Rust中的Mutex提供了强大的同步原语,确保共享数据的线程安全,这篇文章中,我们会探讨Mutex的使用,从基础的用法到一些高阶内容。

2024-05-26 18:00:50 1022

原创 Xed编辑器开发第三期:使用Rust从0到1写一个文本编辑器

继续[Xed编辑器开发第二期:使用Rust从0到1写一个文本编辑器](https://blog.csdn.net/2302_76401343/article/details/139001563?spm=1001.2014.3001.5502)的开发进度,这是第三期的内容:

2024-05-21 19:57:45 1393 39

原创 Rust AI:机器学习Candle 和Burn框架的简单对比

Candle和Burn代表了Rust生态系统在机器学习和人工智能方面令人兴奋的发展。Candle为深度学习任务提供了简单性和高性能,而Burn则提供了更全面的ML堆栈和更大的灵活性。CandleBurn。

2024-05-21 09:03:34 1312 3

原创 X-SCAN:Rust从零实现一个命令行端口扫描工具

我们的X-SCANIPAddressstart_portend_port// 命令行参数定义/// 想要嗅探的地址,必须是有效的IPv4地址。将回退到127.0.0.1#[bpaf(guard(start_port_guard, "必须大于0"),)]#[bpaf(guard(end_port_guard, "必须小于或等于65535"),)]这里主要用到了bpaf,这个上面讲过了,但是这里有一些东西需要提一下;这里用到了guard。

2024-05-18 14:23:15 1465 5

原创 Xed编辑器开发第二期:使用Rust从0到1写一个文本编辑器

现在,它在每行中绘制一个波浪号,这意味着该行不是文件的一部分,不能包含任何文本。当我们打印最终的波浪号时,我们会像在任何其他行上一样打印一个。如果在渲染屏幕的过程中发生错误,我们不希望程序的输出留在屏幕上,也不希望将错误打印在光标恰好位于该点的任何位置。在我们的文本编辑器中,我们将在正在编辑的文件末尾之后的任何行的开头绘制一个波浪号。让我们重构我们的代码,以便我们有一个用于低级按键读取的函数,以及另一个用于将按键映射到编辑器操作的函数。当终端绘制到屏幕时,光标可能会在屏幕中间的某个地方显示一瞬间。

2024-05-17 12:15:32 1046 6

原创 Rust爬虫练手:获取B站“庆余年2“短视频地址

不过从数据来看,爬取的数据存在重复的情况,但是此时由于请求次数过多,已经触发了B站的风控策略,暂时没法继续调试了,剩下的去重工作就交给你了,年轻人!B站目前视频搜索结果的分页策略是每页36条数据,假设我们以第4页为例,那么截至第4页,当前的视频总数就是。也就是说,这部分是固定不变的,不管你当前页码是多少页也不影响。,但是这里却包含了一些奇奇怪怪的地址,比如开头那几行就没意义,后面这些地址也不是完整的。额,有点跑题了,其实不需要知道的如此准确。下面是爬取页码数据之后的结果,符合条件的。开头得完可访问的视频。

2024-05-16 13:44:33 8241 42

原创 Xed编辑器开发第一期:使用Rust从0到1写一个文本编辑器

如果这篇内容跟下来,你还是觉得比较难,那么我推荐你暂时放一下,这里推荐一个我之前写的开源项目untools,这也是一个使用Rust编写的工具库,可以拿来练手,顺手点个star的同时也欢迎有想法有能力的同学PR;

2024-05-15 16:27:50 1316 2

原创 Go框架三件套:Gorm的基本操作

这里的Go框架三件套是指WebRPCORMGorm框架gorm框架是一个已经迭代了10+年的功能强大的ORM框架,在字节内部被广泛使用并且拥有非常丰富的开源扩展。Kitex框架Kitex是字节内部的Golang微服务RPC框架,具有高性能、强可扩展的主要特点,支持多协议且拥有丰富的开源扩展。Hertz框架Hertz是字节内部的HTTP框架,参考了其他开源框架的优势,结合字节跳动内部的需求,具有高易用性、高性能、高扩展性等特点。

2024-05-14 08:52:30 675

原创 字节跳动后端青训营笔记:Go语言进阶

如上图所示,从上到小,覆盖率逐层变大,成本却逐层降低。

2024-05-12 15:26:41 1311 4

原创 游戏理解入门:Rust+Bracket开发一个小游戏

一般情况下,游戏都是有一些明确的游戏模式,每种模式会明确游戏在当前的。下面是该阶段全部代码,实现了游戏基本窗口以及三个基本模式的逻辑。这部分主要在游戏窗口添加一个玩家角色,这里以字符。这块代码和游戏菜单差不多,把提示词换一下。下面先将大致的框架构建好。的游戏编程库,这是基于。这里选择使用一款名为。

2024-05-08 21:06:22 1391 2

原创 Rust 生命周期浅谈

生命周期是 Rust 中处理引用有效性的机制,确保引用在其引用的数据仍然有效时被使用。生命周期注解(lifetime annotations)用于标识引用的生命周期,帮助编译器进行检查。

2024-05-04 20:29:12 1525 3

原创 Java中使用Redis实现分布式锁的三种方式

随着软件开发领域的不断演进,并发性已经成为一个至关重要的方面,特别是在资源跨多个进程共享的分布式系统中。中设置一个表示锁的唯一键来创建一个锁。功能丰富:提供了大量附加功能和分布式数据结构,对于复杂的应用程序可能是有益的。额外依赖:为您的项目添加额外的库,这对于简单的用例可能是不必要的。该命令仅在键不存在时设置具有给定值的键。命令适用于基本场景,但在设置键及其过期时间时存在原子性等限制。脚本可以在单个服务器往返中处理更复杂的逻辑,减少网络延迟。中的管理细节,使其成为实现分布式锁的方便且稳健的选择。

2024-05-02 18:41:43 632 6

原创 手把手实现一个简约酷美美的版权声明模块

从效果来看,似乎已经100%实现了贴图的效果,不过仔细观察还是会发现有一些瑕疵,比如竖条和右侧的文字信息的关系似乎过于亲密了,不行,得让它们明白什么叫距离产生美。从整体的效果来看,它的实现并不复杂,作为一个名后端开发者,我都能一眼看出来结构,甚至脑阔都能浮现出来大致的代码实现了。大体就是这样子的啦,但在具体的实现中,还是有很多细节的,比如版权的版字的摆放位置的设计和代码中的计算方式等等。整体就是一个外在的盒子,里面包含了几个简单的内容元素,用来声明版权信息,盒子内左侧有一个显眼包,一个大大的。

2024-05-01 18:13:53 1266 7

原创 上古神器加持【第二期】:从0到1打造全语言支持的万能编辑器

Vim官方网站是一款流行的文本编辑器,是Unix和类Unix系统下的一种强大工具。你的鼠标有点像医生在你很小的时候就植入你的身体,告诉你的父母这是在电脑上做某事的最佳设备。你喜欢它是因为你已经深深地习惯了它,而且已经习惯了很长一段时间。问问自己:如果鼠标如此完美,为什么你最喜欢的IDE有341324个键盘快捷键?也许是因为使用键盘速度更快?更轻松?更高效?更舒服吗?你的鼠标不是你最好的朋友。这只是一个朋友。你的键盘才是你真正的异母兄弟。力量来自于它,而 Vim 非常适合您驾驭和释放这种力量。

2024-04-30 08:15:00 915 12

原创 上古神器加持【第一期】:从0到1打造全语言支持的万能编辑器

Vim(Vi IMproved)是一款文本编辑器,是 Unix 和类 Unix 操作系统下的一种非常流行的编辑器。它是 vi 编辑器的增强版本,提供了更多功能和改进,同时保留了 vi 的快捷键和操作方式。Vim 是一个高度可定制的编辑器,用户可以通过配置文件和插件来扩展其功能,以满足各种编辑需求。Vim 具有强大的文本编辑和处理功能,包括语法高亮显示、自动补全、宏录制、多级撤销、分屏编辑等功能。Vim 的操作方式主要基于模式,包括普通模式、插入模式、可视模式等。在普通模式下,用户可以使用各种快捷键执

2024-04-29 13:56:33 606

原创 if else 的几种重构思路,远离代码屎山

这个术语通常用来描述一个代码块中包含大量嵌套的 if else 语句,使得代码变得难以理解和维护。在这种情况下,随着条件的嵌套层级增加,代码会变得混乱且难以维护。为了改善这种情况,看你这篇文章,你来对地方了。使用三元运算符可以简化一些 if-else,使代码更加简洁和可读,当然了,有些语言并不支持这种语法,比如。策略模式可以将不同的处理逻辑封装到不同的策略类中,从而避免使用多个 if else 代码块。如果有一系列返回相同结果的条件,则可以将它们组合到单个条件表达式中,以使逻辑更清晰。

2024-04-29 07:45:00 411 4

原创 8个代码片段:Java与Rust的角逐

Rust 要求开发人员在上下文没有为编译器提供足够的信息来推断类型时显式指定整数类型(例如,i32、i64)。默认情况下,Rust 中的变量是不可变的,这与 Java 不同,在 Java 中,变量是可变的,除非标记。Rust 的控制流结构与 Java 非常相似,不过好像几乎大部分的编程语言的。中所需的类和方法定义来简化经典的 “Hello, World!机制,提供了一个强大的模式匹配系统,确保在编译时考虑所有可能的结果。函数为切入点,Rust 提供了一种更简洁、更直接的方法。块提供了类似的功能。

2024-04-28 17:56:40 367

原创 剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。给定 target =5,返回true。给定 target =20,返回false。

2024-04-28 08:56:19 456

原创 如何写得一手优雅规范的SpringBoot 接口?

不需要在每个方法上都重复写基本路径部分,在类级别定义基本路径可以带来更清晰、更简洁、更易维护的代码结构,同时也有助于提高开发效率和代码质量。上面虽然列举好几种编写接口的规范和建议,但这些不是一成不变的,在具体的项目,还需要根据业务和项目需求做出一些让步和改动,灵活运用这些建议,你的接口也可以很优雅。一个良好设计的接口能够提高代码的可读性、可维护性和可扩展性,从而为整个应用程序的开发和维护带来便利。的功能于一身,一个注解作两个注解的事情,简洁高效。优雅的代码赏心悦目,你的代码触目惊心。这是一个综合注解,是。

2024-04-26 09:46:35 848 7

原创 几个Lombok鲜为人知的奇技淫巧

虽然说的具体使用教程不是本文的重点,但是基本的概念和简单的用法还是要提一嘴的,万一真有新人还没来得及发现这个东西呢,岂不是又能嫖到一个宝?是的,就这,就这简单的两个注解,省去了几十行”废物“代码,最主要是节省了时间,可以将精力集中在业务开发上,而是不在这里写。这个就更常见了,如果没有特别的要求,我们更多使用的是这个一劳永逸的注解,正如开始所说的,这是一个集众多注解于一身的多功能注解。以上这些注解都是最最常用的几个注解,在开发中几乎随处可见,下面就拎几个出来用代码的方式演示一下,以表诚心。

2024-04-26 06:30:00 1324 2

原创 程序员的Romantic:代码诗词第一期

严格来说,这篇文章不属于技术类文章的范畴。这算是一个番外特辑吧,所有标题前缀含有:的文章都属于一个系列。

2024-04-26 00:00:00 200

原创 验证码功能:kaptcha生成验证码

结合 kaptcha生成验证码功能。

2024-04-25 11:23:40 329

原创 算法基础:并查集详解

并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。即使在空间上勉强通过,运行的时间复杂度也极高,根本就不可能在比赛规定的运行时间(1~3秒)内计算出试题需要的结果,只能用并查集来描述。方法:将集合1或者2插入到集合1或者2的某个位置即可【根节点之下的某个位置】可以看到,在计算x的集合编号的时候还是比较耗时的,所以介入了一个优化算法。中的祖宗节点【6】指向集合。

2024-04-25 11:16:54 817

原创 剑指 Offer 03.:数组中重复的数字

找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。

2024-04-25 11:12:22 598

转载 提问的智慧:避免无效提问,提高工作效率!!

2022-9-15 午时 于 杭州​ 在黑客世界里,当提出一个技术问题时,你能得到怎样的回答?这取决于挖出答案的难度,同样取决于你提问的方法。本指南旨在帮助你提高发问技巧,以获取你最想要的答案。首先你必须明白,黑客们只偏爱艰巨的任务,或者能激发他们思维的好问题。 如若不然,我们还来干吗?如果你有值得我们反复咀嚼玩味的好问题,我们自会对你感激不尽。好问题是激励,是厚礼,可以提高我们的理解力,而且通常会暴露我们以前从没意识到或者思考过的问题。对黑客而言,“问得好!”是发自内心的大力称赞。尽管黑客们有蔑视简单问题

2024-04-25 11:06:06 27 1

原创 日志管理艺术:Slf4j与Logback实用指南(基于Gradle千字长文)

在当今软件开发领域,日志记录是一项至关重要的任务,它不仅帮助开发人员跟踪应用程序的运行状态和行为,还有助于故障排查、性能优化和安全监控。在日志记录领域,slf4j(Simple Logging Facade for Java)和logback是两个备受推崇的工具,它们为 Java 应用程序提供了强大而灵活的日志记录功能。slf4j作为一个简单的日志门面,提供了统一的日志记录接口,使开发人员能够轻松切换不同的日志实现框架,而无需修改应用程序的代码。而logback则是slf4j的一个实现,它提供了高性能、灵活

2024-04-25 03:00:00 1139 3

原创 2万字长文:Docker必知必会系列

Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建镜像所需的指令和参数构成的脚本。编写Dockerfile文件docker build命令构建镜像docker run 依镜像运行容器实例Compose是Docker公司推出的一个工具软件,可以管理多个Docker容器组成一个应用。你需要定义一个YAML格式的配置文件,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。docker建议我们每一个容器中只运行一个服务,因为docker。

2024-04-24 11:26:33 951

原创 MybatisPlus笔记:无废话实践代码纯享版

我们在实际操作数据库的时候会涉及到很多的条件。所以MP为我们提供了一个功能强大的条件构造器Wrapper。使用它可以让我们非常方便的构造条件。在其子类中提供了很多用于构造Where条件的方法。的子类则额外提供了用于针对Select语法的select方法。可以用来设置查询哪些列的子类则额外提供了用于针对SET语法的set方法。可以用来设置对哪些列进行更新。完整的方法可以参照:https://baomidou.com/pages/10c804/#abstractwrappereq:equals,等于。

2024-04-23 21:05:50 915

原创 基础安全:CSRF攻击原理与防范

这是一种常见的网络攻击手段,攻击者通过构造恶意请求,诱骗已登录的合法用户在不知情的情况下执行非本意的操作。这种攻击方式利用了Web应用程序中用户身份验证的漏洞,即浏览器在用户完成登录后会自动携带相关的认证信息(如Cookie、Authorization header等)发送给服务器,使得服务器误以为请求来自已授权的用户。这是一个阳光明媚的好日子,万里无云,心情愉悦,用户哼着小曲儿兴高采烈的通过下面的请求地址登录了自己的账户并给小老婆转账520000,成功登录后在浏览器上留下了。基于上面的概念描述,

2024-04-23 14:12:57 1648 3

原创 开发必会:JWT技术揭秘,一次性拿捏

我靠,有一说一,这定义真的是抽象,但是不打紧,你不用也没必要去记下他的定义,你要学的,是理解他的原理和作用即可,就开发行业来说,很多技术其实没那么注重对名词本身的记忆上,更多的是对技术原理和使用的要求,当你学会如何使并理解了他背后的实现原理之后,你也就掌握了这门技术,晦涩的术语定义不过是回个头的事。这部分其实上面已经多多少少说差不多了,需要注意的是,签名算法很多,具体使用哪一种没有固定不变的规则,需要根据自己的业务需求等情况来选择,不管如何加密签名,都需要对。所以说经过编码后的数据依旧是可逆的,容易被。

2024-04-22 19:06:03 1038

原创 细说会话三剑客: Cookie、Session和Token

Cookie是一种存储与用户浏览器端的键值对形式的文本,主要用来作用户的会话管理,个性化体验等,且cookie是有状态的。

2024-04-21 19:09:27 1026 1

原创 上古掌控安全的神-零:Spring Security5.x到Spring Security6.x的迁移

之前有写过一篇关于的文章,但那已经是相对比较旧的版本了,就目前来说,这其中出现了不少的变动和更新,很多API的使用也是有不小的变化,所以我觉得有必要再写几篇文章学习一下,是的,不是一篇,是几篇,下面是初步的写作计划。《上古掌控安全的神-壹:Spring Security6.0+版本初探》《上古掌控安全的神-贰:Spring Security6.0+版本再探》《上古掌控安全的神-叁:Spring Security6.0+版本认证实践》

2024-04-20 19:51:38 1166 3

原创 入门必备:MySQL本地安装(Windows11)

将MySQL的安装路径放进去(/bin)目录上一级目录,记得一路点击确定,直到关闭全部的环境变量相关的窗口;这个是MySQL自带的GUI界面,但我一般不用,客户端我使用的是。文件,双击安装即可;

2024-04-18 19:10:39 364

X-CSV-Reader:一个使用Rust实现CSV命令行读取器

《X-CSV-Reader:一个使用Rust实现CSV命令行读取器》源代码

2024-05-27

官方助力:SpringAI快速尝鲜体验(SpringBoot3+Gradle8+JDK17) 项目源码

官方助力:SpringAI快速尝鲜体验(SpringBoot3+Gradle8+JDK17) 项目源码

2024-04-17

Java语言编写的带GUI界面的只能计算器,可以用来学习JavaFX界面编程以及Java语法练习,大学课程设计等

这款智能计算器是使用Java编写的,拥有直观的GUI界面,操作简单方便。它不仅可以进行基本的加减乘除运算,还支持复杂的科学计算和函数计算。用户可以轻松输入计算公式,快速获得准确的结果。无论是日常生活中的简单运算,还是专业领域的复杂计算,这款智能计算器都能满足您的需求。快来体验这款功能强大的计算器吧,让它成为您计算的得力助手!

2024-03-31

Java小项目-猜数字游戏多模式版完整源码

Java小项目-猜数字游戏多模式版文章配套资源

2024-03-26

揭秘AOP:切面编程的综合指南配套演示项目资源

《揭秘AOP:切面编程的综合指南》文章配套演示项目资源

2024-03-23

空空如也

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

TA关注的人

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