自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Dart语言入门

基本数据类型。

2022-11-26 20:27:56 758 3

原创 HTTPS协议加密过程

现有浏览器和服务器有了三个相同的凭证:client_random、server_random和加密方法 用加密方法把 client_random、server_random 两个随机数混合起来,生成秘钥,这个密钥就是浏览器和服务端通信的暗号。无法保证服务器发送给浏览器的数据安全, 服务器的数据只能用私钥进行加密(因为如果它用公钥那么浏览器也没法解密啦),中间人一旦拿到公钥,那么就可以对服务端传来的数据进行解密了,就这样又被破解了。传输数据阶段依然使用对称加密,但是对称加密的秘钥我们采用非对称加密传输。

2022-10-12 09:29:53 316

原创 IP地址和MAC地址及ARP寻址

文章目录IP协议MAC地址ARP寻址IP协议作用:地址管理+路由选择格式:IPv4是32位的,IPv6是128位的IPv4的数量大约有42亿个,对于目前世界上的主机来说是不够用的,所以引进了IPv6,但因为目前IPv4还在广泛应用,并且还有别的方式来解决IP不够的问题,所以IPv6并没有普及。NAT和NAPTNAT技术当前解决IP地址不够用的主要手段,是路由器的一个重要功能;NAT能够将私有IP对外通信时转为全局IP。也就是就是一种将私有IP和全局IP相互转化的技术方法:很多学校,家庭,

2022-05-07 00:43:46 1767

原创 TCP可靠传输原理

文章目录一、TCP协议段格式二、TCP原理(可靠)确认应答机制(可靠性)超时重传机制连接管理(三次握手)流量控制拥塞控制三、TCP原理(效率)一、TCP协议段格式源/目的端口号:表示数据从哪个进程来到那个进程去4位TCP报头长度:表示TCP头部有多少个32位bit(多少个4字节)4位最大是15,15x4=60字节,也就是说TCP头部最大长度是60字节。6个标志位URG:紧急指针是否有效ACK:确认号是否有效PSH:提示接收端应用程序立刻从TCP缓冲区把数据读走RST:对方要求重新建立连接

2022-05-06 02:23:39 469

原创 浅析UDP

文章目录一、UDP协议格式二、UDP特点三、UDP校验和1.crc循环冗余校验2.MD5校验一、UDP协议格式二、UDP特点1.无连接知道对端的IP和端口号就开始传输,不需要建立链接2.不可靠没有任何安全机制。发送端发送数据报之后,如果因为网络故障该段无法发送过去,UDP协议层也不会给应用层任何反馈信息。3.面向数据报应用层给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并4.缓冲区UDP只有接受缓冲区没有发送缓冲区UDP没有真正意义上的发送缓冲区,发送的数据直接交给内核,由

2022-05-05 00:14:35 990

原创 Ribbon负载均衡原理

文章目录Ribbon负载均衡1.负载均衡原理2.源码解析1)LoadBalancerIntercepor2)LoadBalancerClient3)负载均衡策略IRule4)总结Ribbon负载均衡1.负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。那么我们发出的请求明明是http://userservice/user/1,怎么变成了http://localhost:8081的呢?2.源码解析为什么我们只输入了service名称就可以访问了呢?

2022-04-28 14:19:45 226 1

原创 浅谈微服务

这里写目录标题一、什么是微服务?1.单体架构2.分布式架构3.微服务二、提供者与消费者三、Eureka注册中心1.Eureka的结构和作用2.搭建eureka-server2.1.创建eureka-server服务2.2.引入eureka依赖2.3.编写启动类2.4.编写配置文件2.5.启动服务3.服务注册3.1引入依赖3.2配置文件3.3启动多个user-service实例4.服务发现4.1引入依赖4.2配置文件4.3服务拉取和负载均衡四、Ribbon负载均衡1.负载均衡原理2.源码解析2.1LoadBa

2022-04-28 01:21:46 139

原创 HTML基础学习

