自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HTML的样式及引入样式的三种类型

样式及引入样式的三种类型

2022-05-18 15:02:18 1680

原创 HTML中的标签

块级标签、行内标签、行内块级标签

2022-05-18 14:10:35 132

原创 HTML中的表单

HTML表单什么是表单(form)表单的格式文本输入框密码输入框单选框多选下拉列表数字输入框日期输入文件输入重置按钮上传按钮按钮可拖动式文本框总结什么是表单(form)表单在web开发中使我们能够输入信息,在我们日常的上网中,登录、注册都是表单的一部分表单的格式在HTML中,我们可以利用标签来定义表单<body>//表单同其他的一样,是写在body中的 <form action = ""></form>//其中action为表单要提交到的地址</b

2022-05-16 16:12:23 702

原创 C++ 构造函数、析构函数、拷贝构造函数

C++ 5 类和对象(中)构造函数概念及特性析构函数概念特性构造函数概念及特性对于类中的成员变量,可以通过调用方法来给对象赋值,但如果每次创建对象都得调用一次,未免有些麻烦那有没有方法能在实例化对象时就调用并能将信息设置进去呢 1 #include <iostream> 2 using namespace std; 3 4 class Test

2021-11-09 23:11:15 907

原创 C++ 类的定义、作用域及大小计算,限定访问符,this指针

C++ 4类与对象面向对象的特点类的定义访问限定符类与对象面向对象的特点抽象 封装 继承 多态类的定义类的两种定义方式:1、声明和定义全部放在类体中,需要注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理//类class TestList{ //类体:由成员函数和成员变量组成 public: int *base; size_t capecity; size_t size; public: void fun() //在C++的类中能够定义函数,

2021-11-07 17:42:19 829

原创 C++11 中的内联函数、auto关键字、for循环及空指针

C++ 3内联函数概念特性auto关键字定义使用auto与指针结合起来使用在同一行定义多个变量auto不能推导的场景auto不能作为函数的参数auto不能直接用来声明数组基于范围的for循环范围for的语法范围for的使用条件C++11 中的空指针内联函数概念以inline修饰的函数叫做内联函数,编译C++时会在调用内联函数的地方展开,没有函数压栈的开销,目的是提升程序运行的效率特性1、内联是一种以空间换时间的做法,省去调用函数额外开销,所以代码很长或者有循环或递归的函数不适宜作为内联函数2、

2021-11-06 17:31:55 480

原创 C++中的引用

