- 博客(49)
- 收藏
- 关注
原创 00截断原理
0x00截断原理:0x00是十六进制表示方法,是ascii码为0的字符,在有些函数处理时,会把这个字符当做结束符。系统在对文件名的读取时,如果遇到0x00,就会认为读取已结束。这个可以用在对文件类型名的绕过上。但要注意是文件的16进制内容里的00,而不是文件名中的00 !!!就是说系统是按16进制读取文件(或者说二进制),遇到ascii码为零的位置就停止,而这个ascii码为零的位置在16进制中是00,用0x开头表示16进制,也就是所说的0x00截断。%00是被服务器解码为0x00发挥了截断作用。
2020-07-17 10:09:00
4088
原创 Python面向对象(一)
1.面向对象(1)面向对象编程(oop)面向对象就是将客观存在的事物描述成对象,然后通过抽象的思维方式,把事物分解成人们易于理解的对象模型,然后根据对象模型构建应用程序的功能在面向对象编程的世界里:万物皆对象(一切都是对象)(2) 面向对象的三个特征封装,继承,多态(3) 面向对象的好处1)面向对象重点强调的是程序的执行状态2) 面向对象让程序员从一个执行者,变成了一个指挥者(4)面向对象技术简介类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所
2020-06-19 16:56:32
194
原创 Python中IO流
IO流1、什么是IO流?I(input) O(output)Stream主要说的就是将数据读入内存或者内存输出的过程中使用的技术常见的IO流操作,一般说的是【内存】与【磁盘】之间的输入输出。2、作用持久化数据,保证数据不再丢失!3、IO的分类一、根据数据流动方向(粘在内存的角度来说) r——输入流 w——输出流 二、根据数据的类型 b——字节流 t——字符流4、python如何操作IO流全局函数 open 打开一个IO操作open函数主要的目的是打开一个本地的文件ope
2020-06-19 15:27:04
1629
原创 BGP属性
一、属性分类BGP属性是BGP进行路由决策和控制的重要信息。它可以分为如下两大类四小类:一、公认属性公认必遵(Well-known mandatory )公认可选(Well-known di scretionary )公认属性是所有运行BGP协议的系统都必须识别和支持的属性。其中,公认必遵属性是BGP UPDATE消息中必须包含的属性。公认可选则是BGP UPDATE消息中可以自由选择是否包含的属性。二、可选属性可选过渡(Optional transitive)可选非过渡(Opti
2020-06-15 23:32:57
17151
原创 Python函数入门(三)
内容回顾: |-- 函数结尾工作 |-- 深入讲解了递归在算法中的使用 |-- 斐波那契数列实现和使用 |-- lambda表达式 lambda [参数列表]:函数体 |-- 偏函数 函数的重新定义 from functools import partial |-- 全局函数 |-- 系统内置的常见模块 |-- random random.random() random.randint() random.randrange() ran
2020-06-11 16:06:51
137
原创 Python函数入门(二)
内容回顾:|-- 什么是函数?|-- 为什么使用函数|-- 如何定义函数?|-- 函数的调用|-- 函数分类|-- 全局变量和局部变量|-- 函数的调用过程|–函数的递归 |-- 函数的参数|-- 默认值|-- 可变参数|-- 命名参数(关键字参数)|-- 几种综合在一起的今日目标:|-- 匿名函数|-- 偏函数|-- 全局函数(自学)|-- 闭包|-- 装饰器|-- 内置模块匿名函数def (): # 函数体注意:在早期,python并没.
2020-06-11 15:52:44
254
原创 Python函数入门
1、什么是函数具有特殊功能的一段代码的封装C语言是一门面向过程(功能、函数)的语言具有名称的一段具体功能代码的统称函数作用:代码封装、提高代码的复用性、解耦合的作用2、python中如何定义函数使用关键字 def # define functiondef 函数名称([参数列表]): # 函数体 # [return 返回值]调用函数的帮助文档 print(print_msg.__doc__) print(help(print_msg))3、函数的调用函数名称([参数列数]
2020-06-03 14:56:39
185
1
原创 Python中的常用字符串
1、什么是字符串‘’、"" 、 “”“字符串”""、 ‘’‘字符串 ‘’’2、字符串常见的方法字符串可以被迭代,也可以通过下标访问注意:字符串是不可变类型python中字符串的所有方法,并不会改动字符串本身的值!!! 而是返回值发生了变化...
2020-06-03 13:50:34
312
原创 TCP、STCP
TCP报头端口号:用来标识同一台计算机的不同的应用进程。1)源端口:源端口和IP地址的作用是标识报文的返回地址。2)目的端口:端口指明接收方计算机上的应用程序接口。源端口和目的端口,各占2个字节,分别写入源端口和目的端口;序号,占4个字节,TCP连接中传送的字节流中的每个字节都按顺序编号。例如,一段报文的序号字段值是 301 ,而携带的数据共有100字段,显然下一个报文段(如果还有的话)的数据序号应该从401开始;确认号,占4个字节,是期望收到对方下一个报文的第一个数据字节的序号。例如,B收
2020-05-30 23:29:11
1480
原创 Linux复习(web,dhcp,dns,nfs,ftp,pxe+kickstart)
Linux系统的启动过程可以分为5个阶段:1、内核的引导。2、运行 init。3、系统初始化。4、建立终端 。5、用户登录系统。内核引导当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。运行initinit 进程是系统所有进程的起点,你可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。init 程序首先是需要读取配置文件 /etc/inittab。系统初
2020-05-28 19:23:22
297
原创 Python实现英雄游戏的登录注册购买界面
对csdn的排版很无语,已经写了好多遍了显示上来还是很乱,最后还是决定直接粘贴过来# -*- coding: utf-8 -*-while True: print("\t\t\t英雄商城登录界面\n") print("~*"*38) print("\t\t\t1.用户登录\n") print("\t\t\t2.用户注册\n") print("\t\t\t3.退出系统\n") print("~*"*38) choice = input("请输入您的选择:") if choice == "1
2020-05-27 17:20:29
515
原创 Python容器
什么是容器容器就是一种数据类型,复合数据,存储多个变量对象都是存储在堆中的容器(collection)|-- list 列表 底层是基于双向链表实现的|-- set 集合 无序,不重复 hash|-- tuple 元组|-- dict 字典list 列表...
2020-05-26 19:06:50
209
原创 循环习题解析
首先补充上一节知识(for循环中range函数的使用)Python的中的for循环本质就是用来迭代数据的 可迭代对象(Iterable对象)range()函数的使用 |-- range(n) 表示一个区间范围的递增的数据 [0, n) |-- range(m, n) 表示一个区间范围,[m, n)的区间 |-- range(m, n, s) 第三个值表示步长step举个栗子:#打印九九乘法表#coding=gbkfor i in range(1,10): for j in
2020-05-26 17:05:39
637
原创 OSPF协议详细总结
OSPF协议:1、 数据包类型2、 状态机3、工作过程3、 各个类型的LSA 传播范围 通告者 携带信息4、 特殊区域5、 接口网络类型6、 选路规则OSPF协议简介:开放式最短路径优先协议;无类别链路状态IGP协议;公有协议;跨层封装到IP报头,协议号89;触发更新+周期更新(30min)组播更新:224.0.0.5 通用地址 224.0.0.6 DR/BDR专用地址基于拓扑进行收敛,更新量巨大-----结构的部署----1、区域划分 2、IP地址
2020-05-25 16:31:38
1004
原创 RIP协议介绍
RIP协议如何工作?在路由器上开启RIP协议,并将路由器的直连网段宣告进RIP后,RIP会将这些直连网段信息封装成RIP协议报文,发送给邻居路由器。这样邻居路由器间就可以相互学习对方的网段信息,实现网络互通。RIP 如何计算开销值RIP是基于跳数来计算开销值,跳数就是跨越网段的数量RIP路由的最大网络跳数为15,如果一条RIP路由的跳数到达16,路由器则认为该路由不可达。为什么RIP需要周期性的发送路由?因为RIP基于UDP发送协议报文,而UDP没有确认机制,所以路由将路由发送出去以后无法确认另
2020-05-24 22:19:53
3589
原创 交换机和路由器工作原理
三层通信原理1.ARP1)简介地址解析协议,即ARP(AddressResolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。*AARP正向ARP已知对端IP地址, 通过广播来获取对端的MAC地址RARP反向ARP已知对端的MAC地址, 通过.
2020-05-19 09:48:35
782
原创 Python(第二天)三大流程结构
python的三种程序结构是什么?➢ 顺序结构:按照顺序依次逐行执行代码的过程。自左向右,自上而下。➢ 选择结构:程序按照不同的条件执行不同的处理代码的过程。 在python常用if…elif…else判断语句➢ 循环结构:程序按照指定的条件,如果条件满足就重复指定一端处理代码的过程。 在python常用 while循环或是for循环顺序结构从左到右,从上而下按顺序执行的(比较简单)在python,一个语句的结束,以换行符作为标志的。选择结构|-- 单分支 if 条件: #
2020-05-18 16:46:43
254
原创 python第二天(Python变量 、标识符和关键字 、数据类型、 输入和输出、 运算符)
Python变量标识符和关键字数据类型输入和输出运算符python的变量变量:运行时可以发生变化的量为什么使用变量?——》方便变量的定义: # 在java、c、c++这些强数据类型语言中,定义变量必须申明变量的类型 int a = 10; # python是弱数据语言,在定义使用变量的过程中,不用申明变量的类型 # 解释器会自动根据值来判断 变量名称 = 变量值 # python的变量定义变量命名规范1、变量名称只能有 【大小写字母(大小写敏感)、数字、下划线
2020-05-17 15:14:17
306
原创 Python第一天(Python安装及Python不为人知的故事)
Python安装Python下载官网:http://www.python.orgftp 官方下载地址:http://www.python.org/ftp/python在官方 ftp 下载地址中,可以选择下载任意一个需要的版本在官网点击downloads选择需要的版本下载Python安装我们以最新的 3.x 为例安装:双击安装包,出现如下的开始安装界面,选择自定义安装选项:2. 选项设置,默认全部勾选即可:3. 高级配置选项,如图勾选即可:4. 安装过程中…:5. 安装完
2020-05-17 11:15:29
396
1
原创 vlan实验(三种模式)
一、实验拓扑二、实验要求PC1和PC3所在接口为access;pvlan vlan2PC2/4/5/6处于同一网段,其中PC2可以访问PC4/5/6;但PC4可以访问PC5,不能访问PC6PC5不能访问PC6PC1/3与PC2/4/6不在一个网段所有PC通过DHCP获取IP地址,且PC1/3可以正常访问PC2/4/5/6三、实验思路1.pc1/pc3–>vlan2 给它们划分一个固定网段为192.168.2.0/24 ,路由器R1为vlan2设置子接口专门管理pc1/pc3,并在子
2020-05-16 21:38:21
2914
原创 Linux安装及密码破解
破解步骤及指令1.重启 reboot 按 e 进入救援系统2.linux16 输入rd.break 以rd.break的方法重置密码ctrl+X继续进行操作。3.mount -o remount,rw /sysroot 重新挂载根 给/sysroot读写权限给根系统一个读写权限(现在只有读权限)。4.chroot /sysroot ...
2020-03-15 01:13:13
645
原创 Lleetcode刷题(169求众数 三种解法)
解法一:【解题思路】查找计数问题,从第一个数开始count=1,遇到相同的就加1,遇到不同的就减1,减到0就重新换个数开始计数,总能找到最多的那个。和摩尔投票法很像,这个是换个数重新计数,需要遍历多次;而摩尔投票法只要遍历一次。稍后会介绍。【代码实现】class Solution { public int majorityElement(int[] nums) { ...
2019-12-18 15:57:08
301
原创 LeetCode刷题(905,766)
【题目要求】【解题思路】本题是排序题,需要循环,判断比较,交换。题目要求偶数在前,奇数在后,那么我选择采取双指针的方法:左指针寻找奇数值,右指针寻找偶数值,当符合交换条件时,进行两数交换;否则指针继续左右运动,寻找符合条件的奇偶值。当两指针相遇时,结束循环【代码实现】public int[] sortArrayByParity(int[] A) { if(A ==...
2019-12-18 09:23:35
99
原创 Java(异常)
常见异常数组角标越界ArrayIndexOutofBoundsException空指针异常NullPointerException栈溢出异常StackOverFlowError堆溢出异常OutofHeapError类型转换异常ClassCastException数学异常ArithmeticException数据转换异常NUmberFormat...
2019-12-10 17:16:13
91
原创 Java—(多态、内部类)
一、多态多态:可以理解为同一个事物在不同的场合具有不同的形态分为两种:编译时多态:在编译期间编译器根据函数实参的类型确定要调哪个函数(这个我们之前已经接触过了,和函数重载差不多,是同名函数,但是参数不同)编译时的多态性是通过函数重载或运算符重载来实现的。运行时多态:在程序运行期间才会去判断到底会调用哪个函数。这里我们主要讲的就是动态多态。运行时的多态性是通过虚函数与基类指针共同作用...
2019-12-10 16:51:24
130
原创 实现单例模式的八种方法
一.单例模式的定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例二.单例模式的特点 1、单例类只能有一个实例。 2、单例类必须自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 三.线程安全问题:一方面在获取单例的时候,要保证不能产生多个实例对象,后面会详细讲到五种实现方式;另一方面,在使用单例对象的时候,要注意单例对象内的实例变量是...
2019-12-02 19:58:02
1476
原创 Java—(代码块、单例模式、继承、final关键字、Object类、抽象类、接口)
一.代码块静态代码块:使用static关键字声明的代码。优先于main方法执行。在类中定义的静 态代码块会优先于构造块执行,静态代码只执行一次。不能调用非静态代码块。静态变量也有默认初始化。构造代码块:直接写在类中的代码块,只有在实例化对象的时候才会调用,并且优先于构造方法执行。每次实例化对象时都会执行构造中的代码,会执行多次。局部代码块:即普通代码块,是直接在方法或语句中定义的代码块。和m...
2019-12-02 17:43:41
443
1
原创 Java基础知识(面向对象、类、构造函数)
1.面向对象与面向过程面向对象:主要解决对象(别人)去解决问题找别人做:省时省力(不确定具体的底层实现)面向对象三大特点:封装 继承 多态封装:循环 函数 类继承:多态:+ 重载当面向封装了具体功能类,若要使用这个类,一般情况下,在Java中需要通过创建这个类的实体来使用。这个实体称之为对象。在开发中,我们是在不断的找封装不同功能的类。基于这些类,创建其对象,使用这些对象完成相应的操...
2019-11-27 13:21:42
218
原创 LeetCode1122数组的相对排序
【题目分析】该题就是计数排序的变种class Solution { public int[] relativeSortArray(int[] arr1, int[] arr2) { //找最大值和最小值 int min = arr1[0], max = arr1[0]; int i = 1; for(; i < a...
2019-11-27 09:50:12
106
原创 LeetCode 628、969、118
【题目分析】1.当数组长度为3,那么直接把三个数都取过来2.当数组中没有正数、最大值一定为负数。此时最大值为最大的三个负数的积3.当数组长度大于等于4,而且至少存在一个正数,最大值一定为正数。(此时能够保证,剩下的个数里,至少存在两个负数或两个正数)要想结果为正数,我们最少要使用一个正数,那么最大的正数肯定要参与运算。然后要使得剩下的两个数的积最大,要么我们就取次大的两个数,要么就取最小...
2019-11-26 17:06:20
128
原创 排序
冒泡排序(稳定)【原理】比较两个相邻的元素,将值大的元素交换至右端。【思路】依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。第一趟比较完成后,最后一个数一定是数组中最大的一个数,所以第二趟比较的...
2019-11-21 22:41:24
144
原创 五子棋游戏
【题目要求】五子棋是两个人之间的竞技活动,分为黑白两方棋盘大小为15* 15,五连子的方向为横、竖、斜率先连成五子的一方获胜。要求创建一个棋盘并开始游戏。【题目分析】首先要创建一个15*15的棋盘,对其进行初始化并打印出棋盘,接着开始游戏,黑白双方交替出棋,每出一个棋子判断该位置是否有棋子,若有,重新出棋,若没有,判断它的四个方向是否连成五子。四个方向可行棋区域如下:【代码实现】...
2019-11-20 11:15:35
893
原创 猜单词游戏
【题目要求】【代码实现】import java.util.*;class Class34{ //1.先生成一组单词 public static String[] words={"big","small","long","short"}; //2.随机抽取一个单词 public static String word=null; //3.创建该单词的一个...
2019-11-20 10:56:22
553
原创 豆机游戏
【题目要求】【题目分析】球的个数为路径个数槽子数=层数+1给槽子从0开始编号,小球下落过程中走R的次数即为落到的槽子编号。如 RLRL,两次R,小球落到2号槽子。具体如下图所示:【代码实现】class Class32{ public static void main(String[] args){ //1.提示用户输入球的个数 Sc...
2019-11-20 10:46:39
196
原创 求正多边形的面积
代码如下:import java.util.Scanner;class Home21_1{ public static void main(String[]args){ Scanner scanner=new Scanner(System.in); System.out.print("Enter the number of sides:"); ...
2019-11-08 13:30:22
1021
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人