自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java面试题复习-基础篇

Java面试题之基础篇 (排序算法、集合、设计模式)

2022-08-31 18:53:43 225

原创 SpringBoot+MyBatis-plus 瑞吉外卖项目 Day05

可以参考博主我叫大魔王-多线程中的ThreadLocal 详解关于ThreadLocal方法的使用详解} // 用来获取ThreadLocal在当前线程中保存的变量副本 public void set(T value) {} //set()用来设置当前线程中变量的副本 public void remove() {} //remove()用来移除当前线程中变量的副本 protected T initialValue() {...

2022-08-26 20:02:36 368

原创 瑞吉外卖项目 SpringBoot+MyBatis-Plus Day04

SpringBoot与MyBtais-Plus 进行前后端分离的黑马程序员瑞吉外卖点餐系统

2022-08-21 17:29:34 287

原创 瑞吉外卖项目 SpringBoot+MyBatis-Plus Day01-05

SpringBoot与MyBtais-Plus 进行前后端分离的黑马程序员瑞吉外卖点餐系统

2022-08-19 19:45:11 565

原创 Linux外网远程登录访问内网主机

​首先呢,我不会Linux,其次我宿舍没网,通过外网联接内网主机,需要通过网络连接。而不是再如同以前那样,在虚拟机中安装一个Linux,在Windows端通过Xshell链接虚拟机中Linux,因为此时的虚拟机网卡的网络与Windows系统的网络,源于同一个个人计算机的主机网卡,来分配ip,因此之间可以无障碍的任意交换数据帧。的我在腾讯云中够买了一个低端的CetOS7的服务器,虽然是趁着双11剁脚,打骨折的抢购,但是这无疑还是使的我这本不富裕的家庭。说错了,,,应该是教他们学习Linux了嘛】。...

2022-07-28 08:55:21 2801 1

原创 2021新版idea创建java项目没有javaEE模块没有webApplication

IDEA2021创建java项目没有WebApplication

2022-07-27 17:45:04 11884 2

原创 嵌入式Linux系统环境搭建全流程-4412友善之臂开发板

​友善之臂4412开发板搭建Linux环境全流程

2022-07-27 17:31:49 2124 4

原创 设计模式 -第1部分 避免浪费- 第1章 Flyweight 模式 - 共享对象避免浪费

注:其内容主要来自于【日】-结城浩 著《图解设计模式》20章节 极力推荐大家阅读原著。

2023-05-25 15:59:52 905 1

原创 Nacos 客户端的服务发现与服务订阅机制的纠缠 - 篇七

当然预定的这个动作有发出者,就必须有动作的承受者,举个栗子,外出旅游我们可以会定酒店,那么酒店的服务者就是动作的承受者,订酒店的对象就是动作的发出者,再比如我们的常常提到的订阅一个期刊,如果这个期刊的周期是一年,而该期刊每月都会推送该期的内容,那么订阅期刊的对象就是动作发出者,发布期刊的对象就是动作承受者。最终是调用的 NamingService 的 getAllInstance 方法获取了所有的实例列表,而客户端实例列表是封装在一个 List 的集合当中的。可能有些人好奇,哎。

2023-04-22 00:04:43 1151 1

原创 Nacos 客户端服务发现源码分析-篇六

通过上面的实现可以发现哈,其实在 Nacos 的内部是通过一个线程安全的 ConcurrentHashMap 进行缓存信息的维护的,其缓冲的具体 key 分两种情况一种是没有其缓存快照的一种是存在缓存快照的。前面的关于 registerInstance 方法我们前几篇已经分析完,我们接下来关注 getAllInstance 方法内部是怎么实现的,这里返回的 List 其实就是客户端在注册完毕后返回的实例列表。前面的几篇探究了客户端服务注册,服务端发现,以及服务端的健康检测方面的源码。方法当中看具体的实现。

2023-04-18 23:22:55 611

原创 Nacos服务端健康检查-篇五

上篇分析l服务端的注册服务的整个流程,探究了如何将客户端的实例信息注册变为 Client 模型实体,完成服务端 Service 与 客户端模型 Client 以及实例信息 instance 三个之间的关联的,长连接,是指一个连接只要建立,就可以发送多个数据包进行响应,如果没有数据包发送,则需要双方发送链路检测包,实时的检测当前链路的状态。Nacos 在 2.0 之后,用 gPRC 长连接代替了原来的 Http 短连接请求。在之前的第四篇以及第三篇,探究其客户端的注册实现的时候,曾分析。

2023-04-18 20:17:45 652

原创 Nacos服务端服务注册源码分析 - 篇四

