- 博客(222)
- 收藏
- 关注
原创 C语言 18 条件编译
可以看到此时得到的结果就是 666 了,因为现在 PI 在引入的头文件中已经定义了(当然直接在当前源文件中定义也是一样的)当然,除了判断某个符号是否存在之外,也可以像条件语句那样直接进行逻辑判断,这里需要使用到。再来看看条件编译,还可以根据条件,选择性地对某些内容进行忽略。可以看到,在没有定义 PI 的情况下,执行的是。那如果现在希望判断某个符号没定义呢?,那要是现在定义了呢?
2024-09-29 15:47:39 251
原创 C语言 17 宏定义
虽然这里搞得像函数一样,但是最后还是会被替换为 x * x,而这个 x 就是填写的参数,所以最后会变成 9 * 9 替换上去,程序运行出来的结果就是 81 了。如果按照一般思维,M 是 a + b,那么替换上去之后应该就是 30,然后 30 x 10 最后得到的应该是 300 才对。,当然如果你定义为其他任意的内容,同样会替换到那个位置,但是至于替换之后程序还正不正常就不知道了。,注意这个跟类型无关,是赤裸裸的纯文本替换,也就是相当于把代码修改了,PI那里直接变成。这样就可以了,那么怎么去使用它呢?
2024-09-29 15:44:57 574
原创 C语言 15 预处理
这到底是个什么东西,为什么每次都要加上呢?这里将详细讨论它缘由。C 语言中带号的指令并不是 C 关键字的一部分,不属于 C 语言。带号的指令是写给编译器看的,告诉它一些事情,好让它更好的为 C 代码服务。比如指令就是告诉编译器看到这句话就要把我写的文件包含进来,#define指令就是告诉编译器看到这个宏就用前面已经定义好的内容替换。
2024-09-27 17:22:29 383
原创 VSCode 定义Java类注释
这样的注释一片空白,无法标注类的作者、创建时间等信息。这样就自定义了 Java 的类注释了,此时再输入。在使用 VSCode 开发 Java 时,输入。进入 Java 配置。添加 Java 配置。
2024-09-20 16:45:15 387
原创 VSCode 定义代码模板
这样,以后在编写代码时,只需要使用配置的关键词就可以生成代码,比如一开始说的的序列化版本号代码输入。这段代码是固定写法,基本不会变,如果每次都手写的话,就比较繁琐了。VSCode 提供了生成代码段的功能,为我们提供了便利。是没有实际内容的,只是以注释的方式提供了一个示例。在使用编写代码的过程中,经常会写一些固定代码段。上方出现了各种后缀文件的选择,这里以选择。
2024-09-20 16:23:56 870
原创 C语言 14 结构体 联合体 枚举
之前认识过很多种数据类型,包括整数、小数、字符、数组等,通过使用对应的数据类型,就可以很轻松地将数据进行保存了,但是有些时候,这种简单类型很难去表示一些复杂结构。
2024-09-19 14:49:49 1050
原创 C语言 13 指针
还记得在前面谈到的通过函数交换两个变量的值吗?swap(a, b);// 这里对a和b的值进行交换a = b;b = tmp;实际上这种写法是错误的,因为交换的并非是真正的 a 和 b,而是函数中的局部变量。那么有没有办法能够直接对函数外部的变量进行操作呢?这就需要指针的帮助了。程序中使用的变量实际上都是在内存中创建的。
2024-09-14 17:12:54 1090
原创 C语言 12 函数
程序的入口点就是main函数,只需要将程序代码编写到主函数中就可以运行了,不过这个函数只是由我们来定义,而不是我们来调用。当然,除了主函数之外,一直在使用的printf那么,函数的具体定义是什么呢?函数是完成特定任务的独立程序代码单元。每次要做这个任务时,都要完完整整地将任务的每一行代码都写下来,如果程序中多处都需要执行这个任务,每个地方都完整地写一遍,实在是太臃肿了,有没有一种更好的办法能优化代码呢?
2024-09-13 17:10:05 1219
原创 C语言 11 字符串
虽然这种编码方式能够很好的解决中文无法表示的问题,但是由于全球还有很多很多的国家以及很多很多种语言,所以最终目标是能够创造一种可以表示全球所有字符的编码方式,整个世界都使用同一种编码格式,这样就可以同时表示全球的语言了。不过这样能够表示的内容还是不太够,除了那些常见的汉字之外,还有很多的生僻字,比如龘、錕、釿、拷这类的汉字,后来干脆直接只要第一个字节大于 127,就表示这是一个汉字的开始,无论下一个字节是什么内容(甚至原来的128 个字符也被编到新的表中),这就是 Windows 至今一直在使用的默认。
2024-09-13 10:47:35 1175
原创 C语言 09 流程控制
如果需要判断某个条件,当满足此条件时,才执行某些代码,那这个时候该怎么办呢?可以使用if这样虽然简洁,但不够直观,还是建议使用花括号。现在需求升级了,需要判断某个条件。当满足此条件时,执行某段代码;当不满足时,执行另一段代码。可以结合else但是这样可能还是不够用,比如现在希望判断学生的成绩,不同分数段打印的等级不一样。比如90以上就是优秀,70以上就是良好,60以上是及格,其他的都是不及格。那么这种又该如何判断呢?要像这样进行连续判断,我们需要使用else-if。
2024-09-03 16:14:21 612
原创 Java Excel转PDF(免费)
目前市面上 Excel 转 PDF 的组件较多:收费:aspose、GcExcel、spire开源:jacob、itextpdf其中收费的组件封装得比较好,代码简洁,转换的效果也很好,但收费也高得离谱:为了成本考虑,就需要考虑开源的组件了,因为它们都是免费的:jacob:目前没有探索出很好的导出效果。itextpdf:已探索出很好的导出效果,达到了与收费组件一致的效果(推荐)。以下是 itextpdf 的使用步骤:引入依赖<!-- POI Excel--><
2024-08-29 15:57:20 2004
原创 C语言 08 运算符
不过默认情况下就是正数,所以没必要去写一个 + 号取模运算就是计算余数不过很遗憾,在 C 中没有指数相关的运算符,一般通过来实现。
2024-08-13 09:41:12 862
原创 VSCode 控制台中文乱码(永久性解决)
在 Windows 上使用 VSCode 进行开发时,经常会遇到控制台中文乱码的情况,设置编码往往都无效或者不能永久性解决。归根到底,是因为 Windows 中文版系统 cmd 编码默认为。一路点击确认,就永久性解决控制台中文乱码的问题。,而 VSCode 默认新建文件的编码为。,所以会出现中文乱码情况。
2024-07-29 14:57:16 508
原创 Docker 安装字体文件
由于 Docker 容器的隔离性,与宿主机是独立的运行环境,如果需要用到宿主机的字体文件就需要进行。例如在导出 PDF 文件时,如果缺少字体文件,就会产生乱码(常表现为中文变成方框)。Docker 字体文件的安装比较简单,因为 Linux 系统的字体文件一般都在。目录下,所以挂载该目录即可。
2024-07-11 17:24:47 487
原创 EasyExcel 单元格根据图片数量动态设置宽度
在使用 EasyExcel 导出 Excel 时,如果某个单元格是图片内容,且存在多张图片,此时就需要单元格根据图片数量动态设置宽度。
2024-07-05 18:13:28 302
原创 EasyExcel 填充+写入
之所以要使用该拦截器,是因为填充时默认是只能取模板定义的 sheet 名称作为填充页的 sheet 名称,但业务中往往是需要动态命名 sheet 的,所以使用拦截器进行拦截处理后命名。此时读取的模板文件默认为压缩文件,是不能在后续进行填充的,所以需要在。:这里一定要传入对象,不能传入列表,否则填充的内容会变为空白。:这里必须要关闭写入器,不然写入的文件为空。
2024-07-03 17:24:20 989
原创 Docker 部署Nacos
如果MySQL容器在WSL 2中运行,Nacos无法连接到容器的动态IP地址。WSL 2网络默认使用动态IP地址。即可访问Nacos。默认账号:nacos。默认密码:nacos。
2024-05-17 09:23:13 933 1
原创 Docker 部署RabbitMQ
d:设置程序后台运行。:设置服务自启动。--name:指定运行后的容器名称。-e:设置环境。这里主要设置账号密码为admin。默认账号密码为guest ,只能在 localhost访问,由于需要外网访问,所以创建admin用户进行登录。-p:设置公网IP地址的端口号对应容器内部的端口号。:安装可视化管理组件。
2024-05-16 18:23:42 494
原创 Docker 部署MinIO
:容器将不会虚拟出IP/端口,而是使用宿主机的IP和端口。:容器名称。:后台启动。:随docker启动。:环境设置。:账号 :密码(正常账号应该不低于3位,密码不低于8位,不然容器会启动不成功) :数据卷挂载。第1个挂载文件数据。第2个挂载配置数据。 :指定客户端端口。2、访问管理界面服务器地址:9090输入设置的账号密码即可登录。
2024-05-16 18:22:00 495
原创 SpringBoot 单元测试ServerContainer not available
这是因为SpringBootTest启动时不会启动服务器,所以WebSocket会报错。这个时候需要在注解中添加。
2024-05-11 09:25:56 502 1
原创 Java 环境变量未生效
在配置 Java 环境变量的时候,有可能会出现修改了JDK的路径,但是Java的环境变量没有相应切换的情况。命令输出的JDK版本不是新配置的版本,依然是之前的,甚至提示找不到。此时可以将Path中Java的环境变量置顶,一般能解决问题。命令,即环境变量没有生效。
2024-05-11 09:24:12 485
原创 OpenFeign 定义后备工厂进行服务降级
OpenFeign 定义后备工厂进行服务降级可以使得远程接口调用失败时进行降级处理,而不会直接报错,影响后续代码逻辑。
2024-05-08 17:54:35 749
原创 OpenFeign @PathVariable需注明参数名称
在定义 OpenFeign 的远程接口时,如果是路径拼接作为参数的远程接口,需要在。需注明参数名称,不然代码启动时会报错。
2024-05-08 17:50:53 326
原创 Hutool 只复制不为空的属性
此时再以传入值复制到数据库表对象中,但如果传入值中有属性为null,会将数据库表对象的属性也设为null,修改时这些属性就会被清空,不符合不传就不修改的需求。在使用 Hutool 的工具类进行复制时,有时候需要只复制不为空的属性。这样就不会把为null的属性复制到数据库对象中,满足业务需求。
2024-05-07 17:25:00 766 1
原创 MyBatis-Plus 数据库表字段名为关键字
数据库表字段名为关键字时,执行SQL是会报错的,一般的处理是在字段左右加。解决,MyBatis-Plus也支持这种处理方式。
2024-05-07 17:22:22 872
原创 SpringBoot 循环引用解决办法
Spring 原生是允许并解决了单层循环引用的,但从 Spring Boot 2.6.0 开始,默认禁止 Bean 之间的循环引用,如果存在循环引用就会启动失败报错。这种方式虽然也能解决循环引用,但随着循环引用数量的增加,需要添加大量的注解,非常繁琐,不推荐。设置Spring允许循环引用(在循环引用的一方添加。
2024-05-01 13:38:29 673 1
原创 SpringBoot 打包所有依赖
项目,使得打的包中包含所有依赖,可以直接运行。SpringBoot 项目打包的时候可以通过插件。打包时会生成两个包,一个是包含了所有依赖的以。结尾,一个是不包含依赖的以。
2024-05-01 13:36:07 1059 1
原创 IDEA 加大运行内存
根据电脑内存大小设置,16G内存推荐设置为4G。重启IDEA,使新配置生效。底部单击鼠标右键,勾选该项。双击可优化内存占用。
2024-04-23 09:23:00 2184
原创 IDEA pom.xml依赖警告
升级了检测易受攻击的 Maven 和 Gradle 依赖项,并建议修正,通过插件 Package Checker 捆绑到 IDE 中。这并不是引用错误,不用担心。这种方式有点太粗暴了,毕竟 IDEA 默认安装了这个插件,还是有一些必要的。卸载 Package Checker 插件,再重启 IDEA 即可。这种方式影响最小,需要提示时将设置改回来即可,修改 IDEA 的参数,暂时禁用该提示。
2024-04-23 09:20:57 742
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人