自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 TCP协议总结

TCP全称为 “传输控制协议(Transmission Control Protocol”). 人如其名, 要对数据的传输进行一个详细的控制;1.tcp协议格式源/目的端口号: 表示数据是从哪个进程来, 到哪个进程去;4位TCP报头长度: 表示该TCP头部有多少个32位bit(有多少个4字节); 所以TCP头部最大长度是15 * 4 = 606位标志位:URG: 紧急指针是否有效ACK: 确认号是否有效PSH: 提示接收端应用程序立刻从TCP缓冲区把数据读走RST: 对方要求重新建立

2021-03-02 21:46:48 387

原创 Linux基本的指令

1.文件/目录的基本操作1.1 ls指令ls(list)相当于文件资源管理器语法: ls [选项] [目录或文件]功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。常用选项:a 列出目录下的所有文件,包括以 . 开头的隐含文件。d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录k 以 k 字节的形式表示文件的大小。ls –alk 指定文件l 列出文件的详细信息。(可直接使用 ll)r 对目录反向排序。t 以时间排序。

2021-01-28 17:45:14 197

原创 http协议

一.http 的原理1.认识URLURL就是我们俗称的“网址”例如: http://www.baidu.com/http指的就是协议类型其中www.baidu.com 指的是域名(和IP等价),最后面的 / 指的是服务器的根目录,一般获取到某个网页的首页再例如:http://123.207.58.25/admin 其中的123.207.58.25指的是服务器的地址,隐含了端口号,当不显示的写端口 号的时候,浏览器会自动的添加上默认的端口号 http:80 https:443 后面的/

2021-01-21 20:17:56 1779

原创 网络编程学习(一)

一.基本概念1. 源Ip地址和目的Ip地址和发微信消息一样,小明要给小红发送消息,源Ip指的就是他自己,目的Ip就是小红,网络通信时候,需要知道这个'消息'是谁发送的,要发给谁。1.IP源(IP Source)是这个IP数据包从哪里出发、传播的。2.目的地(IP Destination)是这个数据包所要到达的数据包地点。在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址.2.端口号端口号(port)是传输层协议的内容.- 端口号是一个32位的整数;- 端口

2021-01-20 21:55:19 3120

原创 快速入门多线程(初阶二)

