自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP连接管理机制(三次握手、四次挥手),结合表白、分手更容易理解哈。

1.导读:本篇文章主要讲的是TCP中的连接管理机制(三次握手,四次挥手全过程以及原理。)2.TCP 数据格式:这里先不细讲格式内部的所有参数的具体含义,我们为了后边方便进行TCP三次握手四次挥手的讲解,先重点关注我图中用红笔圈出的部分(ACK、SYN、FIN)ACK:表示的是确认应答,看确认号是否有效。SYN:表示请求建立连接,将携带SYN的报文叫做同步报文段。FIN:表示通知对方,本端将要进行关闭,将携带FIN的报文叫做结束报文段。3.什么建立连接:这里的连接指的是客户端和服务端之

2021-07-22 11:17:22 295 2

原创 MySQL之事务

1.钱去哪了?为了让大家更好的理解事务的概念,这里不官方的谈事务是啥。我们先来讲个故事。那是一个风雪交加的夜晚,落魄的李四祈求好朋友张三给他转3000块钱,作为好兄弟的张三收到信息后立马进行转账。过了几小时之后,李四发消息给张三:“兄弟,感情是不是淡了,钱咋还没过来,我会还你的”。这还了得,看到这句话张三很疑惑,明明转账过去了呀,咋会没收到?钱去哪了?经过调查发现,就在张三给好朋友赚钱的那一瞬间,李四的账户被冻结了,钱没有转进来。所以张三那边显示已转,李四这边却显示未收。所以3000块钱就这么消失了

2021-07-19 16:21:04 72

原创 MySQL之索引

1.索引引入:众所周知数据库是用来进行数据存储的,它很基础但是很重要。在实际应用时大量数据存在是必然的,那么在亿万数据中找到一个数据的困难程度可以用大海捞针来形容。为了提高人们在数据库中的查找效率引入了索引,它会提高人们在数据库中查找一条记录的效率。实质遵循空间换时间的理念2.是什么?:官方定义:在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。啊这,看着好复杂呀。那

2021-07-19 10:01:26 92

原创 String、StringBuilder、StringBuffer的区别,优缺点

三者的引入:在操作字符串的时候常用到String、StringBuilder、StringBuffer这三个类。那么为啥要设计出三个类,这三个类有什么区别,分别适用于哪些场景。下边我们来探索一下。String类:先直接下定义:String类是用来操作字符串的,它每次操作字符串时str对象都是不可变的(Sring类是用final关键字修饰的)。在实际操作中,我们在写代码时给人的感觉貌似是直接在原字符串上进行修改的。其实并不是那样,原字符串是不会变化的,在修改时会创建出新的str对象,然后对原来的字符

2021-07-18 09:10:03 1186

原创 方法重载和方法重写的区别和作用

一、方法重载(Overload)背景:有时我们要用到一个函数同时兼容多种类型或者参数的情况,这时我们就要用到方法重载。含义:一个方法的逻辑是一样的,但是考虑到要适用不同的场景(参数个数不同,参数类型不同)。一个方法往往实现一个功能的,我们总不能因为参数个数的不同,给方法的名字起上成千上万了不同的名字吧。作用:解决了逻辑相同的方法,因为参数个数或者参数类型不同。反复起名的过程。形象理解:这里我们要实现,求和的方法。在对方法进行起名的时候,我们首先想到的就是 sum(参数),好了

2021-07-08 08:58:58 2292

原创 面向对象编程的三大主要特性(继承、封装、多态),形象版

一、继承背景:在面向对象编程的时候我们会根据实际的问题来对一件事物进行抽象。在抽象的时类和属性之间会存在一定的关联,在有效解决这些关联关系时引入了继承。实质:抽取所有的类之间的共性东西,创建别的类使用这些共性的时候,直接继承自父类即可。这样就不用重复在每一个类中,写相同的方法,操作的时候更加方便。作用:能有效的进行代码重用,防止大量重复代码、减少风险、便于维护,能在父类基础上进行更好的扩展。关键名词:父类:又叫做基类或者超类,简单的理解为父亲,在这个类中的方法和属性都是可以被

2021-07-07 19:49:00 1153

原创 输入URL出现404状态码的解决方法

