- 博客(24)
- 收藏
- 关注
原创 Java实现广度优先搜索
从出发节点开始访问,然后去访问该节点的所有相邻节点,访问完该节点的所有相邻节点后,以相邻节点中的第一个节点为起点,继续去访问其所有相邻节点,反复持续该过程直到图中所有节点均被访问过退出。和广度优先搜索一样,我们将要访问的节点称为头节点,相邻节点称为表节点;头节点中存储数据和第一个表节点,表节点中存储头节点的下标和头节点的下一个相邻节点;头节点使用顺序(链表)存储,表节点使用链表存储。,注意:广度优先搜索的顺序也不是唯一的,和深度优先搜索一样,取决于访问起点和表节点的顺序。再main方法中测试。
2022-11-20 21:18:03 1605
原创 Java实现深度优先搜索
图的遍历就是访问图中的每个节点并且每个节点只访问一次。但图中有那么多节点,要如何进行访问就是一个问题,所以我们需要有特定的策略来进行访问这些节点。我们将要访问的节点成为头节点,相邻节点称为表节点;头节点中存储数据和第一个表节点,表节点中存储头节点的下标和头节点的下一个相邻节点;从初始节点开始出发访问,访问该节点的第一个相邻节点,然后以该相邻节点为起点,继续访问其相邻节点,反复持续该过程直到图中所有节点已全部被访问;,注意:深度优先搜索的顺序不是唯一的,这取决于访问起点和表节点的顺序。在main方法中测试。
2022-11-19 22:33:09 2073
原创 Dubbo高级特性及SpringCloud整合Dubbo
将Dubbo集成至SpringCloud主要是替换Ribbo或者Feign实现远程调用。加入Dubbo后,整体的架构如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xy6KMgn5-1668472434736)(assets/image-20210724222206792.png)]
2022-11-15 08:37:39 217
原创 Java实现队列
循环队列是用一组连续的存储单元来存储队列中的元素,同时设置变量 front 和 rear,front表示队头元素的下标,rear表示队尾元素后一个元素的下标。链队列是用一组任意的存储单元来存储队列中的元素,同时设置变量 front 和 rear,front指向队列中的第一个节点,rear指向队列的最后一个节点。定义一个 CircleArrayQueue类,一个 CircleArrayQueue对象就代表一个队列。同时在该类中定义关于队列的基本操作方法。队列是只允许在队尾插入元素,队头删除元素的线性表;
2022-11-13 19:26:18 1242
原创 Java实现栈
顺序栈使用一组地址连续的内存单元来存储栈中的元素,同时设置一个栈顶变量top,用来标识栈顶元素。链栈是用一组任意的存储单元来存储栈中的元素,链栈中的指针从栈顶指向栈底,同时设置一个栈顶变量指向栈中的第一个元素(栈顶元素)。定义一个LinkedStack类,每一个LinkedStack对象,就代表一个链栈,并在该类中定义关于栈的基本操作方法。定义一个ArrayStack类,每一个ArrayStack对象就代表一个栈,并在该类中定义关于顺序栈的基本操作方法。栈的实现方式有两种,分别顺序栈和链栈。
2022-11-12 22:13:25 1512 1
原创 Java实现单链表
主要原因就是我们在使用数组的时候,数组在内存中开辟的是一段连续的存储单元,但如果此时我们的电脑内存不够的情况下,我们就无法使用数组来存放数据了;此时,我们就可以使用链表来存储数据,因为内存中很多时候都会存在分散的存储单元,单链表就是用一组任意的存储单元来存放线性表中的数据,链表中的数据是以节点来显示的,节点主要由数据域和指针域组成。数据域用于存放数据,指针域由于存放指向下一个节点的地址。这里需要知道,单链表一般都会单独创建一个节点,类中添加关于链表的相关操作。定义一个类来维护链表。在main方法中测试。
2022-11-09 15:01:55 525
原创 Docker容器编排
Compose(容器编排) 是 Docker 公司推出的一个工具软件,可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml,写好多个容器之间的调用关系。然后,只要一个命令,就能同时启动/关闭这些容器。主要实现对Docker容器集群的快速编排。Compose的核心:编写文件Compose的两要素:服务(service):一个个应用容器实例,比如订单微服务、库存微服务、mysql容器、nginx容器或者redis容器。
2022-11-08 09:03:16 1848
原创 Dubbo入门简介和基本使用
2011年10月27日,阿里巴巴开源了自己的SOA服务化治理方案的核心框架Dubbo,服务治理和SOA的设计理念开始逐渐在国内软件行业中落地,并被广泛应用。早期版本的dubbo遵循SOA的思想,是面向服务架构的重要组件。如今版本的Dubbo作为Spring Cloud的二进制通信方案来发挥Dubbo的性能优势。
2022-11-06 21:37:13 258
原创 Redis实现分布式锁
为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。加锁和解锁必须具有原子性。
2022-11-04 21:49:12 652 2
原创 Kafka使用详解
使用commitSync()提交偏移量,commitSync()将会提交poll返回的最新的偏移量,所以在处理完所有记录后要确保调用了commitSync()方法。生产者从服务器收到的错误有可能是临时性错误,在这种情况下,retries参数的值决定了生产者可以重发消息的次数,如果达到这个次数,生产者会放弃重试返回错误,默认情况下,生产者会在每次重试之间等待100ms。另外一个解决办法是,使用异步提交的API。如果提交的偏移量大于客户端的最后一个消息的偏移量,那么处于两个偏移量之间的消息将会丢失。
2022-11-03 09:01:07 1894
原创 Mysql数据库基本介绍及下载安装
数据库介绍数据库概念关系型数据库与非关系型数据库常见的数据库产品数据库术语MySQL数据库环境准备MySQL版本及下载版本下载MySQL 安装MySQL配置端口配置账号密码设置服务名称MySQL 服务的启动与停止计算机管理窗口windows命令行MySQL卸载数据库,就是存放数据的仓库数据库(DataBase,简称DB)是长期存储在计算机内部有结构的、大量的、共享的数据集合。长期存储:持久存储类型:数据库不仅可以存放数据,而且存放的数据还是有类型的关系:存储数据与数据之间的关系。
2022-10-30 20:46:09 481
原创 Docker容器数据卷
容器数据卷将Docker容器内的数据和宿主机的某个目录建立映射,进行容器内的数据持久化,有点类似于Redis中的rdb和aof文件。
2022-10-29 09:43:57 343
原创 Docker常用指令和镜像操作
是一种轻量级、可执行的独立软件包,它包含运行某个软件所需的所有内容,我们把应用程序和配置依赖打包好形成一个可交付的运行环境(包括代码、运行时需要的库、环境变量和配置文件等),这个打包好的运行环境就是image镜像文件。我们知道,最简单的ubuntu内核是不包含有vim编辑器的功能的,我们在Ubuntu的基础上下载vim之后提交该容器实例使之成为一个新镜像,然后通过新镜像运行一个带有vim指令的ubuntu容器。在拉取镜像的时候,我们可以看到拉取过程中,镜像视乎是一层一层下载的。
2022-10-27 22:52:56 2145
原创 Kafka快速入门
Kafka是一个分布式流媒体平台,类似于消息队列或企业消息传递系统。上面我们介绍了几种不同的消息中间件之间的不同,那么我们又该如何根据业务场景来选择对应的消息中间件技术呢?
2022-10-23 22:20:24 580
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人