自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(187)
  • 资源 (1)
  • 收藏
  • 关注

原创 【计算机网络】随机访问介质访问控制中的ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议

随机访问介质访问控制中的ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议

2023-03-07 11:09:48 3065 1

原创 【计算机网络】数据链路层可靠传输机制的三大协议:停止等待协议SW、后退N帧协议GBN、选择重传协议SR

停止等待协议SW、后退N帧协议GBN、选择重传协议SR

2023-03-06 13:46:49 2208

原创 【计算机网络】数据链路层:组帧,奇偶校验,CRC循环冗余校验,海明码详解

数据链路层:组帧,奇偶校验,CRC循环冗余校验,海明码详解

2023-03-02 22:06:30 1526

原创 【计算机网络】ISO/OSI参考模型与TCP/IP模型

OSI参考模型有七层,自上而下分别为其中,上4层都有端到端的协议,而下3层则是点对点通信的。

2023-03-02 14:43:57 476

原创 【考研必背】数据结构基本算法汇总 二叉树基础

考研数据结构 代码题必背 二叉树算法总结

2022-10-27 17:30:47 383

原创 【考研必背】数据结构基本算法汇总之单链表和顺序表

线性表基本算法线性表1. 顺序表结构体静态分配 (下标从1开始)#define MAXSIZE 50typedef struct { ElemType data[MAXSIZE]; // 顺序表元素 int length; // 当前长度} SqList;动态分配#define INITSIZE 50typedef struct { ElemType *data; // 顺序表元素 int maxsize,length; // 前者为最大长度. 后者为当前长度

2022-10-09 14:47:44 550

原创 【Linux】配置虚拟机集群

配置虚拟机集群STEP1 克隆虚拟机,一主二从STEP2 关闭虚拟机防火墙和SELinux$ systemctl status firewalld #查看防火墙当前状态$ systemctl stop firewalld.service #关闭防火墙$ systemctl disable firewalld.service #禁止防火墙启动这样防火墙就被关闭了$ 修改selinux的配置文件$ vi /etc/selinux/configSTEP2 虚拟机免密登录Hadoop 节

2022-05-25 23:47:05 558

原创 【Hadoop】 Hadoop集群搭建

Hadoop集群搭建将下载好的hadoop压缩包上传到主节点服务器$ tar -zxvf hadoop-3.3.1.tar.gz -C /usr/local # 解压到/usr/local中$ cd mv ./hadoop-3.3.1/ ./hadoop # 将文件名改为hadoop$ sudo chown -R humpy ./hadoop # 修改权限,当前是什么用户登录,就给他赋予用户的权限STEP1 Java环境准备由于Hadoop的安装是需要使用到Java环境的,因此在服务器上需要配

2022-05-25 23:40:05 557

原创 【Linux】VMware下安装Linux虚拟机

VMware下安装Linux虚拟机1. 下载操作系统镜像因为已经创建好了CentOS7的镜像了,本文将以Ubuntu系统为例进入https://ubuntu.com/download/desktop 下载好.iso镜像文件2. 开始创建虚拟机在这一步就要选择虚拟机镜像, 若选择"稍后安装操作系统",有可能会造成启动黑屏的情况;接下来配置用户信息根据宿主机的存储容量大小来分配虚拟的磁盘大小,在这里我们选择20GB物理机在组装的时候通常是基于预算来配置硬件参数的, 而虚拟机则是需要根据

2022-05-22 11:52:08 330

原创 【Git】CentOS下Git的安装

CentOS下Git的安装与使用一、Git离线安装STEP1 下载源码这里使用的是VMware虚拟机软件下的CentOS 7.5,因此需要先在宿主机上下载好Git的源码下载地址 : https://mirrors.edge.kernel.org/pub/software/scm/git/STEP2 安装依赖软件因为Git是基于C语言开发的,因此需要有部分的C环境和openssl工具# yum install curl-devel expat-devel gettext-devel opens

2022-05-21 13:22:00 762

原创 【数据结构与算法 C/C++】树/二叉树计算公式总结

0.变量说明度为 mmm 的结点数 = nmn_mnm​;iii : 第 iii 层 或 第 iii 号结点;hhh : 树的高度;ceilceilceil 向上取整, floorfloorfloor 向下取整 ;1. 树的计算公式 (通用)总结点数=n0+n1+n2+...+nm=总分支数+1总结点数 =n_0+n_1+n_2+...+n_m = 总分支数 + 1总结点数=n0​+n1​+n2​+...+nm​=总分支数+1 ;总分支数=1∗n1+2∗n2+...+m∗nm总分支数 =

