- 博客(19)
- 收藏
- 关注
原创 面向对象特性
就是形式参数,用于定义方法的时候使用的参数,是用来接收调用者传递的参数的。就是实际参数,用于调用时传递给方法的参数。实参在传递给别的方法之前是要被预先赋值的。是指在调用方法时,将实际参数拷贝一份传递给方法,这样在方法中修改形式参数时,不会影响到实际参数。也叫地址传递,是指在调用方法时,将实际参数的地址传递给方法,这样在方法中对形式参数的修改,将影响到实际参数。也就是说值传递,传递的是副本。引用传递,传递的是实际内存地址。这是两者的本质区别,下面会用到。
2024-04-10 15:01:13
803
1
原创 解决 Java 普通 Utils 类注入 mapper 为 null
PostConstruct 在构造函数之后执行,init () 方法之前执行。这时候注入的 mapper 为 null,所有会报空指针异常,就算调用 @Component 注解加入还是为 null(Utils 工具类不是静态方法,注解注入的 service 和 mapper 是非静态的,也不行,即使把 service 和 mapper 注入为 static 静态的也还是会报空指针)解决 Java 普通 Utils 类(非 Controller、Service)注入 mapper 为 null。
2024-04-09 19:45:00
572
原创 后端项目部署教程
注意的坑: springboot不能使用本地地址连接mysql、rabbitmq、redis。因为docker容器都是互相独立的。构建完成后自动创建镜像、容器、自动启动容器。只要容器正常运行、以后更新后端只需要更新jar包、重新运行blog-start.sh脚本即可。ps:运行时可能会提醒不能有大写字母,所以用的都是小写字母。
2024-04-09 16:05:40
559
原创 配置及第三方授权申请教程
2.1 搜索和上传模式搜索模式可选elasticsearch或mysql,上传模式可选oss或local,按个人情况选择。2.2 修改application中的阿里云OSS配置信息(若选OSS上传模式)点击OSS管理 -> 点击Access Key ->创建一个查看AccessKey ID和AccessKey Secret查看bucket信息,没有则先创建修改配置信息填你的bucke域名地址填endpoint信息填刚刚获取的信息填创建的bucketName最后OSS访问权限记得设置为公共读。
2024-04-09 15:40:53
584
原创 docker保存、导入、导出和加载tar及其tar
其中-o和>表示输出到文件,nginx.tar为目标文件,nginx:latest是源镜像名(name:tag)其中-o表示输出到文件,xxx.tar为目标文件,base_mes_1.1是源容器名(name)其中xxx.tar为目标文件,base_mes:1.1是目标镜像名:tag。其中-i和<表示从文件输入。会成功导入镜像及相关元数据,包括tag信息。
2024-04-09 15:26:51
2387
原创 免费证书申请教程
1、在阿里云控制台搜索数字证书管理服务2、创建证书之后,点击证书申请3、填写基本信息之后,提交审核4、审核通过之后点击下载5、选择nginx的下载然后你就得到了对应域名的证书了
2024-04-09 15:23:09
496
原创 后端启动项目端口冲突问题解决
先使用:netsh interface ipv4 show excludedportrange protocol=tcp 查看被占用的端口,然后选择一个没被占用的端口启动项目。原因:Windows Hyper-V 虚拟化平台占用了端口。禁用 Hyper-V。
2024-04-08 09:16:25
482
原创 使用普通for循环只能遍历List集合,而使用迭代器、增强for循环、forEach三种通用的遍历方式可以遍历Set集合
我们之前是学过集合遍历,但是之前学习过的遍历方式(普通for循环),只能遍历List集合,不能遍历Set集合,因为以前的普通for循环遍历需要索引,只有List集合有索引,而Set集合没有索引。刚才我们学习了迭代器遍历集合,但是这个代码其实还有一种更加简化的写法,叫做增强for循环。需要注意的是,增强for不光可以遍历集合,还可以遍历数组。以上代码的内存原理如下图所示:当往集合中存对象时,实际上存储的是对象的地址值。接下来,我们看一个案例,在集合中存储自定义的对象,并遍历。
2023-07-27 09:14:12
88
1
原创 Java正则表达式
在API中有一个类叫做Pattern,我们可以到API文档中搜索,关于正则表达式的规则,这个类都告诉我们了。接下来,我们学习一下正则表达式的另外两个功能,替换、分割的功能。这个方法是用来匹配一个字符串是否匹配正则表达式的规则,参数需要调用者传递一个正则表达式。但是正则表达式不能乱写,是有特定的规则的。现在,我们就以QQ号码为例,来体验一下正则表达式的用法。我们发现,使用正则表达式,大大简化的了代码的写法。这里需要用到一个方法叫。学习完正则表达式的规则之后,接下来我们再利用正则表达式,去校验几个实际案例。
2023-07-27 08:53:24
48
1
原创 多线程的三种实现方法
start():启动线程;然后由JVM调用此线程的run()方法。run():封装线程执行的代码,直接调用,相当于普通方法的调用。run()方法和start()方法的区别?因为run()是用来封装被线程执行的代码。为什么要重写run()方法?Thread构造方法。
2023-07-17 09:28:26
81
1
原创 多线程之线程与锁
线程与进程2.1 进程与进程进程程序由指令和数据组成,但是这些指令要运行,数据要读写,就必须将指令加载到cpu,数据加载至内存。在指令运行过程中还需要用到磁盘,网络等设备,进程就是用来加载指令管理内存管理IO的当一个指令被运行,从磁盘加载这个程序的代码到内存,这时候就开启了一个进程进程就可以视为程序的一个实例,大部分程序都可以运行多个实例进程(例如记事本,浏览器等),部分只可以运行一个实例进程(例如360安全卫士)线程一个进程之内可以分为一到多个线程。一个线程就是一个指令流,将指令流中
2023-07-15 14:12:55
96
1
原创 Java基础
排序算法1. 二分查找要求能够用自己语言描述二分查找算法能够手写二分查找代码能够解答一些变化后的考法算法描述前提:有已排序数组 A(假设已经做好)定义左边界 L、右边界 R,确定搜索范围,循环执行二分查找(3、4两步)获取中间索引 M = Floor((L+R) /2)中间索引的值 A[M] 与待搜索的值 T 进行比较① A[M] == T 表示找到,返回中间索引② A[M] > T,中间值右侧的其它元素都大于 T,无需比较,中间索引左边去找,M - 1 设置
2023-07-14 17:50:48
40
1
原创 RabbitMQ安装或启动后,无法访问http://localhost:15672/
到这,基本上可以解决大多数问题,尝试访问http://localhost:15672/1.先检查自己RabbitMQ的安装路径是否有中文、空格或特殊字符。 2.安装路径没有问题,但就是不能访问(本人就是这样)用管理员身份打开命令窗口就行。
2023-07-05 18:32:23
3838
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人