自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java IO AIO学习+BIO聊天室+NIO详解

I/O 模型:就是用什么样的通道或者说是通信模式和 架构进行数据的传输和接收,很大程度上决定了程序通信的 性能,Java 共支持 3 种网络编程的/IO 模型:BIO、NIO、AIO 实际通信需求下,要根据不同的业务场景和性能需求决 定选择不同的I/O模型

2022-12-17 08:58:42 1321 1

原创 5、设计模式之工厂模式

 抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类。 抽象工厂模式就是将工厂方法改进了一下,使其能够管理多个抽象产品。 从设计层面看,抽象工厂模式就是对简单工厂模式的改进(或者称为进一步的抽象)。 将工厂抽象成两层,AbsFactory(抽象工厂) 和 具体实现的工厂子类。程序员可以根据创建对象类型使用对应的工厂子类。这样将单个的简单工厂类变成了工厂簇,更利于代码的维护和扩展。

2022-11-24 15:44:42 373

原创 4、设计模式之单例设计模式

单例设计模式,就是采取一定的方法保证在整个的软件系统中,使得某个类只存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)。

2022-11-02 10:58:48 245

原创 3、设计模式之软件设计原则

设计模式原则,其实就是程序员在编程时,应当遵守的原则,也是各种设计模式的基础(即:设计模式为什么这样设计的依据)

2022-10-31 22:00:37 268

原创 2. 设计模式-详解UML类图