文章目录一、什么是HTML?一、什么是HTML?HTML是一门语言,所有的网页都是用HTML编写的超文本:超越了文本限制,除了文字信息,还可以定义图片,音频,视频。标记语言:由标签构成的语言HTML运行在浏览器上,由浏览器进行解析W3C标准:网页由三部分组成1.结构:HTML2.表现:CSS3.行为:JavaScript...

2022-04-13 19:52:36 557

原创 部署ElasticSearch与kibana(持续更新)

文章目录一、ElasticSearch介绍二、安装ElasticSearch三、部署kibana四、IK分词器一、ElasticSearch介绍ElasticSearch是一款强大的开源搜索引擎,可以用来实现搜索、日志统计、分析、系统监控等功能。ElasticSearch底层是基于lucene实现的,他是Apache的开源搜索引擎类库,他具有易拓展,高性能等优势,但是其只限于java语言开发和不支持水平拓展也造成了一定的局限性。ElasticSearch擅长海量的数据搜索,分析计算。mysql擅长事

2022-04-13 16:45:59 512

原创 Linux部署服务器

文章目录一、文件基础操作命令文件类型和访问权限快捷键部署服务器安装JDK安装tomcat安装一、文件基础操作命令ls:列出目录下的所有文件或者该文件的所有信息-a 列出目录下的所有文件,包括以 . 开头的隐含文件。-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件-l 列出文件的详细信息。-r 对目录反向排序。-t 以时间排序。-R 列出所有子目录下的文件。(递归)pwd查看用户当前所在目录

2022-04-13 16:34:33 146

原创 InnoDB如何实现事务特性

文章目录一一、pandas是什么?二、使用步骤1.引入库2.读入数据总结一提示:以下是本篇文章正文内容,下面案例可供参考一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seaborn as snsimport warningsw

2022-03-31 00:43:58 1674 2

原创 JVM类加载过程和GC机制

文章目录JVM运行时数据区1.堆区(线程共享)4.方法区(元数据区)(线程共享)2.Java虚拟机栈(线程私有)3.本地方法栈(线程私有)5.程序计数器(线程私有)类加载过程JVM运行时数据区1.堆区(线程共享)如果是基本数据类型,看他是局部变量还是成员变量,局部变量在栈上开辟空间,成员变量在堆区开辟空间。如果是引用数据类型,JVM在堆中创建对象,对象的引用存在虚拟机栈上的局部变量表中。4.方法区(元数据区)(线程共享)里面放的都是类对象包含了这个类的各种属性的名字,类型,访问权限包含了这

2022-03-18 09:36:41 281

原创 Synchronized锁升级

文章目录一、Synchronized基本特点二、Synchronized锁升级一、Synchronized基本特点开始是轻量级锁,如果锁被持有时间很长变为重量级锁实现轻量级锁的时候大概率使用自旋锁(CAS实现)开始是乐观锁,如果锁冲突概率变多变为悲观锁Synchronized是一个非公平锁Synchronized不是读写锁Synchronized是可重入锁二、Synchronized锁升级无锁:顾名思义,不加锁偏向锁:第一个尝试加锁的线程优先进入偏向锁状态,偏向锁并不是真正的加

2022-03-16 09:58:28 413

原创 多线程(进阶篇)

文章目录一、线程池ThreadPoolExecutor构造方法的参数Executors二、如何实现一个线程池三、常见的锁策略1.乐观锁和悲观锁2.读写锁3.重量级锁&轻量级锁一、线程池ThreadPoolExecutor构造方法的参数将线程池比作一个公司,每个线程比作一个员工corePoolSize: 核心线程的数目(一旦创建,永不销毁,正式员工,不会被辞退)maximumPoolSize:核心线程和非核心线程的总数目(非核心线程:一段时间不工作就销毁,临时工:摸鱼太久就滚蛋)keep

2022-03-10 16:47:09 391

原创 多线程学习(基础篇)

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2022-03-08 21:40:42 405

原创 Java基础IO