嗨 ~~~ 上班除了无聊的摸鱼,我还学了一个新技能,偷偷写博客。。。。我们先回忆一下之前的三篇文章。

2023-04-13 23:20:28 527

原创 Nacos客户端实例注册源码分析-篇一

版本 nacos 服务器端 nacos 2.0.3。

2023-04-12 22:14:23 451

原创 Nacos 客户端服务注册源码分析-篇二

继续接上回,上回分析到的整个注册的流程,其实是通过方法,反射获取接口的实现类,而对象的构造方法中有一个初始化的init方法,该方法就初始化了客户端的代理委托。

2023-04-12 19:45:20 591

原创 Nacos 客户端服务注册源码分析-篇三

版本说明:源码版本。

2023-04-11 22:27:39 546

原创 Linux 离线安装 MySql (图文版)

登陆 /usr/local/mysql/bin/mysql -u root -p 这个时候输入 刚才设置的密码 root。初始化成功可以在指定的数据目录 /data/mysql 中可以看到初始化的文件。重新启动 mysql 服务 service mysql restart。如果没有则添加新组 mysql与 组用户 mysql。查看初始化的密码(密码:I?将在家目录解压的 mysql 安装文件,移动到。退出 并且 /etc/my.cnf 文件删除。目录下的文件 my.cnf。刷新规则允许外部访问。

2023-04-03 23:11:24 1580

原创 关于 Nacos 启动报错提醒 Error creating bean with name ‘basicAuthenticationFilter’

提醒在创建 bean 的时候报错,当时在网上搜索说是 token.secret.key 的问题,之所以出现这个问题就是,由于我们没有指定默认的 token.secret.key ,官网在文中指出说是为了避免通过碰撞,绕过身份验证的安全漏洞的问题。的 nacos 启动项目发现提醒一下报错。后自定义一个 key。此时就可以正常启动了。

2023-03-30 20:00:02 1866

原创 Class 加载的过程

🌵 对于 C/C++ 而言大家最直观的感觉是什么?我的感觉是在写 C 程序的时候,无时无刻的都在关注的内存的是怎么分配,变量而地址是怎么定义的。如何保证我的变量按照 ARM 手册定义的变量地址,在我调用的时候,如何很好的控制我硬件的 I/O 引脚的输出,而用 C/C++ 去写程序能更好的理解底层硬件的工作。但对于 Java 而言一切却变得轻松了许多,不用去管内存具体如何分配,也不用去管和硬件底层如何对接。

2023-03-20 14:18:15 156

原创 关于那些你可能不知道的多线程与高并发

锁的概念其实在多线程中简单,只要满足两方面的要求就可以构成一把"锁"。就好比一家有好几口人,只且一个大门且该大门上只有一把锁。每个人手中都有一个钥匙,而同一时间内只能有一个人才可以完成“获取锁🔒---->插入钥匙🔑—>旋转钥匙🔐----->开锁🔓” ,这一连续的动作。直到当前的人完成这一操作后,另一个人才可以获取当前的这把锁 ,再次完成进行上述动作。可以很明显的感受到,其实获取锁,完成打开锁的这过程中,一直都是一位锁持有者在进行操作。

2023-03-15 12:28:57 289 1

原创 【大话面试】- Redis 篇-第一篇

1️⃣ 结构化(Structured)SQL 的存储格式NoSQL从其存储的结构上来看,对于 SQL 数据库而言,我们可以给每一个表的属性添加不同的约束(主键唯一,无符号,数据长度,数据类型)等。一旦我们在表中插入的数据过多,比如上千万条数据。我们如果一旦修改表的某一个字段,那么所带来的影响是非常巨大的,比如锁表,表与业务相关联表发生变动,则业务也需要进行修改。而对于 NoSQL 的数据库,并没有 SQL 型数据库这样的强行约束。常见的有像 Key-Value 形式的键值对存储,或者 Document 文档

2023-02-28 20:26:30 271

原创 【SpringBoot 自动配置】-EnableAutoConfiguration 注解

续接上回与,在前面笔者分析了在 SpringBoot 自动装配中的最重要的两个注解类,@Condition与哎~说到这里,那首先我们跟随笔者一起先回忆一下这两个注解的在 SpringBoot 当中充当什么角色呢?

2023-02-21 21:37:04 1306

原创 【Spring Boot 原理分析】- 自动配置

Condition 是 Spring 4.0 增加的条件判断功能,通过这个功能可以实现选择的创建 Bean 操作👑 我们在使用 Spring 的时候,只需导入某个依赖的坐标,就可以直接通过 Autwired 注解,进行依赖注入,那我们有没有想过,我们的 Spring 是怎么知道,我们要将那个对象注入到容器中呢?就比如 SpringBoot 是如何知道要创建的 RedisTemplate 的呢?好,那我们就带着这个问题向下继续看。

2023-02-21 15:24:44 829

原创 【Redis 高级】- 持久化 - RDB

一时间你受不了自己的这种行为,自己扇了自己一巴掌,哎!有与 Redis 是一个单线程的数据库,所以当我们执行 save 指令的时候,如果说此时我们的数量量是比较大的,那么在执行任务的队列中就会出现阻塞的状态,导致后的获取数据的 get 执行,一直处于等待,知道 save 指令执行完毕。,既然我们的日志中记录了,我们每一次的操作的过程,那我们可不可以想办法,在 Redis 启动的时候,将日志中的所有的操作都读取出来,然后将所有的指令都执行一遍,这样就可以保证,我们的所有的数据都会刷新到我们的内存中呢?

2023-02-19 17:20:58 393

原创 《高性能的MySQL》- 关于创建高性能的索引

对于数据库而言我们对数据库中的某一数据进行查找,其实就相当于我们在翻阅一本书进行查阅定位我们想要的内容,那那么对于这种方法的查找无一例外,如果我们要查阅的这本书比较单薄(数据量较小),对于查询所花费的时间来说是比较少的,对于如果这本书非常的厚(数据库庞大),那么如果去查找,这个过程就非常的占用计算机的性能,非常的消耗时间了。所以说到这里,“索引” 这一概念在数据库中的体现也就变得清晰了许多,给数据库的字段添加索引其实就是为了解决,当数据库过于庞大,查询所带来的性能占用过高这样的问题的。

2023-02-16 22:08:20 50

原创 Spring 系列 - AOP

对于数据库而言我们对数据库中的某一数据进行查找,其实就相当于我们在翻阅一本书进行查阅定位我们想要的内容,那那么对于这种方法的查找无一例外,如果我们要查阅的这本书比较单薄(数据量较小),对于查询所花费的时间来说是比较少的,对于如果这本书非常的厚(数据库庞大),那么如果去查找,这个过程就非常的占用计算机的性能,非常的消耗时间了。所以说到这里,“索引” 这一概念在数据库中的体现也就变得清晰了许多,给数据库的字段添加索引其实就是为了解决,当数据库过于庞大,查询所带来的性能占用过高这样的问题的。

2023-02-16 22:07:44 218

原创 Spring 底层原理与解析 - 容器接口

的继承关系图我们 F4 进入。

2023-02-16 04:15:00 316

原创 《Java并发编程之美》- 线程终止的方法

主线程 main 在调用了子线程 thread_a 与 thread_b 的 join 方法之后,当前的主线程 main 处于阻塞的状态,直到线程 thread_a 与 thread_b 执行完毕后,才会继续执行当前的主线程 main。如果我注释掉线程 a 与线程 b 的两个方法,那么执行的结果是什么样的呢?没错,这句主线程打印的话会在线程 a 与线程 b 输出之前执行(线程 a 与线程 b处于休眠状态)那么 join 方法的作用其实就变得很明显了,就是为了阻塞当前的线程,直到子线程的任务执行完毕。

2023-02-16 00:08:04 157

原创 《Java并发编程之美》- 线程中wait的用法

如果启动上面两个线程会发生什么现象呢?首先线程 thread_d 启动,1秒钟后线程 thread_e 启动,并且线程 thread_d 优先获取锁共享变量锁 resourceA ,在 5 秒中后,线程 thread_d 释放锁资源处于阻塞状态,线程 thread_e 获得锁资源,在 5 秒中后,线程 thread_b 释放锁资源,同时进入阻塞状态。

2023-02-16 00:06:48 139

原创 Spring IoC 与容器的初始化

控制-对象的创建者翻转-角色的转变凡是在高级的编程语言中面对程序的设计总会提到的一点就是,低耦合、高内聚。那么对于低耦合与高内聚应该怎么去理解这两点呢?低耦合强调的是模块应该尽可能的单一,模块内部细节对内私有封装,对外只暴露对应的接口,利用可配置替换的模块更换其“硬编码”的操作。

2023-02-16 00:05:38 167

原创 关于栈的存储结构与运行原理分析

由于对于不同的处理器(ARM/X86)内部的寄存器的设计架构是不同的,Java 语言为了实现 “Write once Run everywhere” 的口号,内部的指令都是通过栈来实现的。栈是程序的运行时的单位,而对于堆更像是数据的存储单位。栈:程序运行时调用的各种功能性的方法处理解决数据问题堆:用于存放数据,比如创建的对象,静态的变量。

2023-01-10 10:41:17 159

原创 海康威视后台监控布防

由于公司业务的需要,前端时间一直在折腾海康摄像头的对接。在这期间踩过许多坑,做一记录分享。大致的业务场景,主要用到的是海康的 Ai 摄像头与高清摄像头,实现监控布防与实时画面在 web 页面展示预览。对于 Ai 摄像头内部已经上传了训练好的模型,直接调用海康提供 SDK 接口即可,对于高清摄像则是调用海康 SDK 提供的抓拍功能,保存图片到本地,调用训练好的 Python 模型进行本地图片的算法分析。

2022-12-28 10:22:30 2971

原创 等待线程执行终止的 join 方法

Java并发编程之美

2022-12-28 10:19:08 159

原创 HelloWorld字节码解析

Java字节码

2022-10-26 10:04:16 83

原创 HashSet与HashMap的那点事

而HashSet对象中 map 中的 key 值实际对应的是 HashSet 中添加进入的 Value 元素,而 map 中 Value 对应的是 HashSet 中的 Object 对象,由于该对象是一个静态的 Object 属于 HashSet 类本身,所以每一个元素在 HashSet 对象的 map 属性下每一个 key 元素对应的 Object 都是同一个。先谈谈 HashMap 的数据存储的底层原理吧,我们知道的一点就是,HashMap 的底层存储采用 红黑树+数组 的方式实现的。

2022-10-13 18:03:08 191

原创 ArrayList集合初探

当通过无参构造创建 ArrayList 对象的时候ArrayList 的底层会 默认一个已经在对象内部存在的空 Object 数组(该数组是为指定初始默认大小的),交给与当前对象的数组缓存区通过有参构造器创建 ArrayList 对象的时候ArrayList 的底层会 通过形参参数创建一个新的 Object 空数组,并初始化数组长度为形参参数,同时将该 Object 数组交给当前对象的数组缓存区无参直接使用内部已经存在的空数组,有参会重新创建新的空数组。

2022-10-13 14:02:22 92

原创 面向对象和面向过程的区别

这一切都是归功于 Java 语言的机制中 JVM 虚拟机的存在,Java 源程序在任意的平台上只要通过 JDK 进行编译生成可以有 JVM 识别并执行的 .class 字节码文件,并就可以将该字节码文件拿到随意的有 JRE 环境的平台上即可运行。但是, ⾯向过程没有⾯向对象易维护、易复⽤、易扩展。​ C 语言的编译后的文件程序是不可以跨平台(Win平台编译后在Linux平台执行或x86系统编译在ARM平台执行)执行的也就是说,一个 C 源码可以在不同的平台使用指定的 GCC 编译器对源码编译,生成。

2022-10-10 22:58:31 182

原创 初探 ThreadLocal

​ 在多线程下最容易出现的问题就是并发导致共享变量被修改时出现的数据同步问题,为了解决该问题,一般的处理方式就是添加一个锁,通过锁机制,既可使得在多线程的环境之下解决共享资源部同步的问题,如图所示。​ 由于锁的引入,也使得多线程编程有了一定的门槛,加重了程序员在设计程序的负担。那么有没有一种方式,当每个线程创建一个变量后,访问的变量是属于当前线程自己的私有变量呢?的存在就可以完成该件事,ThreadLocal 的出现其实并不是为了解决以上的问题, ThreadLoca 是 JDK 包自己所提供的。

2022-10-10 13:43:26 83

原创 云服务器部署SpringBoot工程-瑞吉外卖项目

如何将发布一个网站拥有自己的网站赖?当然是通过云服务呀,Linux部署SpringBoot工程-瑞吉外卖项目

2022-08-31 14:36:11 812 1

原创 登录数据校验

前端——>ajax——>后端——>响应请求——>查询数据库,返回结果集——>前端——>判断处理结果——>返回处理信息。//判断结果集中的响应标志码。

2022-08-22 19:49:31 259

原创 SpringBoot的Web单体CRUD应用

至于后台的数据库,复制上述中的sql片段语句,执行构建即可啦。如果,我说如果哈,有人问,举手,,,亲我也想有一个这样酷酷哒私人网页界面,哈哈 你问对人赖。如果你没有问,那不行,那我也要告诉你,不要问原因。自己会的东西比较少哈,所以只完成了员工管理模块与登录数据拦截校验,目前测试没有问题,其他的模块需要用到其他的技术。整个项目只完成了一个增删改查,内部的代码,所以功能比较简单,后续滴完善就…......

2022-08-15 16:48:11 216

空空如也

空空如也

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

TA关注的人

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