Java-反射
什么是反射? 在Java中,反射是指程序在运行时动态地获取类信息、构造对象、调用方法和访问属性的能力。 换句话说,反射使得程序可以在运行时检查和操作任意一个类的成员变量、方法和构造方法,而不需要在编译时就确定下来。 这里就简单学习一下如何通过反射达到执行命令 先看一行简单的代码: Runtime.getRuntime().exec(command)…
最短路径问题
在之前的文章写过两种搜索方式 深度优先搜索 and 广度优先搜索 然后用这两种搜索方式来解决了图的一些问题 这里学习几种新的算法 Floyd-Warshall 简单了解一下👇 介绍:Floyd-Warshall算法是有Floyd于1962年提出,其可以计算有向图中任意两点之间的最短路径,此算法利用动态规划的思想将计算的时间复杂度降低为 O(v^3)…
图的遍历
深度和广度优先是什么? 之前学习过深度和广度优先搜索 实际上深度和广度都是针对图的遍历而言的 什么是图? 请看下图,这是一个简单的有向图👇 下面是一个简单的无向图👇 简单的说,图就是由顶点和边组成的,在学离散数学的时候也涉及到了图论的相关知识 那么使用深度优先搜索来遍历上面这个无向图,得到的顺序就是相应的图中红字(时间戳 下面就这个无向图再来理解一…
深度与广度搜索
前言 在说搜索方式之前 先讲一个简单的问题:求数的全排列 比如说,123 的全排列就是:123、132、213、231、312、321 这很简单吧 全排列的个数就是这个数的位数的阶乘,即 123 的全排列的个数是 ( 3!=3×2×1) 假如要用 C 语言来写呢? 应该很快就能想到,3个for循环嘛 分别控制位上的数字不重复就行了 那么假如数字更大…
栈、队列、链表
队列 队列的概念:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表 队列的两端: 队尾:进行插入操作的一端称为队尾 队头:进行删除操作的一端称为队头 先举一个例子: 给出一段序列: 6 3 1 7 5 8 9 2 4 对这段序列进行以下操作:删除第一个数字,将第二个数字移到末尾,删除第三个数字,将第四个数字移到末尾……以此类推,直…
几个简单的排序
从软工毕业学长那里淘来一本《啊哈!算法》 然后跟着这本书学习学习,记录一下 桶排序 在生活中会遇到一些排序问题,比如站队列的时候要按身高排序、考试的名次要按分数排序、网上购物有时会按价格排序…… 对于一组很简单的数字,桶排序无疑是最快最简单的 “桶”的理解:一个一维数组,大小为输入数字的最大值+1,数组的每一个下标都是一个标签,默认每一个数组元素的…
CTFshow-月饼杯&吃瓜杯
日常练习题 题目来源:ctf.show 月饼杯 Web1_此月圆 题目附件中有的index.php <?php class a { public $uname; public $password; public function __construct($uname,$password) { $this->uname=$uname; $…
关于Nodejs原型链污染
继承与原型链 在JavaScript中只有一种结构:对象(连函数也是一种对象)。 每个对象都有一个私有属性,指向另一个名为“原型”(prototype)的对象。 原型对象也有自己的一个原型,一层一层的直到一个对象的原型为NULL,Null处于原型链的顶端,或者说原型链的最后一环。 继承属性 JavaScript 对象有一个指向一个原型对象的链。 当…
浅谈Redis与SSRF
什么是Redis? Redis是现在最受欢迎的NoSQL数据库之一,Redis是一个使用ANSI C编写的开源、包含多种数据结构、支持网络、基于内存、可选持久性的键值对存储数据库。 RESP协议 RESP 协议是 redis 服务之间数据传输的通信协议,redis 客户端和 redis 服务端之间通信会采取 RESP 协议因此我们后续构造 payl…
SYC面试遇到的问题
上个星期事情是真的多,要考网安导论、操作系统、四级,中间还找了一晚上去实验室面试。师傅们的提问还是比较细节的,自己平时学习的时候没怎么关注过原理,回答的时候好多都回答不上来,这里就重新学习一下。 利用sql注入进行读写文件 在数据库中into outfile语句把表数据导出到一个文本文件中 load_file函数读取一个文件并将其内容作为字符串返回…