2022-04-18 15:41:36 8145

原创 【LeetCode】单链表技巧 (哑结点,快慢指针,交换/删除结点操作)

文章目录一、数据结构定义二、特点与说明三、数据结构与操作1.结构定义2.操作(1) 初始化提示:以下是本篇文章正文内容,下面案例可供参考一、数据结构定义二、特点与说明三、数据结构与操作1.结构定义代码如下(示例):2.操作(1) 初始化代码如下(示例):时间复杂度:$$...

2022-04-05 22:56:46 1381

原创 【数据结构与算法 C/C++】单链表的实现 (虚拟头结点)

单链表文章目录单链表一、数据结构定义二、特点与说明1. 头指针与头结点三、数据结构与操作1.结构定义2.操作(1) 初始化(2)插入(3)删除四、仓库地址提示:以下是本篇文章正文内容,下面案例可供参考一、数据结构定义单链表是由若干个链表结点构成的, 每个结点除了需要存储自身节点外, 还需要存储后继结点的地址结点定义为typedef struct ListNode{ // 数据元素 int data; // 指针域,指向下一个结点 struct ListNode

2022-04-02 20:11:54 2729 1

原创 【数据结构与算法 C/C++】顺序表实现与动态分配空间

文章目录一、顺序表的特点二、顺序表实现1.数据结构2.数据结构操作实现3.动态扩容一、顺序表的特点随机访问,通过首地址和元素序号就能在时间**O(1)**内找到元素存储密度高,每个结点只能存数据元素 (链表还要在结点存下一个元素地址)逻辑上相邻的元素在 物理上也相邻线性表的元素位序(序号)是从1开始的,数组的序号才是从0开始的二、顺序表实现1.数据结构动态分配实现 代码如下(示例):#define MAXSIZE 50typedef struct Vector{ //

2022-04-01 13:41:26 1414

原创 【操作系统】管程、死锁产生的必要条件和预防

为什么要使用管程管程的目的是为了实现进程的同步和互斥管程作为一种特殊的软件模块, 有以下部分组成局部于管程的共享数据结构说明;对该数据结构进行操作的一组函数;对局部于管程的共享数据设置初始值的语句;管程需要有一个名字;管程的基本特征局部于管程的数据只能被局部于管程的函数访问一个进程只有通过调用管程内的函数才能进入管程访问共享数据每次只允许一个进程在管程内执行某个内部函数;Java类似管程的机制使用synchronized关键字描述一个函数, 那么这个函数在同一时间段内只能被一

2022-03-24 08:41:50 357

原创 【操作系统】进程同步与互斥及其实现方式

1. 什么是进程同步进程具有异步性的特征, 各个并发执行的进程以独立的不可预知的速度推进进程同步机制是为了解决进程异步的问题, 也被称为直接制约关系2. 什么是进程互斥OS中的某些资源虽然可以提供给多个进程使用,但一个时间段内只允许有一个进程访问该资源(这种资源被称为临界资源)do{ 进入区 // 检查是否可进入临界区, 若可进入则**对资源上锁** 临界区 // 访问临界资源的代码, 也叫临界段 退出区 // **对资源解锁** 剩余区 // 做其它处理}临界资源的互斥访问

2022-03-22 13:28:56 2354

原创 【操作系统】处理机调度

一 调度的概念处理机调度就是从就绪队列中, 按照一定的算法选择一个进程并将处理机分配给它运行,实现进程的并发执行;二 调度的层次1. 高级调度按照一定的原则从外存上处于后背队列的作业中挑选一个/多个队列, 给他们分配内存等必要资源, 并建立PCB ,在运行结束后将作业调出2.中级调度中级调度的目的是提高内存的利用率和系统的吞吐量 ;中级调度又称内存调度, 就是决定将哪个处于 挂起态的进程重新调入内存 (挂起态是指暂时被调到外村中等待的进程状态);中级调度的发生频率比高级调度高;将进程从挂起

2022-03-13 21:40:39 789 1

原创 【C++】NULL与nullptr的区别

文章目录一、案例二、NULL与nullptr的区别一、案例先贴代码 (C++)LinkList NextElem(LinkList first,ListData x) { //函数返回单链表 // first中值为x结点的直接后继结点地址, 没有返回NULL LinkList p = first; while (p&& p->data != x) // 找x { p= p->next; } if (!p || !p->next) return

2022-03-01 19:41:35 1230

原创 【计算机操作系统】 进程与线程-1

PART1一、进程的定义程序: 一个指令序列; 早期计算机只支持单道程序, 程序的代码放在程序段内, 运行时的数据放在数据段内;为方便OS管理程序的并发执行, 引入了进程与进程实体的概念 , 系统会为每个运行的程序配置一个进程控制块 PCB进程的定义 : 进程是进程实体的运行过程, 是系统进行资源分配管理和调度的独立/基本单位;进程实体由 程序段, 数据段, PCB组成 ,由称为进程映像, 简称为进程(严格来说两者是不一样的);创建一个进程实质上是创建进程实体的PCB;PCB是进程存在的唯一

2022-02-28 14:38:08 342

原创 【Python & RaspberryOS】No module named XXX 多个Python版本并存时查看当前包安装路径并修改

项目场景:当系统中存在多个Python版本时 , 由于存在默认安装路径 , 当我们 pip安装库时 , 往往装不到我们想要的site-package ; 本文提供一个解决方案解决方案:新建一个Python文件 , 输入如下代码from distutils.sysconfig import get_python_lib 换行 print(get_python_lib())第2步这里获取到了当前的库安装位置 , 假设输出为 /usr/lib/python3/dist-packages在Termi

2022-02-01 14:12:53 758

原创 Pytorch基础之张量创建、运算和类型转换

一、Pytorch1. 基本语法(1)-创建矩阵 (张量) 元素操作无初始化矩阵 : troch.empty(5,3) 5行3列 其本身不包含任何确切的值,分配给矩阵的内存中有什么数值就赋值什么数值,本质是毫无意义的脏数据有初始化的矩阵 : troch.rand(5,3) 矩阵的各个值是由标准正态分布进行的初始化创建全0矩阵并指定数据类型为long torch.zeros(5,3,dtype=torch.long)直接通过数据创建张量 torch.tensor([2.5,3.5]) 这里

2022-01-10 10:07:01 745

原创 实例 : 基于Netty+JavaCV+ConcurrentHashMap处理分多次发送的图片(处理像素数组)

实例 : 基于Netty+JavaCV+ConcurrentHashMap处理分多次发送的图片(图片由像素点组成)一、场景有一个Java编写的服务器 , 一个C++编写的客户端 , 其中客户端的物理机是NanoPC T4的板子。现要基于此配置按字节流的方式通过Socket实现对图片的传输。同时在数据包中还有5个数据字段。二、技术选型先简述一下客户端程序的实现 : 客户端通过安装的前后两个摄像头轮流抓拍, 将获取到的图片解析成一个OpenCV的Mat对象 , Mat是基于像素值(0~255)构建的。然

2022-01-09 20:34:42 2022 1

原创 深度学习入门笔记之神经网络基础

深度学习入门一、神经网络基础1.人工神经元从人类神经元中抽象出来的数学模型Threshold指的是激活函数 , 当输入达到一定阈值时 , 函数会被激活∑和Threshold组成了对信息处理的模块 , 对应人类的神经元的细胞核output对应人类神经元的神经末梢input对应人类神经元的树突人工神经网络是大量的人工神经元以某种连接方式构成的机器学习模型连接的权重表示神经元与神经元之间连接的强弱o=σ(<w,x>+b)o=\sigma(<w,x>+b)o=σ(&lt

2022-01-09 16:32:00 780 1

原创 Netty学习笔记之WorkerGroup线程模型、任务队列、HTTP服务实例

系列文章目录一、Netty编程实例提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录一、WorkerGroup线程模型二、任务队列的Task三种使用场景1.用户自定义的普通任务;2.用户自定义定时任务三、Future-Listener机制四、HTTP服务实例代码实例为什么浏览器只请求一次,但服务器显示两次请求如何避免服务器响应除接口外的其它请求* 每个浏览器对应的pipeline和handler是独立的提示:以下是本篇文章正文内容,下面案例可供参考一、Wor

2021-11-21 16:37:58 1707

原创 Netty学习之 三种Reactor模型,Netty工作原理 , Netty编程实例

文章目录前言1. 原生NIO存在的问题如下一、三种Reactor模型1. 单Reactor模型2. 单Reactor多线程3. 主从Reactor多线程二、工作原理1.一般模型2.原理三、编程实例NettyServerNettyServerHandlerNettyClientNettyClientHandler前言介绍Netty的三种模型及其工作原理 , Netty编程Demo1. 原生NIO存在的问题如下NIO的类库,API复杂需要对多线程和网络编程很熟悉,学习成本高开发成本高 , 难以

2021-11-13 21:47:49 1785

原创 Java NIO编程实例

文章目录前言一、NIO与BIO的比较二、Buffer的机制及其子类1.Buffer的使用2.Buffer的四个基本类型三、Channel的使用1. Channel的特征2. Channel的子类(1) FileChannel实例:(2) 拷贝文件四、Buffer类型化和只读1. 类型化2. Buffer的分散和聚合五、MappedByteBuffer六、Selector1. SelectionKey在NIO体系中的作用七、NIO非阻塞网络编程的快速入门服务器端客户端前言基于NIO的网络编程实例提

2021-11-03 11:03:19 914

原创 Java BIO编程

文章目录前言一、BIO、NIO、AIO基本概念二、BIO编程实例1. 简单流程2.编码3.如何使用CMD与服务器建立socket连接总结前言基于BIO的网络编程模型在大并发量下会浪费掉大量的I/O资源 , 基于Netty的网络编程方案则能较好的应对这一问题提示:以下是本篇文章正文内容,下面案例可供参考一、BIO、NIO、AIO基本概念I/O模型就是使用什么样的通道进行数据的收发Java支持三种网络编程的模型 : BIO,NIO,AIOBIO : 同步阻塞,传统的阻塞型 , 客户端发起连

2021-10-26 20:58:52 395 1

原创 SpringCloud微服务技术之Ribbon负载均衡简介

文章目录前言一、拦截动作的原理二、负载均衡策略三、饥饿加载前言讲讲Ribbon负载均衡 .负载均衡对外暴露的地址不是真实可用的地址 , Ribbon拦截请求之后 , 回去eureka里寻找真实地址 ;提示:以下是本篇文章正文内容,下面案例可供参考一、拦截动作的原理拦截动作由 LoadBalancerInterceptor类完成 , 接口 ClientHttpRequestInterceptor会拦截http请求二、负载均衡策略Ribbon的负载均衡规则由IRule接口来定义用户通过定

2021-08-14 10:49:37 158

原创 SpringCloud微服务技术之Nacos注册中心

系列文章目录Spring Cloud微服务技术之Eureka注册中心配置文章目录系列文章目录前言一、Nacos服务注册与发现1. 注册中心配置二、Nacos服务分级存储模型1. NacosRule负载均衡规则2. 环境隔离 - namespace前言Nacos注册中心介绍~提示:以下是本篇文章正文内容,下面案例可供参考一、Nacos服务注册与发现1. 注册中心配置解压后进入conf下的application.properties将端口改为 server.port=8844在nacos

2021-08-14 10:02:43 264 1

原创 Spring Cloud微服务技术之Eureka注册中心配置

文章目录前言一、Eureka注册中心基本原理二、Eureka服务注册与发现1.引入父工程依赖2.向需要注册的微服务中引入Eureka依赖3.编写配置4. 同一服务配置多个实例5. 服务发现前言它来啦~ 它来啦~ 微服务它来啦!在微服务中 , 服务的拆分与远程调用借助于注册中心实现 ;Eureka和Nacos则是两种比较主流的注册中心提示:以下是本篇文章正文内容,下面案例可供参考一、Eureka注册中心基本原理在服务做远程调用时 , 如果将服务提供方的地址硬编码到代码中 , 将来业务扩展或地

2021-08-13 18:57:24 556

原创 JUC线程安全集合,辅助类与线程池

文章目录一、集合线程安全问题1. ArrayList解决方案CopyOnWriteArrayList原理2. HashMap解决方案3. HashSet解决方案二、多线程锁1. sync同步锁2. 公平锁和非公平锁3. 可重入锁4. 死锁三、JUC辅助类1. 减少计数 CountDownLatch2. 循环栅栏 CyclicBarrier3. 信号灯 Semaphore四、线程池1. 自定义线程池1. 4种拒绝策略2. 自定义线程池提示:以下是本篇文章正文内容,下面案例可供参考一、集合线程安全问题

2021-07-28 11:27:39 486

原创 并发编程JUC基础一(synchronized,Lock)

文章目录前言一、基本概念1. 什么是线程?2. 什么是并发?3. 线程的状态4. wait() 和sleep()的异同点5. 管程6. 用户线程和守护线程二、synchronized1. 概念2.多线程编程基本步骤Lock接口1. 可重入锁2. 线程创建时机3. 线程间的通信虚假唤醒前言忙里偷闲学点JUC~一、基本概念1. 什么是线程?线程就是单独的资源类,没有任何附属操作2. 什么是并发?多个线程操作一个资源类,把资源丢入线程即可3. 线程的状态这里主要讲两个特殊的线程状态,WAIT

2021-07-19 20:13:10 196

原创 C语言之指针基础一

文章目录前言一、基本概念1.虚拟内存2.什么是指针3.指针的分类二、基本用法1.指针与数组元素2.指针运算3.注意事项总结前言回炉重造~提示:以下是本篇文章正文内容,下面案例可供参考一、基本概念1.虚拟内存先来讲讲什么是虚拟内存虚拟内存是在进程创建的时候操作系统分配给进程的,与物理内存之间存在映射关系同时,操作系统会对虚拟内存分区,对于C语言而言,分区如下:堆 : 动态申请的内存栈:存放局部变量静态全局区:分为初始化过的和未初始化过的代码区:存放程序代码文字常量区:存放常量

2021-06-03 09:17:13 449 1

原创 Redis6 基础入门之常见数据类型、新数据类型、常用命令

文章目录前言一、Redis特点与应用1.特征2.应用二、key操作与数据类型1.key操作2.常见数据类型2. string字符串string结构3.原子操作4.list列表5.set集合6.hash集合7.Zset 有序集合2.Redis6新增数据类型①Bitmaps②HyperLogLog③**Geospatial**前言现在在去哈尔滨的高铁上写这篇笔记,哈!真是气氛组????提示:以下是本篇文章正文内容,下面案例可供参考一、Redis特点与应用1.特征键值对数据库,高性能;数据间

2021-05-01 22:40:01 456

原创 RabbitMQ基本概念与工作模式(RabbitMQ特点,工作队列work queue、路由模式routing、发布/订阅模式Pub/Sub、通配模式Topics)

文章目录前言一、基本概念1. AMQP和JMS的区别2.MQ的特性二、工作模式0.初始化生产/消费方1.工作队列模式2.路由模式3.发布/订阅模式4.通配模式前言讲讲RabbitMQ的基本概念和工作模式。提示:以下是本篇文章正文内容,下面案例可供参考一、基本概念1. AMQP和JMS的区别JMS是Java消息服务,是Java内部的一种消息中间件。是Java的API规范接口AMQP是一种协议,直接定义了网络交换的数据格式 ,是一种高级消息队列协议2.MQ的特性应用解耦,在系统与系

2021-04-26 23:21:27 320

原创 RabbitMQ应用之消息堆积、消息丢失、有序消费、重复消费

文章目录前言一、消息堆积1. 消息堆积的产生与影响2. 消息堆积的解决方案二、消息丢失1. 情景2.解决方案三、有序消费1.情景2.解决方案四、重复消费1.情景2.解决方案前言最近接触了多线程和MQ等性能相关的内容,来写写MQ在实际开发中容易碰到的问题及其解决方法。这同时也是面试中常见的提问。提示:以下是本篇文章正文内容,下面案例可供参考一、消息堆积1. 消息堆积的产生与影响消息堆积的产生主要在于两方面,其一为消费的太慢或消费方出现异常,其二为生产方生产地太快。总的来说就是生产消费速度不匹

2021-04-25 19:09:23 1646

原创 SpringBoot动态切库思路

2021-04-21 20:53:30 287

原创 8086微处理器

2021-04-21 00:12:19 84

原创 8086指令系统思维导图

2021-04-21 00:10:14 420

原创 nginx环境搭建

一、环境搭建1. 安装远程连接工具链接Linux (前提是你的又一个能上网的Linux虚拟机或服务器)安装相关依赖 (pcre,zlib, openssl),具体安装命令下面介绍检查是否安装成功(以pcre为例) pcre-config --version具体依赖安装命令##C语言编译环境yum install gcc-c++##PCRE安装yum install -y pcre pcre-devel##zlib安装yum install -y zlib zlib-devel

2021-04-18 12:33:43 104

mytest.zip

基于SSM 的商城系统, 开发环境eclipse+MySQL+tomcat,技术栈为spring+springmvc+mybatis. 练习项目,仅供参考

2020-09-13

空空如也

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

TA关注的人

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