文章目录一、File文件操作类1. File类的常用方法2.相对路径和绝对路径3.使用File类递归打印文件目录列表二、IO流1. IO流的概念2. 复制字节流文件BufferedInputStream和BufferedOutputStream类3.复制字符流文件三、 序列化和反序列化1.什么是序列化和反序列化2.使用ObjectOutputStream类序列化/反序列化java对象一、File文件操作类1. File类的常用方法2.相对路径和绝对路径绝对路径:从树型结构的角度来看,从根节点到这

2022-03-07 21:27:15 481 1

原创 单例模式详解

文章目录前言一、单例模式的特点?二、饿汉式单例模式三、懒汉式单例模式1.懒汉模式的创建2.懒汉模式的线程不安全问题及解决前言一、单例模式的特点?单例模式是一种常见的设计模式,它有以下特点:单例类只能有一个实例。单例类必须自己创建自己的唯一实例。单例类必须给所有其他对象提供这一实例。单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例,总之,选择单例模式就是为了避免不一致状态二、饿汉式单例模式class Singleton { //让构造方法变为私有的,.

2022-03-03 17:35:50 538

原创 模板模式——星巴克泡茶泡咖啡例题

文章目录一、两种饮品制作步骤二、使用步骤1.引入库2.读入数据总结提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、两种饮品制作步骤coffee:1.煮开水2.用开水煮咖啡3.将饮品倒入杯子中4.加入牛奶和方糖tea:1.煮开水2.用开水煮茶3.将饮品倒入杯子中4.加入柠檬示例:pandas 是基于NumPy 的一种工

2022-01-10 01:27:35 453

原创 了解String类

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2021-12-13 19:05:39 435 1

原创 LeetCode之链表删除子问题

2021-12-02 23:22:28 346

原创 理解继承 组合 多态

文章目录前言一、继承使用背景二、继承语法规则三、protected关键字四、final关键字前言代码中创建的类朱总要是抽象现实中的一些事物,有的时候客观事物之间就存在一些关联关系,那么表示成类和对象的时候也会存在一定的关联,例如有一个动物类,有一个猫类和一个狗类,这三个类存在了一定的联系,猫和狗都属于动物,他们都可以继承动物当中的一些属性从而达到代码重用的效果。一、继承使用背景 Animal类public class Animal { public String name; p

2021-11-29 09:17:40 480 1

原创 LeetCode链表算法题(java版)

文章目录前言一、倒数第k个节点二、1.2.总结前言在写链表的算法题之前先手撕一下链表的几个基本功能吧。(一定要多练习!!!)class Node{ public int data; public Node next; public Node(int data){ this.data = data; }}public class SingleLinkedList { public Node head; //头插法

2021-11-25 08:00:00 1078 3

原创 ACM模式下的输入输出

文章目录前言一、数组的输入格式二、链表的输入格式前言我们在写算法题的时候都会遇到ACM模式和智能模式(核心代码模式),而一般的竞赛和面试都是ACM模式。ACM模式就是自己构造输入数据格式,把需要处理的容器填充好,OJ不会给你任何代码,最后也要控制我们的返回数据格式。核心代码模式就是把要处理的数据都已经放在容器中了,直接写我们的业务逻辑就好了。如果大家从一开始就在LeetCode上学习算法的话突然参加比赛或者拿到面试题就会很不适应,我第一遇见就一脸懵逼,不过掌握输入输出格式可比做算法题要简单多了

2021-11-23 11:57:00 2839 2

原创 LeetCode数组算法题(Java版)

文章目录一、删除有序数组中的重复项(26题)1.1双指针解法二、买股票的最佳时机(122题)1.动态规划2.贪心算法一、删除有序数组中的重复项(26题)原题如下:给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。示例 1:输入:nums = [1,1,2]输出:2, nums = [1,2]解释:函数应该返回新的长度 2 ,并且原

2021-11-19 18:44:18 1353 2

原创 动态内存管理函数

一、为什么使用动态内存分配?目前掌握的内存开辟方式为:int val=20;//在栈上开辟4个字节的空间。int arr[20]={0};//在栈上开辟40个字节的连续空间。上述开辟空间的方式由两个特点:开辟的空间大小事固定的数组再申明时必须指定数组的长度,他所需要的内存在编译时分配但是有时我们需要的空间大小在程序运行时才知道,所以这时我们就需要动态内存非配了。二、动态内存函数的介绍1.malloc和freeC语言提供了一个动态崔村开辟的函数:void * malloc(size

2021-11-04 16:57:11 90

原创 经典指针和数组面试题详解

系列文章目录指针和数组笔试题1. int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr =(int*) (&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); system("pause"); return 0;}2.struct Test{ int num; char *ap; short a; char aa[2]; short aaa[4];}*p;

2021-11-04 15:34:24 145

原创 C实现常用字符串库函数

系列文章目录文章目录系列文章目录一、实现memcpy二、memmove模拟实现三、strlen的模拟实现1.计数器方法:2.递归方式:3.利用指针实现:四、strcpy的模拟实现五、strcmp的模拟实现六、strstr模拟实现七、模拟实现strcat一、实现memcpy将src所指向的内容拷贝到dst所指向的位置,拷贝len个字节。memcpy是内存拷贝函数memcpy在使用的时候不用考虑类型,以字节为单位进行拷贝遇到"\0"的时候不会停下,所以拷贝字符串的时候最好还是用strcpy,它更安

2021-11-02 00:57:22 175

原创 Spring框架详解(了解IOC,AOP)

文章目录一、spring入门1.理解IOC2.导入依赖3.核心配置文件4.spring容器创建对象之无参构造法5.spring容器创建对象之有参构造法二、spring配置1.别名2.bean的配置3.import一、spring入门1.理解IOCIOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”。IOC理论提出的观点大体是这样的:借助于“第三方”实现具有依赖关系的对象之间的解耦。我们知道在面向对象设计的软件系统中,它的底层都是由N个对象构成的,各个对象之间通

2021-10-31 01:54:15 473

原创 Mybatis复杂查询动态sql及缓存详解

文章目录一、多对一二、一对多一、多对一实体类:import lombok.Data;@Datapublic class Student { private int id; private String name; private Teacher teacher;}import lombok.Data; @Datapublic class Teacher { private int id; private String name;}S

2021-10-23 19:57:29 614

原创 Mybatis配置优化

系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例

2021-10-19 18:08:39 110

原创 保姆级Mybatis基础教程

前言一、pandas是什么?二、使用步骤1.引入库2.读入数据代码如下(示例):data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')print(data.head())该处使用的url网络请求的数据。总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

2021-10-17 22:49:21 187

原创 整形和浮点型数据存储详解

文章目录前言一、整形数据在内存中的存储1.原码,反码,补码介绍2.例题详解二、浮点型数据在内存中的存储1.引入库2.读入数据总结前言一、整形数据在内存中的存储1.原码,反码,补码介绍计算机中的数据都是以二进制补码的形式进行储存的。正数: 原码=反码=补码负数:原码:最高位是符号位,其他位变为对应二进制。反码:原码符号位不变,其他位按位取反。补码:反码加1.2.例题详解2.1 此段代码的输出结果是?#include<stdio.h>#include<wi

2021-10-10 14:03:50 379

原创 C语言—实现扫雷游戏(注释详解)

文章目录前言一、游戏规则介绍二、基本思路流程介绍三、代码实现1.用户交互菜单(Menu函数)2. Game函数3.放雷函数(SetMines函数)4.扫雷展示面板(ShowBoard函数和ShowLine函数)5.统计周围雷的个数(CountMines函数)6.mine函数四、总代码前言一、游戏规则介绍扫雷是一个十分经典的游戏,一张棋盘中有很多个不确定是雷还是安全区域的格子,当点击之后若没有雷则会在该区域显示周围八个格子雷的数目,若有雷则游戏结束。今天我就跟大家分享一下如何用c语言实现初阶版扫雷。二

2021-06-05 06:35:21 17831 63

原创 【C语言】实现三子棋小游戏(注释详解)

文章目录前言一、基本思路流程介绍二、代码实现1.用户交互菜单(Menu函数)2.初始化棋盘(InitBoard函数)3.打印棋盘(ShowBoard函数)4.玩家落子(PlayerMove函数)5.电脑落子(ComputerMove函数)6.判定胜负关系(IsEnd函数)7.Game()函数三、总代码前言三子棋的棋盘是一个九宫格,双方轮流落子,若有一方横竖或者对角线有三个棋子连成一条直线则胜利。但是三子棋有很多种和棋情况。一、基本思路流程介绍1.创建一个用户交互菜单2.创建一个棋盘并初始化3

2021-05-31 08:05:06 2107 24

原创 【数据结构】十分钟带你入门树结构!

文章目录前言一、树的定义二、使用步骤1.引入库2.读入数据总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、树的定义二、使用步骤1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotlib.pyplot as pltimport seab

2021-05-27 07:52:56 1678 19

原创 C语言—递归详解

文章目录前言一、递归是什么?二、递归的两个必要条件1.递归出口2.问题规模不断缩小三、普通代码和递归版对比展示1.总结前言一、递归是什么?简单来说,就是一个函数直接或间接调用自身的一种方法。通常递归可以将一个复杂的大型问题层层转化为一个与原问题相似的规模较小的问题来求解。它的核心思想是把大事化小。递归就好比查英文字典,当查找第一个词时你发现这个词的解释中有一个单词你看不懂,于是你开始查找第二个单词,当查第二个单词的时候你发现这个单词的解释中依然有你看不懂的单词,于是你开始了第三次查找…直到有一个单

2021-05-25 08:10:34 6520 9

原创 C语言—循环语句超详解

文章目录前言一、while循环1.语法结构2.while循环中break的作用3.while循环中continue的作用二、for循环1.语法结构2.for循环和while循环对比三、do while循环1.语法结构2.语法特点3.do while循环中break的作用四、演示案例1.猜数字小游戏总结前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案

2021-05-23 23:25:26 1804 3

原创 一个可以恶搞朋友的关机程序!!!

文章目录前言一、关机程序1.思路分析二、运行结果如下1.点击后总结前言这是一个可以恶搞朋友的关机程序,实现原理是通过system直接调用dos命令窗口启动关机程序,既然是恶搞那就一定要给你的恶搞对象一定的“机会”,下面我将带大家一起来学习一个这个简单的恶搞程序。(源码可以私信找我要,简单改一下输出语句便可以直接自己使用)大家编译后可以直接把.exe文件发给你所需要恶搞的对象一、关机程序1.思路分析1.使用system调用dos命令窗口直接输入关机命令并弹出提示,此时windows响应跳出关机

2021-05-19 16:11:24 1854 3

原创 【数据结构】c语言如何实现循环队列

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、队列的初始化思路分析二、判满及入队1.判满思路分析2.入队思路分析三、判空及出队1.判空思路分析2.出队思路分析四、队列的遍历输出思路分析五、主函数前言在看接下来的文章之前大家知道必须知道两个问题。问题一: ‘为什么静态队列都是循环队列?’答:因为静态队列是基于数组实现的,若不使用循环队列,会导致已经删除的元素所使用的空间无法继续使用,造成空间浪费。问题二:‘rera 和 front分别表示什么?’答:规定fr

2021-05-14 17:29:50 832 8

原创 【数据结构】c语言实现进栈出栈及遍历

进栈出栈及遍历文章目录进栈出栈及遍历一、栈的定义和特点二、使用步骤1.引入库2.读入数据总结欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入一、栈的定义和特点1.定义:限制在表的一端进行插

2021-05-07 22:30:39 2506 1

空空如也

空空如也

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

TA关注的人

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