一、404状态码的含义在我们开发好web资源后,将开发好的资源进行打包。部署在web服务器后,下来就是进行访问,在访问的时候有时会出现404状态码。404状态码是HTTP的响应头中返回给浏览器的一个状态码。状态码的类型有很多,不懂的读者们可以看我的上篇博客,上边对常见的状态码有详细的解释。具体的博客链接:直接点下边蓝色的链接即可。HTTP中常见的状态码404状态码表示服务端没有找到客户端浏览器要访问的资源,页面常会显示找不到要访问的资源。此时,千万不要慌张,这种情况是因为你的URL的内容和服务资

2021-04-21 21:29:09 5228 4

原创 URL的格式以及每一部分的详细解释(配图哦)

1.URL的专业叫法URL叫做统一资源空位符,全称叫(Uinform Resource Locator),我们可以简单的将它理解为一个输入在浏览器地址栏中的网址2.URL的基本格式:下边我画了一张图,结合这张图给大家详细介绍:结合上图我们来分析URL的格式,上边每一部分之间本来是没有空格的,为了方便大家看的清,我将每一个部分分开了。由上图可知道,URL完整格式由六个部分组成。我还截图了一个URL来对比给大家讲解每一个部分对应的内容,具体的指向在图中可以看出最开始的是协议名称:就是我们在访问网

2021-04-17 10:05:40 7269 3

原创 庖丁解牛,详细分析顺序表和链表的定义、实现方式、区别、优缺点。

一、顺序表和链表的定义说起顺序表和链表,我们先要说的就是线性表。因为顺序表和链表实际上是特殊的线性表。1.线性表的定义:何为线性表?线性表顾名思义,就是一个线性的表。也就是说在我们看起来是它就是一条线。它是n个具有相同特性的数据元素的有限序列,线性表在实际开发中用途很广泛的一种数据结构。它包含:顺序表、链表、栈、队列、字符串等等。(对于栈和队列在上篇博客中有详细讲解)2.顺序表的定义:顺序表是线性表的一种,好多书上是这样解释的:它是在逻辑上和物理空间上连续的。本人并不喜欢这两个高端的词语,下边我

2021-03-16 19:06:21 1896 7

原创 栈和队列(详细版,一看就懂。包含栈和队列的定义、意义、区别,实现)

栈和队列一、栈和队列的定义、区别,存在的意义1.栈的定义(1)栈:栈实际上是一种线性表,它只允许在固定的一段进行插入或者删除元素,在进行数据插入或者删除的一段称之为栈顶,剩下的一端称之为栈顶。其遵循的原则是后进先出。(2)栈的核心操作:三大核心操作,入栈,出栈,取栈顶元素(3)对于栈的形象理解:子弹的弹夹我们一定见过,子弹在被压入的时候就相当于是一个个元素,而弹夹就相当于是栈。先被压入的子弹是最后被打出的,先压入的元素是最后出来的,也就是后进先出。2.队列的定义(1)队列:首先队列也是一种特殊

2021-03-10 16:50:52 24400 18

原创 Java中的数据类型、运算符、注释

Java中的数据类型与运算符、注释。1,数据类型Java中的数据类型分为四类,8种具体的形式。与C语言中不同的是其多了Boolean和Byte(1)整形包含四种:字节类型:byte占一个字节,范围:-2^7 到2^7-1短整形: short占两个字节,范围:-2^15 到 2^15-1整形: int 占四个字节,范围(2的-31到2的31-1),这里要记下来-21亿到21亿。长整形: long占8个字节范围(2的-63到2的63-1)(2)浮点型包含两种:单精度浮点型:float 4个字节

2021-01-06 18:23:19 192

原创 用C语言在多文件下实现三子棋游戏

标题:用C语言实现三子棋游戏。(1)三子棋的规则以及结束一局棋的条件:首先我们要简单的了解三字棋的规则,以及要完成一局棋的条件。规则就是分为用户和电脑进行,一人一步棋,知道出现三字连珠或者棋盘下满结束。(2)游戏将要创建的文件:今天我们还是在多个文件中来完成这个项目,头文件中声明函数、宏定义等;源文件分为主调函数(main.c)和游戏内容函数(game.c).(3)游戏实现的架构:...

2020-11-01 20:46:02 236

原创 在多文件中用C语言来实现简单的猜数字游戏

今天我们要用C语言来实现简单的猜数字游戏,目的是为了巩固上节课做学的二分查找的算法。而今天的猜数字游戏我们不在像往常一样在一个源文件中实现,我们今天要创建两个源文件(game.c和main.c),在创建一个头文件 (game.h),用三个文件来实现参数字的所有代码。1,头文件的创建,就是.h的文件。编写头文件的主要原因是我们在遇到比较大型的项目时,可能出现大量的源文件,所以我们只要在头文件中声明这些东西,然后在源文件中直接包含头文件,当我们在写源文件的时候就不用一直写这些声明函数等等,这样的操作可...