C++ 2引用的概念引用的方法常引用引用的用法引用的概念引用不是新定义一个变量,而是给已存在的变量取了个别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用一块内存空间。引用的方法类型& 引用变量名(对象名) = 引用实体;int main(){ int a = 10; int b = a; return 0;}在这串代码中,首先给a开辟了一块空间,但接着b=a,又给b开辟了一块空间,因此不是引用int main(){ int a = 10; int &a

2021-11-06 15:50:49 248

原创 C++中函数重载、缺省参数及命名空间

C++ 1函数重载缺省参数概念分类全缺省参数半缺省参数面试题命名空间目的定义命名空间命名空间的使用函数重载当两个函数拥有相同的名字时,在c语言中发现无法生成但是在c++中却发现可以生成这便是因为c++进行了函数的重载,即通过函数之间不同的参数来对函数进行区分在自然语言中,一个词可以有多种含义,我们可以通过上下文来判断一个词的真实含义,即重载该词再进行一次测试依旧可以成功生成如果函数要进行重载,需要满足以下条件 1、函数名相同,只有函数名相同才有重载一说 2、必须参数列表不同

2021-11-05 20:32:02 206

原创 C++的输入与输出

使用输入与输出时,必须包含 <iostream>头文件以及std标准命名空间输入cin>>[想要输入到的参数];输出cout<<"[输出的字符]"<<[输出的参数]<<endl(换行符);使用c++输入输出更加方便,不需要增加数据格式控制...

2021-11-05 20:31:07 90

原创 mysql视图

mysql9 视图创建视图视图规则与限制视图是一个虚拟表,其内容由查询定义创建视图create view 视图名 as select语句;修改源数据表后视图当中的数据也会随之改变视图规则与限制与表一样,必须唯一命名(不能出现同名视图或表名)创建视图数目无限制,但要考虑复杂查询创建为视图之后的性能影响视图不能添加索引,也不能有关联的触发器或者默认值视图可以提高安全性,必须具有足够的访问权限order by可以用在视图当中,但是如果从该视图检索数据select中也含有order by,

2021-08-25 19:06:39 92

原创 mysql索引的创建及删除

mysql8 索引创建索引创建主键索引创建唯一键索引创建普通索引创建全文索引删除索引索引创建原则创建索引创建主键索引create table [表名](列1 数据类型1, 列2 数据类型2, ...); alter table [表名] add prinmary key(列名); 创建后再添加主键索引create table [表名](列1 数据类型1 primary key, 列2 数据类型2, ...); 在创建表的时候,直接在字段后指定primary keycreate table [

2021-08-25 16:37:20 118

原创 mysql用户管理

mysql7 用户管理用户用户信息创建用户删除用户修改用户密码数据库的权限给用户授权收回权限如果只使用root用户,存在安全隐患,例如如果给张三root权限,那么他就能操纵所有的库,风险太大用户用户信息mysql中的用户,都存储在系统数据库mysql中的user表中select host, user, authentication_string from user;创建用户create user '用户名'@'登陆主机/ip' identified by '密码';删除用户dr

2021-08-25 16:06:05 127

原创 mysql的内连接与外连接

mysql6 表的内连和外连内连接内连接

2021-08-25 15:39:52 292

原创 多表查询,自连接,子查询

mysql5 复合查询

2021-08-24 20:18:04 305

原创 mysql中的各种函数(日期函数、字符串函数、数学函数...)

mysql4 函数日期函数字符串函数日期函数current_date() 当前日期current_time() 当前时间current_timestamp() 当前时间戳date(datetime) 返回datetime参数的日期部分date_add(date, interval d_value_type) 在date中添加日期或时间,interval后的数值单位可以是year,minute,second,daydate_sub(date, int

2021-08-24 11:57:23 311

原创 mysql表的增删查改

mysql3 表的增删查改增创建数据表单行插入多行插入指定列插入替换查select列全列查询指定列查询表达式中可以包含一个字段给输出的结果重命名去除重复结果where条件比较运算符逻辑运算符增创建数据表create table [表名]([列1] [数据类型1], [列2] [数据类型2], ...);单行插入insert into [表名] values(数据1, 数据2, ...);多行插入insert into [表名] values(第一行数据1, 第一行数据2, ...),(第

2021-08-23 19:22:29 325

原创 mysql中表的约束,主键外键唯一键

mysql2表的约束空属性(NULL)默认值列描述zerofill主键主键属性复合主键追加主键删除主键自增长唯一键外键练习表的约束空属性(NULL)此时 name 的 Null 被置为 No默认值列描述没有实际含义,专门用来描述字段,相当于注释zerofill没有啥实际用处,就是一个用来展示的主键可以看到key中多了PRI字符,即代表主键,主键不能为空主键属性定义的时候,可以给列的属性当中增加 priary key 来定义为主键①当前被定义为主键的列,不能为空,

2021-08-23 12:21:29 386

原创 mysql(mariadb)的安装与使用,mysql相关命令,mysql数据类型

mysql 1 安装启动查看连接mysql服务端Navicat直接连接服务端数据库的分层连接层服务层存储引擎磁盘命令使用查看数据库切换数据库及查看数据库中的数据表创建数据库创建数据库表查看表结构插入数据更改字符集设置是否区分大小写不区分大小写区分大小写数据库删除备份恢复查看链接情况SQL语句分类DDL数据定义语句DML数据操纵语句DCL数据控制语句安装可以选择mariadb,即mysql的一个分支版本(free)查看环境当中是否拥有mysql/mariadbrpm -qa | greo mari

2021-08-22 18:39:03 901

原创 tcp与udp的socket编程,udp代码实现客户端服务端,tcp代码实现客户端服务端(单线程、多线程、多进程分别实现),三次握手

网络2网络字节序定义为什么网络数据需要转换为网络字节序?Udp协议Tcp协议网络字节序定义什么是字节序:CPU对内存数据的存取顺序大端字节序&小端字节序 大端 :低位保存在高地址 小端:低位保存在低地址 78 12 56 34 34 56 12 78网络字节序:采用大端字节序传输,防止出现大小端机器解读数据出错的情况主机字节序:主机字节序指的是机器具体的字节序 主机是大端:认为主机字节序是大端 主机是小端:认为主机字节序是小端

2021-08-11 17:02:51 793 1

原创 ip和端口的本质与作用,网络协议栈

网络1协议定义协议ISO七层模型(网络模型,网络的分层模型)TCP/IP四层(或五层)模型数据流向ip、端口的本质和作用一条网络数据在网络转发时,需要具备哪些条件?网络协议栈在进行数据转发的时候做了哪些事?对于接收端而言,所有的网络数据都是需要经历网络协议栈的,但是这么区分网络数据到底是属于哪一个应用程序的?协议定义协议什么是协议:协议就是双方约定同一种语言进行沟通什么是网络协议:通信双方,约定通信时使用的数据格式进行网络通信协议分层:网络是有分层结构的,每一个分层当中有不同的网络协议,不同

2021-07-28 17:11:31 540

原创 信号量、使用信号量来完成读写模型(消费者生产者模型)线程池、读写锁面试题

多线程3信号量资源计数器信号量和条件变量的对比信号量的互斥与同步接口信号量类型初始化等待接口发送接口销毁接口使用信号量完成读写模型线程池本质信号量资源计数器信号量在本质上是PCB等待队列+计数器 计数器:对资源的计数,会影响信号量的等待接口和发送接口(唤醒接口)的逻辑如果有一个停车场,内有8个车位,此时停满了车,又有2辆车想停进去,即处于等待队列,此时资源计数器的值便为-2当一个线程调用发送接口之后,资源计数器进行加1操作,此时,加1操作之后的资源计数器的结果还是小于0,此时需要通知等待队列

2021-07-27 17:44:58 264

原创 等待队列中为什么需要互斥锁?一个线程在等待时被唤醒后会做什么?安全队列的代码实现

多线程2同步同步

2021-07-26 17:55:04 548

原创 死锁的代码产生及必要条件与预防

死锁死锁的定义及现象简单的定义复杂的定义死锁的代码及现象死锁的必要条件预防死锁死锁的定义及现象简单的定义当一个执行流获取到互斥锁后,并没有进行解锁,就会导致其他执行流由于获取不到锁资源进行阻塞,将这种现象称为死锁复杂的定义当线程A获取到互斥锁1,线程B获取到互斥锁2的时候,线程A和线程B同时还想获取对方手中的所(线程A还想获取互斥锁2,线程B还想获取互斥锁1),此时就会导致死锁死锁的代码及现象 1 #include <stdio.h> 2 #include &l

2021-07-23 17:01:26 155

原创 线程控制、如何给面试官描述线程不安全的情况?模拟黄牛抢票展现不安全的情况及解决方式、互斥锁加锁解锁

线程是操作系统的调度的基本单位进程是操作系统资源分配的基本单位进程与线程的对比:1、进程的健壮性比线程好2、多线程要比多进程耗费资源小,而且切换快,程序运行效率高线程控制:线程创建:int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg)pthread_t:线程的标识符,本质上是线程在共享区独有空间的首地址threa

2021-07-23 16:19:29 245

原创 进程信号(信号、信号的注册与注销、信号的处理方式)

进程信号信号的概念信号的产生信号的注册信号的注销自定义信号处理函数阻塞信号可重入和不可重入信号的概念信号是一个软件中断信号的产生硬件产生软件产生信号的种类:目前linux的信号数量为62个,分为两种类型 1、非实时信号(非可靠信号) 1~31 特点:有可能信号会丢失 2、实时信号(可靠信号) 34~63 特点:信号不会丢失信号的注册信号的注销自定义信号处理函数阻塞信号可重入和不可重入...

2021-07-18 21:56:22 489

原创 进程间通信(匿名管道、命名管道、共享内存)

进程间通信进程间通信的作用管道匿名管道命令感受匿名管道从内核角度去解释匿名管道代码创建匿名管道从PCB角度分析命名管道共享内存消息队列&信号量进程间通信的作用由于进程独立性的存在,两个进程想要直接交换数据是非常的困难的,所以需要进程间通信来解决进程与进程之间交换数据的问题目前最大的进程间通信方式:网络管道匿名管道命令感受匿名管道这一个 “丨” 就是管道作用:将 ps aux 命令的输出结果通过管道输入 grep 并作为 grep 的输入参数从内核角度去解释匿名管道管道就是内核

2021-07-17 16:33:47 346

原创 基础IO(文件接口、安装内核源码超详细步骤图解、静态库与动态库)

基础IOC语言的文件操作接口fopenfclosefreadfwritefseek系统调用文件接口open文件描述符&文件流指针重定向软硬连接文件系统C语言的文件操作接口特性:库函数fopenFILE *fopen(const char *path, const char *mode);path:带路径的文件名称(待打开的文件)mode:r : 以可读方式打开,不可写。文件不存在,则报错r+ : 以读写方式打开。w文件不存在,则报错w : 以可写方式打开,但是不能读。文件

2021-07-11 17:09:23 209

原创 进程控制(进程创建、进程终止、进程等待、进程程序替换)

进程控制进程创建fork函数进程等待进程终止进程程序替换进程创建fork函数子进程是拷贝父进程的PCB的,子进程的大部分数据是来源书父进程,例如:内存指针(数据段、代码段)父进程创建子进程成功之后,父子进程是独立的两个进程(进程的独立性),父子进程的调度取决于操作系统的内核进程是抢占式执行的,父子进程谁先运行是不能确定的写时拷贝进程等待进程终止进程程序替换...

2021-07-06 16:12:22 424

原创 linux中的进程、环境变量和虚拟地址

目录冯诺依曼体系结构操作系统进程概念程序和进程什么是程序什么是进程查看进程信息进程控制块(PCB)进程、进程标识符&进程状态冯诺依曼体系结构1、数据存储在“内存”当中2、计算机中的数据一切皆二进制冯诺依曼体系机构提出的数据架构图:数据由输入设备输入,再由内存将数据提交给CPU进行处理,再返回内存通过输出设备输出操作系统操作系统是软件,操作系统在管理计算机的软硬件资源管理 = 描述 ( 自定义数据类型 ( struct ) ) + 组织 (链表 )操作系统 = 操作系统内核 + 应

2021-05-17 21:02:26 155

原创 linux vim命令及使用,极大提升使用linux的舒适程度

目录vim的打开、编辑与退出打开编辑退出vimvim的效率提高移动删除复制粘贴替换撤销更改跳转其他命令从正常模式变为插入模式多行注释/多行去注释多行注释:多行去注释命令行模式替换特定字符串查找某个字符串vim的打开、编辑与退出打开使用vim [文件名]即可进入界面编辑单单打开vim界面是不能够直接进行编辑的,此时我们还需要进入插入模式,即直接在界面中单机 i 键,即可进入插入模式(insert模式)如果需要退出插入模式只需摁esc即可退回到普通模式退出vim退出vim时我们首先需要进

2021-04-17 20:54:27 91

原创 C++模板(函数模板,模板函数,类模板)

目录模板初始(利用重载进行内容调换)模板的目的与要求用模板解决调换问题函数模板概念格式模板不支持隐式转换模板函数类模板定义格式模板初始(利用重载进行内容调换)什么是模板?为什么需要使用模板?用他的目的是什么?先举一个例子如果需要调换两个数的位置,代码该怎么写?最简单的方法肯定是这样的:#include <iostream>using namespace std;void Swap(int &a, int &b){ int tmp = a; a = b;

2021-04-17 16:18:55 183

原创 linux初始:命令行解释器(shell)、权限

目录命令行解释器什么是命令行解释器(shell)命令行解释器的作用权限权限的种类结合用户去理解权限如何查看权限用户和用户组如何看懂权限如何更改权限权限对于文件或文件夹的影响权限对文件的影响权限对文件夹的影响命令行解释器什么是命令行解释器(shell)shell是命令行解释器的统称,并不是一个具体的命令行解释器、我们可以通过 echo $BASH 来查看具体的命令行解释器被称为bash命令行解释器的作用众所周知,我们在使用linux时,都会用到 ls、cd、cp 等命令,而在我们使用的时候:

2021-04-14 18:46:44 854

原创 从memcpy到memmove,内存函数拷贝与内存重叠问题(重点内容)

有一个关于拷贝的问题,假如有这样一个字符串char a[]="hello";我需要把这个字符串拷进另一个变量中char a1[10];好像方法蛮多的,比如strcpy#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>int main(){ char a1[10]; char a2[] = "hello"; strcp

2021-01-23 12:11:55 207

原创 大端机,小端机;截断与提升

什么是截断?通俗一些来说,截断就是将一个长的整形变成一个短整形,在赋值时,长整形的数据中会有一部分没有空间存储,所以在短整形中只能存放低位的数据。例如:char a = 1;此时1本身是int型数据,将1存储在char中,就发生了截断。什么是提升?提升又叫做整形提升,了解了截断的定义之后也不难猜到,提升就是将一个较短整形中的数据放到一个更长整型中。大端机与小端机在截断的定义中出现了一个词,叫低位数据,那么什么是低位的数据呢?举个例子:int i = 12345678;此时的78就是

2021-01-18 09:37:04 447

原创 条件表达式

条件表达式的格式为:exp1?exp2:exp3;exp1中写的是条件判断语句exp2代表exp1为真,则执行exp3代表exp1为假,则执行例如:if(a > 5) b=3else b=-3要将这一段代码转换为条件表达式,为:a>5?b=3:b=-3;需要注意的是条件表达式后边的两个执行语句只能执行一个,例如上式要么执行b=3,要么执行b=-3,不可能两个都执行...

2020-12-20 15:37:08 1330 1

原创 原码 反码 补码

一摸鱼就是好久,主要最近学校期末了,开始各种交大作业,真的伤脑筋这次就来哔哔一下原码 反码 补码这三兄弟吧此时先定义一个数int i = 1;由于实在懒,就不取那么大的数了,1多好,简简单单原码指的是一个数的二进制表示,那么1就是00000000 00000000 00000000 00000001但是,正数的原码 反码 补码都是一样的,所以。。。例子失败了那就换个例子吧如果此时给出一串二进制11111111 11111111 11111111 11111110这个数代表的是多少?

2020-12-20 12:36:09 85 1

原创 传值?传址!

摸鱼了两天,我又肥来了,主要是csgo大行动出来了,嘿嘿记得之前写作业,有个叫写一个程序输入三个数字后按照从大到小的顺序输出,那就写呗#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>int main(){int a, b, c, t=0;printf("输入三个数:");scanf("%d %d %d", &a, &b, &c);if (a < b&&b < c)

2020-12-04 18:37:00 83

原创 计算n的阶乘以及n个阶乘相加

n的阶乘,也就是n!有一说一之前看到这玩意我一度认不出来(数学都还给老师了,麻烦学费退一下谢谢!),后来说是n的阶乘才有了一丝丝的印象(钱不用退了,您收着吧),即1 * 2 * 3 * …… * n记得是上中学才接触到这玩意,当时一度怀疑我学这玩意有什么用,生活中仿佛没啥用得着这兄弟的地方,后来事实证明,好像确实没啥用的亚子,感觉仿佛白学了自己算着仿佛也怪麻烦的,没少在这玩意上边丢分,那就扔给电脑算咯电脑:那咋写咧,先使个while循环叭int main(){ int i = 2;//

2020-12-02 16:07:34 3188 3

原创 某科学的分支语句 --- switch

格式说起来switch就想起某游戏机。。。switch语句也是分支语句的一种,同if……else if……else……类似,他的格式如下switch (整形表达式){ 语句项;}语句项的格式为case 整形常量表达式;语句;下面举个栗子...

2020-12-01 17:27:33 85

原创 结构体:struct关键字

多个数据组合在一起便是结构体,此时需要用到我们的关键字–struct格式为: struct+需要定义的东西如此时我们需要定义一个学生的信息struct Student{char name[20];int age;int addr[50]}此时Student这个信息结构体我们就已经定义好了,如果定义的结构体中有多个数据,可以考虑定义宏变量,便于修改维护接着进行初始化int main(){struct Student A={"ACE",18,"一号楼308室"};return 0;

2020-11-29 11:52:36 870

空空如也

空空如也

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

TA关注的人

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