UML——Unified modeling language UML (统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果

2022-10-27 10:46:09 247

原创 1、设计模式概述

软件设计模式(Software Design Patter),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用。

2022-09-24 23:07:14 390

原创 python打印质数(素数)

python打印质数(素数)

2022-09-07 22:18:02 6848

原创 python打印五子棋棋盘

python打印五子棋棋盘

2022-09-07 21:57:43 4916 1

原创 016-打印菱形-【c语言版】

文章目录1. 题目2. 分析3. 代码文章索引后记1. 题目题目:打印菱形要求:写一个函数,接收一个整型参数n,n表示菱形的行数且n为大于2的奇数示例1:输入:5输出: * ******** *** *示例2:输入:7输出: * *** ************ ***** *** *2. 分析通过示例2可以看到,如果输入7,则菱形打印7行,前四行的 * 的个数分别为 1、3、5、7,左边空格的个数分别为 3、2、1、0;后三行的 * 的个

2021-11-21 17:34:48 439 2

原创 015-字符串逆序-【c语言版】

文章目录1. 题目2. 代码文章索引后记1. 题目题目:字符串逆序要求:写个函数,可以逆序一个字符串的内容。示例1:输入:abcd输出:dcba示例2:输入:hello world!输出:!dlrow olleh2. 代码char * reverse_string(char* str) { assert(str); int len = strlen(str); int left = 0; int right = len - 1; while (left &l

2021-11-21 16:54:33 538

原创 014-水仙花数-【c语言版】

文章目录1. 题目2. 代码文章索引后记1. 题目题目:求出0 ~100000之间的所有“水仙花数”并输出。“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身.如:153 = 1 ^ 3 + 5 ^ 3 + 3 ^ 3, 则153是一 个"水仙花数"。2. 代码int main() { int i = 0; for (i = 0; i < 100001; i++) { // 临时保存待计算的数 int temp = 0; // 153 // 记录t

2021-11-21 14:12:43 520

原创 013-a+aa+aaa+...【c语言版】

文章目录1. 题目2. 代码文章索引后记1. 题目题目:在不考虑数据溢出的情况下,求 Sn = a+aa+aaa+aaaa+aaaaa+…的前n项和,其中a和n都是用户输入的整型数据示例1:输入:1 3输出:123解释:1 + 11 + 111 = 123示例2:输入:1 4输出:1234解释:1 + 11 + 111 + 1111 = 1234示例3:输入:2 3输出:246解释:2 + 22 + 222 = 2462. 代码int sum(int a,

2021-11-21 12:07:24 179

原创 012-交换变量-【c语言版】

文章目录1. 题目2. 代码实现3. 难度升级文章索引后记1. 题目题目:写一个函数,完成两变量的位置。示例1输入:3 5输出:5 3示例2:输入:9 0输出:0 92. 代码实现实现逻辑很简单,这里我就不进行分析了void swap(int* n, int* m){ int temp = *n; *n = *m; *m = temp;}【测试】int main(){ int n = 4; int m = 5; printf("%d %d\n", n,

2021-11-21 11:40:13 845

原创 011-奇偶位-【c语言】

文章目录1、题目2、分析3、代码1、题目题目:获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列(先打印奇数序列).说明:假设在32位环境下;第几位从高地址开始数【示例】获取一个整数二进制序列中所有的偶数位和奇数位,分别打印出二进制序列输入: 13输出:00000000000000100000000000000011解释:13 对应的32位二进制为:00000000 00000000 00000000 00001101奇数位序列:0000000000000010偶数

2021-11-18 17:12:36 320

原创 010-numberOfDiffInBinary-【c语言】

文章目录1、题目2、分析3、代码文章索引后记1、题目输入两个不同的int型整数,统计对应二进制位有多少个不同(假设在32位的机器上进行)如:输入: 13 21输出: 2解释:13 对应的二进制为 00000000 00000000 00000000 0000110121 对应的二进制位 00000000 00000000 00000000 000101012、分析【思路一】将两个数的每一个二进制位分别进行比较是否相等【思路二】将两个数进行异或运算,而异或运算的规

2021-11-18 13:29:21 324

原创 009-2的n次方-【c语言】

文章目录1、题目2、分析3、代码文章索引后记1、题目题目:写一个函数,用于判断该数是不是2的n次方得到的值(不考虑负数情况)2、分析【思路】一个数是2的n次方,则这个数的2二进制数只有一个1(不考虑负数情况)例如:1 = 201 对应的二进制为 00012 = 212 对应的二进制为 00104 = 224 对应的二进制为 01008 = 238 对应的二进制为 1000. . . . . .在 上一篇文章 中我提到了一个用于计算 n 中二进制位为0或1的公式,如果该公

2021-11-18 09:18:11 552

原创 009-NumberOf1InBinary-【c语言】

文章目录1、题目2、分析3、代码实现文章索引后记1、题目输入一个整数,输出该数二进制表示中1的个数。负数计算补码中1的个数(假设该机器是32bit的)2、分析【思路一】众所周知:1 & n(n表示任意整数)会得到 n 的最后一位二进制位(0或1)所以我们只需要控制 1 和 n 中的所有二进制位进行 & 运算就能知道对应位置上是 0 还是 1示例:100000000 00000000 00000000 00001101 是 十进制数 13 的原码、反码和补码令 n =

2021-11-18 08:54:42 525

原创 007-DNS服务部署与安全-【网络安全】

文章目录1、DNS2、域名组成2.1、域名组成概述2.2、域名组成3、监听端口4、DNS解析种类4.1、按照查询方式分类4.2、按照查询内容分类5、搭建DNS服务器6、配置DNS转发器7、DNS服务器处理域名请求的顺序8、辅助DNS服务器9、将虚拟机连接到网络10、客户机域名请求解析顺序11、服务器对域名请求的处理顺序12、域名解析记录类型13、DNS服务器分类文章索引1、DNSDomain Name Service 域名服务作用:为客户机提供域名解析服务器2、域名组成2.1、域名组成概述&n

2021-11-17 19:31:21 4053

原创 008-调整奇偶数位置-【c语言】

1. 题目实现一个函数,用来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。2. 分析如下图:3. 代码// nums 是一个数组的首地址,numsSize是数组 nums 的长度int* move(int* nums, int numsSize){ assert( nums ); if ( !numsSize) return nums; int* res = nums; int left = 0; int right = numsSi

2021-11-17 16:03:20 592

原创 007-模拟实现求字符串长度strlen【c语言】

文章目录1. 分析2. 具体实现文章索引后记1. 分析我们先了解一下strlen函数的作用,strlen函数会根据我们传递的字符数组首地址计算字符串的长度比如:// 代码1char str[] = "abcdef";strlen(str); // 6// 代码2char str[] = "abcd\0ef";strlen(str); // 4// 代码3char* str = "abcdef"; strlen(str); // 6// 代码4char str[] =

2021-11-17 15:21:55 580

原创 006-DHCP服务安全与部署-【网络安全】

文章目录1、DHCP作用2、DHCP相关概念3、DHCP优点1、DHCP作用(Dynamic Host Configuration Protocol)自动分配IP地址2、DHCP相关概念地址池/作用域:(IP、子网掩码、网关、DNS、租期),DHCP协议端口是UDP 67/683、DHCP优点减少工作量、避免IP冲突、提高地址利用率...

2021-11-16 22:04:09 5839

原创 【数据结构】手写循环顺序队列【纯c语言版】

摘要:本章主要讲述循环顺序队列的实现文章目录1.队列的定义和特点2.队列的顺序结构2.1 普通队列2.2 循环队列3. 循环队列的代码实现3.1 队列的初始化3.1 队列增容3.2 队列的判空操作3.3 队列的判满操作3.4 入队操作3.5 出队操作3.6 清空队列3.7 销毁队列4. 源码链接(含测试代码)文章索引后记1.队列的定义和特点定义队列(Queue)是只允许在一端进行插入操作,而在另-端进行删除操作的线性表队列是一种先进先出(First In First Out)的线性表允许插

2021-11-16 20:31:39 326

原创 git push 时出现错误error: failed to push some refs to ‘https://gitee.com/**.git‘

产生该问题的原因:可能是因为在手动修改了远程仓库中的文件,导致一些文件在本地仓库和远程仓库上不一致,故而引发该错误。解决方法:使用命令 git pull --rebase origin master 将远程仓库同步到本地,然后再重新add、commit、push就行了。当然引发这种错误的原因可能不是这个,但大家可以尝试一下。我就是通过该方法解决此错误的。建议: 不要在远程仓库手动修改文件,应该要在本地仓库中进行修改,然后提交到远程仓库,从而保证本地仓库和远程仓库的一致性本文内容到此结束,感谢您的阅读

2021-11-16 13:04:21 5395

原创 【数据结构】手写链栈【纯c语言版】

摘要:本章主要讲述链栈的实现文章目录1. 链栈的存储结构2. 链栈的入栈出栈图解3. 链栈的代码实现3.1 定义链栈的结构3.2 栈的初始化3.3 创建新结点3.4 判断栈是否为空3.5 入栈操作3.6 出栈操作3.7 读栈顶操作3.8 清空栈3.9 销毁栈3.10 感悟源码链接(含测试代码)文章索引后记1. 链栈的存储结构链栈的结构与链表相似插入与删除等操作都在链表的头部即:链栈是一个以top为头结点、从栈顶指向栈底的单链表2. 链栈的入栈出栈图解3. 链栈的代码实现3.1 定义

2021-11-16 12:05:18 580

原创 【数据结构】手写顺序栈【纯c语言版】

摘要:本章主要讲述栈的顺序存储的代码实现文章目录1. 顺序栈的定义和特点2. 入栈出栈时指针的变化3. 顺序栈的代码实现3.1 定义顺序栈的结构3.2 栈的初始化3.3 入栈操作3.4 出栈操作3.5 判断栈是否为空3.6 读栈顶元素3.7 清空栈源码链接(含测试代码)后记1. 顺序栈的定义和特点定义栈(stack)是限定仅在表尾插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)不含任何数据元素的栈称为空栈特点先进后出后进先出

2021-11-16 08:46:47 575

原创 007-模拟实现strcpy字符串拷贝函数-【c语言】

题目:模拟实现 strcpy 字符串复制函数strcpy 函数原型如下:char * strcpy ( char * destination, const char * source );将source指向的 C 字符串复制到destination指向的数组中,包括终止空字符(并在该点停止)。为避免溢出,destination指向的数组的大小应足够长以包含与source相同的 C 字符串(包括终止空字符),并且不应与source在内存中重叠。代码实现:char* my_strcpy(char

2021-11-13 18:17:26 601

原创 006-整型数组反转-【c语言】

题目:实现reverse()函数,完成对数组的逆序直接上代码:#include <stdio.h>void reverse(int* arr, int arrSize){ int left = 0; int right = arrSize - 1; while (left < right) { int tmp = arr[left]; arr[left] = arr[right]; arr[right] = tmp; left ++; right --

2021-11-13 11:48:43 501

原创 005-将三个数按照顺序打印-【c语言】

题目:将用户输入的三个数从大到小输出出来直接上代码:int main() { int a = 0; int b = 0; int c = 0; scanf("%d%d%d", &a, &b, &c); if (a < b) { // 保证了a 和 b之间,a是较大的 int temp = a; a = b; b = temp; } if (a < c) { // 保证了a 和 c之间,c是较大的 int temp = a; a

2021-11-13 11:33:35 236

原创 004-猜数字游戏-【c语言】

题目:写一个猜数字的游戏1.自动产生一个1~100之间的随机数2.猜数字 a.猜对了,恭喜你,游戏结束 b.猜错了,提示用户猜大了还是猜小了3.每个人最多猜10次因为代码很简单,也基本没什么逻辑可讲的,所以我就直接上代码吧!#include <stdio.h>#include <stdlib.h>// 猜数字游戏,数字范围 [1,100]// 每个用户用10次机会int main(void) { // 1.生成随机数 // rand 函数会生成

2021-11-13 11:29:18 2103

原创 003-字符串向中间移动-【编程题】

有两个等长的字符数组:char src[] = "hello world";char dest[] = "###########"现在有这样一个要求,需要我们实现以下打印效果:h#########dhe#######ldhel#####rldhell###orldhello#worldhello world可以看到,第一次打印将 dest 数组中的第一个和最后一个字符替换尾 src 中的,第二次打印又将 dest 数组中的第二个和倒数第二个元素替换为 src 中的,直到替换所有则结束。

2021-11-13 11:03:59 85

原创 005-文件共享服务器-【网络安全】

文章目录一、共享服务器概述二、创建共享三、访问共享四、创建隐藏的共享五、访问隐藏共享的方法六、共享相关命令七、屏蔽系统隐藏共享文件自动产生八、查看本地已开放端口九、关闭445服务后记一、共享服务器概述通过网络提供文件共享服务,提供文件下载和上传服务(类似于FTP服务器)二、创建共享方法:文件夹右键属性–共享–开启共享–设置共享名–设置共享权限注:1)在本地登录时,贡献权限只受NTFS权限的影响2)在远程登录时,将受共享及NTFS权限的共同影响,且取交集!3)所以建议设置共享权限为ev

2021-11-12 22:35:04 3855

原创 004-NTFS权限管理-【网络安全】

文章目录一、NTFS权限概述二、文件系统概述四、修改NTFS权限4.1、取消权限继承4.2、文件及文件夹权限4.3、权限累加4.4、拒绝最大4.5、取得所有权4.7、文件复制对权限的影响后记一、NTFS权限概述1、通过设置NTFS权限,实现不同的用户访问不同对象(这里的对象指的是文件/文件夹)的权限2、分配了正确的访问权限后,用户才能访问其资源3、设置权限防止资源被篡改、删除二、文件系统概述文件系统:即在外部存储设备上组织文件的方法常用的文件系统:• FAT windows • NTF

2021-11-10 21:54:24 3165 1

原创 003-服务器远程管理-【网络安全】

文章目录一、远程管理类型二、远程桌面三、telnet一、远程管理类型windows远程管理有2种类型:1、远程桌面(图形)2、telnet(命令行)二、远程桌面拓扑图步骤:1、首先将配置网络,并实现客户机与服务器可以互通。2、服务器开启允许被远程控制:桌面右键我的电脑 – 属性 – 远程设置 – 选择允许 – 确定。3、客户机上:开始 – 运行 – 输入mstsc 打开远程连接工具。4、在mstsc工具上输入服务器的IP并点击确定。5、输入服务器的账号及密码。注意:如使用非管

2021-11-09 22:58:31 796

原创 002-用户与组管理-【网络安全】

文章目录一、服务器系统版本介绍二、用户管理2.1 用户概述 每一个用户登录系统后,拥有不同的操作权限。2.2 内置账户2.3 配置文件2.4 用户管理命令三、组管理3.1 组概述3.2 内置组3.3 组管理命令一、服务器系统版本介绍windows服务器系统:win2000 win2003 win2008 win2012linux服务器系统:Redhat Centos二、用户管理2.1 用户概述 每一个用户登录系统后,拥有不同的操作权限。每个账户有自己唯一的SID(安全标识符)用户SID:S

2021-11-09 22:02:39 78

原创 001-IP地址详解【网络安全】

文章目录一、简单局域网的构成二、IP地址三、子网掩码四、IP地址详解五、网关六、DNS七、配置IP地址八、网络测试命令一、简单局域网的构成局域网:一般称为内网简单局域网的构成:交换机、网线、PC(其他IT终端)交换机:用来组建内网的局域网的设备。二、IP地址IP地址就是一个唯一标识,是一段网络编码(二进制,下章学习),由32位二进制位组成IP地址形式:X.X.X.X ,X的范围:0-255如:正确:10.1.1.1 、192.168.1.1错误:300.1.1.1三、子网掩

2021-11-09 21:27:50 783

原创 002-删除有序数组中的重复项-【OJ练习】

文章目录1. 题目2. 题目描述3. 输入输出示例4. 解题思路4. 代码实现1. 题目  删除有序数组中的重复项(Remove Duplicates from Sorted Array)  链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-array/2. 题目描述给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长

2021-11-08 10:44:51 164

原创 001-移除元素-【OJ练习】

文章目录1. 题目名称2. 题目描述3. 输入输出示例4. 解题思路5. 代码实现1. 题目名称  移除元素(Remove Element)  链接:https://leetcode-cn.com/problems/remove-element2. 题目描述给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。

2021-11-08 09:38:33 89

原创 越界修改数组导致死循环问题

  直接步入主题:请观察以下代码的输出结果是什么?// 代码1int main(){ int i = 0; int arr[10] = { 1,2,3,4,5,6,7,8,9,10 }; for (; i <= 9; i++) { arr[i] = 0; printf("hehe\n"); } return 0;}  大家不要把代码拷到运行环境上,大胆的猜测一下以上代码运行会出现什么情况?  对的,没错,

2021-11-07 19:59:28 180

原创 【数据结构】手写双链表【纯C语言版】

摘要:本章主要讲述循环双链表的实现文章目录本章导读1. 循环双链表的逻辑结构2. 循环双链表的代码实现2.1 定义循环双链表的存储结构2.2 创建结点2.2 初始化头结点2.3 计算链表长度2.4 尾插法2.5 尾删法2.6 打印链表本章导读  本章我并不会把代码的实现逻辑详细的描述出来,如果大家看了之前的文章或是自己写过单链表,那么你将会对本文中关于循环双链表的实现手到擒来;如果大家对其中的一些逻辑不够清楚可以自己画图理解,这里我只会画两个图出来作为示范,其他的大家可以自己画

2021-11-06 21:28:30 665

原创 【数据结构】手写单链表【纯C语言版】

摘要:本章主要讲述线性表的链式表示和用C语言实现单链表目录1. 链表1.1 什么是单链表1.2 单链表的逻辑图1.3 顺序表和单链表物理结构的对比2.单链表的代码实现2.1 定义单链表的存储结构2.2 单链表结点的空间开辟2.3 单链表查尾2.4 单链表尾插法2.5 打印链表2.6 单链表头插法2.7 单链表头删法2.8 单链表的查找2.9 单链表的修改2.10 单链表的插入2.11 单链表的删除2.12 计算链表长度2.13 销毁单链表3. 源码链接后记正文开始1. 链表1.1 什么是单链表

2021-10-30 15:28:15 416

空空如也

空空如也

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

TA关注的人

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