2020-10-20 17:48:14 647 1

原创 collection下的常用数据结构

目录1.collection2.List3.ArrayList4.LinkedList5.Array6.stack7.queue8.collection和collections的区别:9.上一张collection接口的图1.collection是一个接口,它实现于interable父亲接口。在collection接口底下又能实现好多接口:list queue set2.Listlist是一个接口,它实现于cllection。它能实现的类是:ArrayList Link

2021-08-17 17:36:40 364

原创 学生宿舍管理项目测试用例

学生宿舍管理系统测试用例

2021-08-16 22:02:58 1235

原创 在线OJ系统测试

目录单元测试1.测试insert()方法2.测试delete()方法3.测试selectAll()方法4.测试selectOne()方法二级目录三级目录单元测试根据需求的设计,此OJ系统能够完成对题目的增添、删除、显示详情,显示所有功能。现在先对这几个基本功能进行单元测试,此步骤有开发人员完成,在idea中的JUint中完成。注意我们在验证的时候,主要根据数据库的内容和界面的显示为准,运行结果没出错,不一定是操作成功(1)总体展示:要测的idea界面展示,要引入Juint依赖。本来的数据

2021-08-08 16:46:22 1351 3

原创 测试用例——微信发红包

一、下边是微信发红包测试用例:

2021-08-04 20:35:18 469

原创 Java中的垃圾回收机制

目录1.GC引入2.GC中的内存划分3.如何判断对象已经死4.垃圾回收算法5.垃圾收集器6.内存分配和回收策略1.GC引入(1) GC是什么?GC (garbage collection),就是垃圾回收的意思。不管是在C中还是Java 中,都要进行垃圾回收,字C中的垃圾回收是程序员手动写代码完成回收的,可靠性更高。Java中 是JVM中的里边自己实现的一种自动回收垃圾的机制。(2)为什么要进行垃圾回收?在程序执行的过程中,有的变量的生命周期是很短的,这些变量可能只用一会会,用完之后,没有引用

2021-08-04 18:25:18 956

原创 多线程(4)——ConcurrentHashMap(含部分源码说明)

目录1.ConcurrentHashMap的引入2.内部数据结构3. 起到的作用1.ConcurrentHashMap的引入1.HashMap的引入:要是不太懂HashMap ,请先阅读这个关于HashMap的思维导图:https://editor.csdn.net/md/?articleId=119273788大体来说:(1)结合了数组的快速访问下标的操作和链表的快速插入产出特性而设计出的一种数据结构。(2)1.7中是数组 + 链表 , 1.8中是数组 + 链表 + 红黑树(3)1.

2021-08-02 20:08:00 488

原创 多线程(3)——synchronized + volatile + Lock复习思维导图

目录1.思维导图:2.CAS原理以及产生的ABA问题1.思维导图:2.CAS原理以及产生的ABA问题

2021-08-01 12:07:45 181

原创 HashMap和HashTable区别(思维导图加源码分析)

目录一、HashMap和HashTable区别二、重要源码展示1.继承的类不同,实现了相同的三个接口:2.对键值对的限制条件不同:3.线程安全性不同:一、HashMap和HashTable区别二、重要源码展示结合上边的总结,下边展示部分重要的源码,重要点我在源码后边有详细注释。1.继承的类不同,实现了相同的三个接口:1)HashTable的public class Hashtable<K,V> extends Dictionary<K,V> // 能看出来继承

2021-07-31 19:06:53 128

原创 HashMap重点思维导图

目录HashMap复习1.重点思维导图2.HashMap中put()方法流程图HashMap复习1.重点思维导图2.HashMap中put()方法流程图

2021-07-31 12:07:18 149

原创 水杯测试用例

目录水杯测试用例:水杯测试用例:

2021-07-29 17:28:22 117

原创 多线程(2)——阻塞式队列、线程池

目录一、阻塞式队列1.背景2.作用3.实现方式二、线程池1.背景2.作用3.线程池的构建方式(1)快捷方式创建线程池(2)指定参数创建线程池(`重点`)(3)两个创建线程池方法的区别4.线程池在执行任务的工作流程5.如何停止线程池一、阻塞式队列1.背景(1)含义阻塞式队列:简单的讲就是给两个线程之前加了一个类似缓冲区的一个队列。保证两个线程在相互作用的时候没有耦合关系。(2)形象解释现在有一个面包店,它所进行的任务就是生产面包(面包师傅生产面包就相当于是一个线程)。现在还有一群消费者,它们