1.多行程带来的风险上一篇我们提到了线程的优点,和生活中一样,万物都有相对的一面,它给我们带来便利的同时,也有不安全性上代码 public static void main1(String[] args) private static class Counter { private long n = 0; public void increment() { n++; } public void decrem

2021-01-19 21:20:01 96

原创 快速入门多线程(初阶一)

1.认识线程1.1 什么是线程百度百科:线程(英语:thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。在Unix System V及SunOS中也被称为轻量进程(lightweight processes),但轻量进程更多指内核线程(kernel thread),而把用户线程(user thread)称为线程我们可以将阿里巴巴看做一个进程,那么线程就是马云

2021-01-19 20:34:09 162

原创 Mysql中的事务

1.事务是干什么的?事务要解决的是类似与转账问题的什么转账问题呢?小明要给小张转500块钱,小明刚转完(即他的账户-500)时,ATM停电了系哦小张的账户上没有转入5002.什么是事务事务就是一系列不可分割的操作,要都执行,要么都不执行。执行的时候会满足一定的特性,避免出现上面的问题执行时候会满足什么特性呢?这就需要知道事务的四大特性3.事务的特性原子性:一个事务是一个不可分割的工作单位,要么全都做了,要么全都不做(本质上是通过回滚操作来实现的)一致性:事务执行前后,数据处于合法状态;(

2021-01-18 20:22:21 173 1

原创 IO的学习(快速入门)

学习IO前我们先来看看"文件"的相关内容一 .File1.理解文件什么是文件?站在课本角度文件是相关记录或者放在一起的数据的集合站在日常实用角度你在windows操作中,经常在硬盘上创建的各种.txt, .doc, .exe, .java, .lib, .mp3等等,都可以称之为文件文件简单的可以理解成,在外设硬盘上面保存数据的一种方式文件一共可以由两部分构成:属性(文件大小,文件名,文件类型等)+内容(就是文件里面放的是什么)java给我提供了以下api让我们来操作文文件(ja

2021-01-17 19:58:36 376

原创 快速入门MySql(二)

~~接上回,我们简单的说了,库的基本操作,表的增删改查等操作,我们来学习,表操作的进阶1.数据库的约束1.1什么是数据库的约束:数据库约束是对表中的数据进行进一步的限制,保证数据的正确性、有效性和完整性。约束通常与一个表相关联,所有的关系数据库都支持对数据表使用约束,通过约束可以更好地保证数据表里数据的完整性。是表上强制执行的校验规则,除此之外,当表中数据存在相互依赖性时,可以保护相关数据不被删除。约束通常无法修改。了解了什么是数据库的约束后,我们来看一看Mysql的约束都有哪些1.2约束类型

2021-01-06 20:49:51 126

原创 Mybatis的使用

一个简单的查询案例查询表User的所有信息import com.dao.IUserDao;import com.domain.User;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFacto

2021-01-03 14:43:37 63

原创 快速入门Mysql(一)

一.库级别的操作1.查看当前数据库中的所有库show databases;//这个sql语句会帮你查到当前数据库中的所有库,//注意不是database而是打他databases2.创建数据库create database [if not exists]db_name [character set utf8mb4];其中[ ]中的为可选项 但是不加character set时 添加数据为汉字时会出现乱码 所以建议每次创建库的时候加上utf8mb4为指定数据库所使用的字符集MyS

2020-12-31 23:00:26 279 1

原创 七种排序算法

1.排序的相关概念平时的上下文中,如果提到排序,通常指的是排升序(非降序)两个相等的数据,如果经过排序后,排序算法能保证其相对位置不发生变化,则我们称该算法是具备稳定性的排序算法。(稳定性)2.算法的实现常见的排序算法2.1插入排序(直接插入排序)实现思想:整个区间被分为有序区间无序区间每次选择无序区间的第一个元素,在有序区间内选择合适的位置插入代码:public static void insertSort(long[]array){ // n个数进

2020-10-29 00:20:31 130

原创 优先级队列(堆)

1.什么是堆堆是一种特殊的数据结构,通常是一个可以被看做一棵树的数组对象。它使用数组保存二叉树结构,即将二叉树用层序遍历结果放入数组中。将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆2.堆满足的性质堆中某个节点的值总是不大于或不小于其父节点的值;堆总是一棵完全二叉树。2.1 已知双亲结点(parent)下标左节点(leftIndex)=parent2+1 ;右节点(rightIndex)=parent2+2;2.2 已知子结点(不区分左右)(child)下标父节点

2020-10-24 14:17:29 83

原创 二叉树及相关的Oj题

1.树1.1 概念树是一种非线性的数据结构,它是由n(n>=0)个结点构成的具有层次关系的集合。有一个特殊的节点,称为根节点,根节点没有前驱节点除根节点外,其余节点被分成M(M > 0)个互不相交的集合T1、T2、…、Tm,其中每一个集合 Ti (1 <= i<= m) 又是一棵与树类似的子树。每棵子树的根节点有且只有一个前驱,可以有0个或多个后继树是递归定义的。1.节点的度:一个节点含有的子树的个数称为该节点的度;2.树的度:一棵树中,最大的节点的度称为树的度

2020-10-19 22:34:36 896

原创 栈和队列的使用以及相关的Oj题

1. 栈(stack)1.1概念自己的理解:一种线性表,只能从一端插入,删除元素,遵循先进后出的原则;标准定义:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。压栈:栈的插入操作叫做压栈;出栈:也称弹栈,栈的删除操作叫做出栈;1.2 栈的实现//利用顺序表实现public class MyStack { int [] array; int size; MyStack(){ //不考虑

2020-10-17 18:03:26 164

原创 泛型

1.泛型存在的意义将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。例如:GenericClass<T>{}没有使用泛型前例如 :1.放在的集合中的类型都是Object类型的,在取出元素时人为的强制类型转化到具体的目标类型可能会出现ClassCastException2.在实现一个加法运算的时候每种数据类型类型都要重载一个方法。所以使用泛型的意义在于:1.适用于多种数据类型执行相

2020-10-06 10:47:27 71

原创 java之异常

1.什么是异常,在程序运行过程中出现的错误,称为异常2.异常主要分为:错误、一般性异常(受控异常)、运行期异常(非受控异常)错误:如果应用程序出现了 Error,那么将无法恢复,只能重新启动应用程序,最典型的Error 的异常是:OutOfMemoryError受控异常:出现了这种异常必须显示的处理,不显示处理 java 程序将无法编译通过非受控异常:此种异常可以不用显示的处理,例如被0 除异常,java 没有要求我们一定要处理...

2020-08-06 22:39:21 97

原创 Java之String的深入

一.String类对String在内存存储方面的理解: 第一:字符串一旦创建不可变。 第二:双引号括起来的字符串存储在字符串常量池中。 第三:字符串的比较必须使用equals方法。 第四:String已经重写了toString()和equals()方法String的构造方法。 String s = "abc"; String s = new String("abc"); String s = new String(byte数组); String s = new String(b

2020-08-06 22:37:17 144

原创 Java面向对象编程的相关

1.面向对象之继承1.1什么继承?继承是面向对象三大特征之一,封装居首位,封装之后形成了独立体,独立体 A和独立体B 之间可能存在继承关系。其实程序中的继承灵感来自于现实生活,在现实生活中继承处处可见,例如,儿子继承了父亲的财产,儿子不需要努力就很有钱。生活中的继承:继承时子类继承父类的特征和行为,使得子类对象(实例)具有父类的属性,或子类从父类继承方法,使得子类具有与父类相同的行为。(子类会继承父类除构造方法外的所有 注:只是不能直接访问private关键字修饰的方法或者实例变量等)

2020-08-05 22:11:49 138

原创 Java中类和对象

一.类和对象的概念1.什么是类和对象?类是现实世界当中具有共同特征的事物进行抽象形成的模板或概念。而对象是实际存在的个体。例如:“汽车”就是一个类(所有的汽车都有方向盘、发动机、都能形式,这是它们的共同特征),“你家的那个汽车”就是一个真实存在的对象。或者说“明星”是一个类,“刘德华”就是一个对象。“沈腾”、“赵本山”、“宋丹丹”都是实际存在的对象,他们都属于“笑星”类,类描述事物的共同特征,那么“笑星”类都有哪些共同特征呢?笑星类都有姓名、性别、年龄等状态信息(属性),他们还有一个共同的行

2020-07-26 23:28:16 257

原创 数组工具类Arrays的使用

数组的5中复制方法:1.for循环复制public static int[] copy1(int[] arr){ int[] a=new int[arr.length]; for (int i = 0; i <arr.length ; i++) { a[i]=arr[i]; } return a; }擦

2020-07-24 16:01:00 179

原创 程序的逻辑控制+方法的使用+递归

1.程序的逻辑控制什么是控制语句呢?官方的解释是这样的:控制语句即用来实现对程序流程的选择、循环、转向和返回等进行控制。Java 语言中共有 8 种控制语句,可以分为“选择语句”,“循环语句”,“转向语句”,“返回语句”四类。那么,这8 种控制语句分别是什么呢?if语句、switch 语句、for 循环、while 循环、do…while 循环、break 语句、continue 语句、return 语句。其中if 和switch 语句属于选择语句,for、while、do…while 语句属于

2020-07-22 11:59:39 149

原创 Java的变量详细概括

1变量1.1整形变量基本语法: int 变量名 =初始值;在Java中,一个int占4个字节,和操作系统无关int 的取值范围 [-2^31,-2^31-1]可以使用下面的代码查看int的最大值和最小值public class Test { public static void main(String[] args) { System.out.println(Integer.MAX_VALUE);//2147483647 System.out.p

2020-07-17 15:13:34 222

原创 十进制转二进制和转十六进制

十进制转二进制把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。2的0次方是1(任何数的0次方都是1,0的0次方无意义)2的1次方是22的2次方是42的3次方是82的4次方是162的5次方是322的6次方是642的7次方是128…例如将10转换为二进制10=2^3+2^1 即为1000+0010 所以二进制就为1010十进制转十六进制方法一:和上面的类似 将2换成16即可 不过10为a 11为b 12为c 13为d 14为e 15为f方法二:先转二进制 再

2020-07-16 16:41:28 938

原创 C语言程序的编译

程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码。翻译环境是将源文件经过翻译器变成目标文件,目标文件再经过链接器与链接库变成可执行的程序;翻译环境也分为几个阶段1.预处理阶段(gcc -E test.c -o test.i):宏替换,去注释,头文件展开,条件编译;2.编译(gcc -S test.c)是将源文件转换成汇编代码语法分析词法分析语句分析符号

2020-07-16 15:24:43 346

原创 指针

1.指针的定义标准定义:在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。指针就是个变量,用来存放地址,地址唯一标识一块内存空间。指针的大小是固定的4/8个字节(32位平台/64位平台)。指针是有类型,指针的类型决定了指针的±整数的步长,指针解引用操作的时候的权限。也可以说

2020-07-14 00:42:23 119

原创 C语言中不同类型的数据在内存中的存储

1.数据的类型1内置类型整形:char unsigned char signed charshort unsigned short [int] signed short [int]int unsigned int signed intlong unsigned long [int] signed long [int]浮点型:float2 构造类型数组类型结构体类型 struct枚举类型 enum联合类型 union1.3指针类型int *pi;

2020-07-12 23:29:28 1973

原创 C语言实现通讯录 提供增删改查等方法(多文件+动态内存+文件存储联系人数据)

明天写

2020-07-04 22:42:21 1774

原创 C语言实现通讯录(含有添加,删除,查找,修改,显示,清空,以姓名排序功能)

实现一个通讯录 (不能动态增加内存,设定为1000个联系人的内存大小) (动态增加内存见另一博客) 编译器 vs2013 通讯录可以用来存储1000个人的信息,每个人的信息包括:姓 名、性别、年龄、电话、住址 提供方法: 1.添加联系人信息 2.删除指定联系人信息 3.查找指定联系人信息 4.修改指定联系人信息 5.显示所有联系人信息 6.清空所有联系人 7.以名字排序所有联系人Main.c#include"test.h"void menu(){ p

2020-06-26 14:09:51 7255 3

原创 C语言字符串内存函数的实现

一.求字符串长度①.strlensize_t strlen ( const char * str );字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' )。参数指向的字符串必须要以 '\0' 结束。注意函数的返回值为size_t,是无符号的( 易错 )例题:int main(){//返回值为size_t,是无符号的 const char*str1 = "abcdef"; const char*str2 = "bbb"

2020-06-26 13:20:37 168

原创 C语言中的自定义类型:结构体,枚举,联合(总结)

**一.结构体①.结构体类型的声明struct tag{member-list;}variable-list;//例如描述一个学生struct Stu{char name[20];//名字int age;//年龄char sex[5];//性别char id[20];//学号};//分号不能丢//特殊声明//匿名结构体类型struct{int a;char b;float c;}x;struct{int a;char b;float c;}a[2

2020-06-25 12:10:02 171

原创 杨氏矩阵(在数组中查找数字)

杨氏矩阵(在数组中查找数字)#include<stdio.h>#include<windows.h>#pragma warning(disable:4996)int Find(int arr[][3], int row, int col,int num){ int i = 0;//行 int j = col;//列 while (i < row&&j >=0){ if (num > arr[i][j]){ i++; }

2020-06-09 18:03:47 105

原创 C语言字符串的旋转

1.字符串的任意次数左旋转方法1.(时间复杂度O(n^2))#include<stdio.h>#include<windows.h>#include<assert.h>#pragma warning(disable:4996)void Rotate(char *arr, int len,int num){//len字符串长度,num旋转次数 assert(arr != NULL); assert(len >= 0); assert(num >

2020-06-09 17:14:46 306

原创 指针的笔试题详解

笔试题1:int main(){ int a[5] = { 1, 2, 3, 4, 5 }; int *ptr = (int *)(&a + 1); printf( "%d,%d", *(a + 1), *(ptr - 1)); return 0;}运行结果:笔试题二:struct Test{int Num;char *pcName;short sDate;char cha[2];short sBa[4];}*p;//假设p 的值为0x100000。

2020-06-06 19:22:42 362

原创 指针与数组

指针进阶//一维数组int a[] = {1,2,3,4}; //一维数组 int a[] = { 1, 2, 3, 4 }; printf("%d\n", sizeof(a));//数组名单独存在时代表整个数组,16 printf("%d\n", sizeof(a + 0));//第一个元素地址的大小,4 printf("%d\n", sizeof(*a));//第一个元素的大小,4 printf("%d\n", sizeof(a + 1));//第二个元素的地址,4 printf("%

2020-06-05 18:36:50 96

原创 c例题

1.在屏幕上打印杨辉三角。定义一个数组然后先将数组的所有的数据初始化为1,赢为杨辉三角的每行的第一列和最后一列都是1;初始化为1后只需对每行的除去第一列和最后一列的数据进行处理,而他们的值为 arr[i - 1][j] + arr[i - 1][j - 1]。#include<stdio.h>#include<windows.h>#pragma warning (disable:4996)//在屏幕上打印杨辉三角。void Showyanghui(int n){ int

2020-05-29 18:47:48 187

原创 Java Random的使用

产生五个不重复的随机数package StringText;import java.util.Random;public class RandomText { public static boolean contains(int [] arr,int key,int i) { for(int j=0;j<i;j++) { if(arr[j]==key) retur...

2020-05-05 11:36:07 131

原创 C语言操作符

1.移位操作符<< //左移操作符。移位规则:左边抛弃,右边补零 >>//右移操作符。移位规则: 1.逻辑移位:右边抛弃,左边补零。 2.算术移位:右边抛弃,左边补符号位。警告⚠ : 对于移位运算符,不要移动负数位,这个是标准未定义的。 例如:int num = 10;num>>-1;//error2.位操作符:&amp...

2020-04-26 22:54:02 72

原创 扫雷小游戏

记录C语言学习1.题目要求:①.棋盘大小可自定②.用户输入要扫地方的坐标后,如果该处没雷则显示以该处为中心周围7个坐标雷的总数2.设计思路:①.创建两个char类型的数组一个存放雷用‘1’表示另一个用用存放‘*’给用户展示②.将存放雷的数组初始化为‘0’计算以该处为中心周围7个坐标雷的总数是容易计算 只需将这7初的值相加减去7 * ‘0’即可3.程序代码:main.c#includ...

2020-04-24 13:01:59 157

原创 三字棋

记录C语言学习1.题目要求:设计棋盘完成三子棋小游戏,当三子连线时游戏结束;2.设计思路:①.定义一个char类型的3*3数组,用于存放棋子②.将数据初始化为‘ ’(空格)③.用户每输入一个坐标,改变该坐标的值④.判断是否三子连珠⑤.电脑落子⑥.判断是否三子连珠⑦.如果没有三子连珠循环,否则游戏结束3.程序代码:main.c#include"text.h"int main(...

2020-04-24 12:52:53 554

空空如也

空空如也

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

TA关注的人

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