2021-07-28 17:32:19 222

原创 多线程(1)——多线程基础

目录一、多线程基础思维导图二、多线程基础要掌握的问题1.什么是线程,什么是进程?两者的区别是什么?2.为什么要引入多线程,它的引入解决了什么问题,又带来了什么问题?3.线程和进程的几种状态。4.创建线程的方法有哪些?(1)创建线程的三种方法(2)进一步:Ruunable和Callable的区别是什么?5.用户线程和守护线程的区别。6.关于多线程基础API的问题:(1)说一下Run()和start()的区别?(2)说一下wait()和sleep()的区别?(3)yield()方法是用来干啥的?7.如何中断一个

2021-07-26 18:21:22 436 2

原创 测试分类方法(含常见面试题)

这里写目录标题一、测试分类依据1.按开发阶段分2.按测试实施组织分3.按测试执行方式分4.按是否查看代码分5.按是否手动执行6.按测试对象分按测试地域分三级目录一、测试分类依据1.按开发阶段分按照开发阶段主要分为以下5个阶段,刚好对应的是软件测试V模型(1)单元测试:单元测试就是对组成软件的最小单元进行测试。目的是检验构成整个软件的基本单元是否完成相应的功能,它又被叫做莫魁岸测试。形象理解:现在要组成一辆汽车,那么组成汽车的每一个螺丝就相当于软件中的一个单元。测试阶段:编码前或者编码后测

2021-07-24 18:13:45 5577

原创 UDP和TCP内部机制、特点、区别、应用场景——超详细(配图)!

目录:前言一、UDP1.UDP协议格式2.UDP的特点3.应用场景:二、TCP1.TCP协议格式2.TCP内部机制3.TCP的特点4.应用场景三、TCP、UDP区别表四、总结前言网络数据的传输具体体现在每一个网络节点上一种规定的数据格式,不管是TCP还是UDP都是在传输层传输数据的一种规定的格式,也就是在传输过程中每一层的协议。UDP协议的报头构造简单,TCP 协议的构造复杂,在不同的场景下,两者各有各的特点一、UDP1.UDP协议格式由图可以看出:UDP的构造很简单,只有源端口和目的端口

2021-07-23 17:44:38 1470 2

原创 OSI七层模型和TCP/IP四层模型

1.网络分层:网络分层的最大的好处就是“封装”,它有利于代码的扩展和维护。2.OSI七层模型:(1)初识:网络在进行分层的时候分为两种分层:一种是OSI七层模型结构,另一种是TCP/IP五层(或者四层)模型。前者只是最初设计的时候是那样计划的,但是最终没有落地。在最终落地额时候是按照TCP/IP五层(或者四层)模型进行落地的。(2)模型结构:构成OSI七层模型主要有这七层:应用层、表现层、会话层、传输层、网络层、数据链路层、物理层下边用图来表示每一层所处的位置,以及每一层的作用,方便大家记忆

2021-07-22 16:57:51 468 4

原创 JVM(1)

1.导读:本篇文章我们主要谈的话题为JVM是什么、能干什么、它的内存结构、内存泄露和内存溢出(00M)2.JVM是什么:JVM是Java Virtual Machine 的缩写,翻译过来叫做Java虚拟机。虚拟机是的是用软件来模拟具有完整硬件功能的、运行在一个完全隔离环境中的计算机系统。要清楚JVM是经过裁剪之后的虚拟机,它是一个用来执行字节码指令集的软件。在Java进程启动时会创建一个Java虚拟机,用来解释执行字节码指令,将字节码指令翻译为机器码,最终由系统调度CPU去执行机器码。不同虚

2021-07-21 15:51:32 87

原创 基于Java实现简单的在线 OJ 系统

项目名称:在线 oj 系统项目背景:每一个学习编程的同学都有一个大厂梦,要实现自己的梦想,平时的练习就必不可少。平时的刷题是必不可少的,力扣网和牛客网是我平时刷题的两个网站。里边的功能深深的吸引了我,所以我尝试去实现一个类似于力扣网的在线OJ系统。实现功能:根据我们在力扣网上的参考,想实现让用户在一个网页上进行读题,做题,提交,最终反馈给用户结果、在操作过程中还要实现对题库进行增删改查这几个功能。模块划分:编译运行模块(compile)此模块主要用来能让用户进行题目的编译和运行的操作。

2021-07-17 11:58:40 4781 10

原创 Cookie和session的原理以及区别

一、Http是无状态协议要解释cookie和session的区别就要先引入Http协议。首先Http是一个无状态协议,也就是说每一次之间的请求是没有任何联系的。无状态的好处是速度快,但是在我们要进行用户状态持续在线的话不行了。为了解决这个问题我们就引入了cookie和session技术。二、Cookie和session的原理不管是Cookie还是Session都是为了跟踪浏览器用户身份的会话方式。1.Cookie的原理:Cookie的 首先要知道Cookie是用来存储在客户端浏览器中的一种文本文件

2021-05-06 17:49:22 562 1

原创 青蛙跳台阶问题

一、青蛙跳台阶不同难度的介绍首先青蛙跳台阶大致分为三个难度模式,这个里边所谓的公式不要去背,建议将多项式列出来,自己化简就行了。下边一一介绍这三个版本:1.初级版:告诉给定的台阶数,并且题目交代:青蛙只能一次跳一个台阶或者青蛙跳两个台阶。这个题我们在简单的列举之后会发现台阶的高度和青蛙的跳法是有规律的(和斐波那契数列很相似,只是换掉了第二项,构成次序列的思路与斐波那契数列完全一样)。下边是具体的代码(内部含有详细的思路和化简说明)// 1.简单的跳台阶:说给定一个n阶的台阶,青蛙一次只能挑一个或者

2021-05-03 15:47:21 1457 1

原创 HTTP请求行中GET和POST方法的区别

首先GET和POST都是HTTP中请求行里边的方法,下边是关于两个请求方法的区别:1.原理不同:GET方法是用来获取数据的。POST方法是用来将数据发给服务端的。2.存放数据的位置不同:GET方法存放数据的位置是在URL中的querySring里,querySrting 的位置就是URL中 “?”后的部分。POST方法存放数据的位置既可以是queryString中,也可以是正文body中。3.内部的编码不同:GET方法中的编码是按照ASCII来进行编码的。POST方法中的编码既能

2021-04-15 16:47:10 362 2

原创 状态码的含义,以及HTTP中常见的状态码

一、HTTP中状态码的含义要想讲状态码,就先的大致明白状态码产生的原因,就不得不说一下访问网页的基本流程。1.访问网页的基本流程:当我们在访问一个网页的时候,会在客户端浏览器中输入一个URL(也就是我们常说的网址)。然后浏览器会自己对这个请求进行封装,以HTTP协议的形式向服务端发起请求。2.理解在客户端浏览器和服务端的含义:当我们在向服务端发起请求的时候,服务端一定会给我们一个答应的。举个例子:就像我们在正常情况下问别人一个问题的时候,你问的操作就相当于是发起了请求,别人下来的做法就是给你的响应

2021-04-13 19:00:18 2857

原创 Java中基于比较的常见七大排序算法

一、插入排序(我们按升序进行,下边的所有排序也是按升序进行的)1.基本步骤:给定一个数组,我们为了方便插入要排序的元素用bound来作为边界。将[0,bound)设定为已排序区间,将[bound,arr.length)设定为待排序区间。将bound的值设定为1,想一下,要是只有一个元素,那么它一定是有序的,所以从bound后边的元素开始和bound前边的元素进行比较,要是比找到了比arr[bound]大的元素,就将这个元素向后搬运,要是小于或者等于的时候就找到了要插入的位置,为cur+ 1位置

2021-03-28 15:29:09 176

原创 人生之中的第一篇博客

a,大家好,我叫高瑞杰,很高兴来到CSDN这个平台与大家相遇,希望以后多多学习,努力提升。b,我的编程目标就是,通过基本语法,框架的学习。希望能很快的能做对老师布置的所有作业,还有就是在找工作笔试的时候能顺利过关。最重要的就是能最后把自己脑子里想的东西,能通过代码实现出来,自己实现一些想法。c,关于如何学习编程,我认为首先就是好好上课。重中之重就是三个字“敲代码”,然后多出错,多总结。d,一周在编程上,除了学习自己的专业课,没有重要的事情,课余时间都得练习,每天至少3小时。e,其实吧,自己觉是啥公司

2020-09-26 21:17:41 277 3

空空如也

空空如也

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

TA关注的人

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