网络安全入门学习第十五课——PHP基础
文章目录
- 一、WEB技术
- 1、什么是web
- 2、B/S架构
- 3、C/S架构
- 二、PHP概述
- 1、PHP是什么
- 2、PHP受欢迎的原因
- 3、基于MVC模式的PHP框架
- 4、常用编译工具
- 5、PHP环境搭建
- 6、开发工具
- 三、PHP基本语法格式
- 1、标记
- 2、输出语句
- 3、注释
- 4、标识符
- 四、数据与运算
- 1、常量
- 1.1、常量定义
- 1.2、预定义常量
- 2、变量
- 2.1、变量赋值
- 2.2、超级全局变量
- 3、数据类型
- 3.1、标量数据类型
- 3.2、php 特殊数据类型
- 3.3、数据类型检测
- 3.4、数据类型检测函数
- 3.5、数据类型转换
- 4、运算符
- 4.1、算数运算符
- 4.2、赋值运算符
- 4.3、比较运算符
- 4.4、逻辑运算符
- 4.5、递增递减运算符
- 4.6、位运算符
- 4.7、位移运算
- 4.8、错误运算符
- 4.9、三元运算符
- 4.10、运算符的优先级
- 五、if 语句
- 1、if` 单分支语句
- 2、if...else选择结构语句
- 3、三目运算符实现,if...elseif...else`语句
- 六、switch 语句
- 七、while 循环
- 八、do ...while循环
- 九、for 循环
- 十、continue 和break跳转指令
- 十一、换行
- 十二、流程替代语法
- 十三、文件包含语句
- 1、inclue语句
- 2、require语句与include语句区别
- 3、include_once()、require_once()和include()、require()的区别
一、WEB技术
1、什么是web
- 含义:Web的本意是蜘蛛网,在计算机领域中称为网页
- 构成:它是一个由很多互相链接的超文本文件组成的系统
- 资源:系统中每个有用的文件都称为“资源”,并由“通用资源标识符”(URI)进行定位,这些资源通过超文本传输协议(Hypertext Transfer Protocol,HTTP)传送给用户,用户单击链接即可获得资源。
2、B/S架构
- B/S(Browser/Server)架构:指的是浏览器/服务器端的交互
- B/S架构则是将浏览器作为客户端,用户只需要安装一个浏览器,就可以访问各种网站的服务,如百度搜索、新浪资讯等。
3、C/S架构
- C/S(Client/Server)架构:指的是客户端/服务器端的交互
- 客户端软件是专门开发出来的,如QQ、微信,用户必须安装软件才能使用
PHP运行于服务器端,既可以在C/S架构中为客户端软件提供服务器接口,也可以作为B/S架构来搭建动态网站。
二、PHP概述
1、PHP是什么
- PHP: Hypertext Preprocessor(超文本预处理器) 是一种通用开源脚本语言. 它是全球网站使用最多的脚本语言之一,全球前100万的网站中,有超过70%的网站是使用PHP开发的,这就是我们为什么要学php的原因,我们希望看懂php的代码好挖漏洞。
- PHP 脚本在服务器上执行,默认文件扩展名是 “.php”
2、PHP受欢迎的原因
开源免费、面向对象、快捷性、跨平台性、支持多种数据库、PHP中可嵌入HTML,编辑简单、实用性强、程序开发快
3、基于MVC模式的PHP框架
- 目前有很多流行的基于MVC模式的PHP框架,可以提高开发速度。例如,国外的有Zend Framework、Laravel、Yii、Symfony、CodeIgniter等;
- 国内也有比较流行的框架,如ThinkPHP。
4、常用编译工具
- Notepad++的特点是小巧,占用资源较少,非常适合初学者使用。 大家先直接用它就可以了
- NetBeans和Zend Studio功能强大(相当于python pycharm),但占用较多资源,使用较为复杂,适合专业的开发人员使用。
5、PHP环境搭建
使用 PHP 需要先安装环境,安装环境比较麻烦,需要安装Web服务、PHP应用服务器、MySQL管理系统。
Web服务:apache 和 nginx
PHP:多版本
MySQL:多版本
- 因为多环境、多版本、多系统,集成包就出现了。集成包(phpStudy、Xampp、宝塔面板、wdcp面板),安装很方便。
- 只要在您的 web 目录中创建 .php 文件即可,服务器将自动为您解析这些文件。不需要编译任何软件,或安装额外的工具。
- 由于 PHP 是免费的,大多数的 Web 主机都提供对 PHP 的支持。
6、开发工具
推荐使用vscode,原因:
- vscode 可以有函数提示,并且放上去可以提示这个函数干嘛的。
- ctrl +/ 自动给你多行注释了,写起来比较方便。
- 可以拷贝文件相对路径很方便放到浏览器上执行。
三、PHP基本语法格式
PHP每个语句结束必须写“;”作为结束符
1、标记
由于PHP 是嵌入式脚本语言,它在实际开发中经常会与HTML内容混编在一起,所以为了区分HTML与PHP代码,需要使用标记对PHP代码进行标识
当解析一个文件时,PHP 会寻找起始和结束标记,也就是告诉 PHP 开始和停止解析二者之间的代码。此种解析方式使得 PHP 可以被嵌入到各种不同的文档中去,而任何起始和结束标记之外的部分都会被 PHP 解析器忽略。

2、输出语句
常用输出语句
echo
print
print_r()
var_dump()
- echo:可将紧跟其后的
一个或多个字符串、表达式、变量和常量的值输出到页面中,多个数据之间使用逗号“,”分隔。 - print:与echo的用法相同,唯一的区别是print
只能输出一个值。 - print_r():PHP的
内置函数,它可输出任意类型的数据,如字符串、数组等。 - var_dump():不仅可以打印一个或多个任意类型的数据,还可以
获取数据的类型和元素个数。
示例:
<?php
echo 'helloworld\r\n';
print 'hello'
?>
3、注释
C++风格的单行注释://
Shell脚本语言风格的单行注释:#
多行注释:/* */
4、标识符
标识符:PHP程序开发中,经常需要自定义一些符号来标记一些名称,如变量名、函数名、类名等,这些符号被称为标识符。
标识符的定义需要遵循一定的规则,具体如下:
- 标识符
只能由字母、数字、下划线组成,且不能包含空格 - 标识符
只能以字母或下划线开头的任意长度的字符组成(不包含数字) - 标识符用做变量名时,区分大小写 a , a, a,A
- 如果标识符由多个单词组成,那么应
使用下划线进行分隔(例如:user_name) 合法标识符: itcast、itcast88、_itcast、username、password等。非法标识符:66itcast、it cast、123、@itcast等。
四、数据与运算
1、常量
常量就是在脚本运行过程中值始终不变的量。是一旦被定义就不能被修改或重新定义。
- 比如:数学中的圆周率π就是一个常量,其值就是固定且不能被改变的。
常量遵循标识符的命名规则,默认大小写敏感,习惯上常量名称总是使用大写字母表示。
1.1、常量定义
常量定义方式有两种:
- define() 函数
举例:
define('PAI', '3.14');
echo '圆周率=', PAI; // 输出结果:圆周率=3.14define('R', '5', true);
echo '半径=', R; // 输出结果:半径=5
echo '半径=', r; // 输出结果:半径=5
- 首个参数定义常量的名称
- 第二个参数定义常量的值
- 可选的第三个参数规定常量名是否对大小写不敏感。默认是 false。
如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
- const 关键字
举例:
const R = 6;
const P = 2 * R;
echo 'P=', P; // 输出结果:P=12
1.2、预定义常量
| 常量名 | 功能描述 |
|---|---|
| FILE | PHP程序文件名 |
| LINE | PHP程序中的当前行号 |
| PHP_VERSION | PHP程序的版本,如“7.1.4” |
| PHP_OS | 执行PHP解析器的操作系统名称,如“WINNT” |
| TRUE | 该常量是一个真值(true) |
| FALSE | 该常量是一个假值(false) |
| NULL | 该常量是一个空值(null) |
| E_ERROR | 该常量表示错误级别为致命错误 |
| E_WARNING | 该常量表示错误级别为警告 |
| E_PARSE | 该常量表示错误级别为语法解析错误 |
| E_NOTICE | 该常量表示错误级别为通知提醒 |
举例:
<?php
echo "PHP程序当前文件路径名: " .__FILE__;
echo "<br />";echo "PHP程序当前行数: " .__LINE__;
echo "<br />";echo PHP_VERSION;
echo "<br />";echo PHP_OS;
?>
2、变量
概念:变量是用于存储信息的"容器"。
组成:在PHP中,变量是由$符号和变量名组成的。
规则:变量名的命名规则与标识符相同。
举例:
如$number、$_it为合法的变量名,而$123、$*math为非法变量名。
2.1、变量赋值
由于PHP是一种弱语言,变量不需要事先声明,就可以直接进行赋值使用。
- 实现方式:一种是默认的
传值赋值,另一种是引用赋值。 - 传值赋值:变量默认总是传值赋值,将“=”右边的数据赋值为左边的变量。
- 引用赋值:所谓引用赋值就是在要赋值的变量前添加“&”符号。
- 两种实现方式的区别:传值赋值方式当一个变量值发生改变时,不影响另一个变量;而引用赋值的方式,另一个变量会随之变化。
示例:
<?php
//变量定义
$a=10; //将常量值赋给变量,会为a分配内存空间
$b=$a; //变量赋值给变量,b也分配了内存空间,a和b的内存空间互不干扰
$c=&$a; //引用是不会为c分配空间的,c和a是共用一份空间的。可以把c理解成是一个快捷方式。
echo $a,PHP_EOL;
echo $b,PHP_EOL;
echo $c,PHP_EOL;
$c =99;
echo '重新打印a b c变量,检查哪几个变量值变更了,说明了什么问题',PHP_EOL;
echo $a,PHP_EOL;
echo $b,PHP_EOL;
echo $c,PHP_EOL;
?>
#PHP_EOL 是一个空格,兼容更大平台。
2.2、超级全局变量
PHP中预定义了几个超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
PHP 超级全局变量列表:
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
-
预定义的 $_GET 变量用于收集来自 method=“get” 的表单中的值。
从带有 GET 方法的表单发送的信息,对任何人都是可见的(会显示在浏览器的地址栏),并且对发送信息的量也有限制。 -
预定义的 $_POST 变量用于收集来自 method=“post” 的表单中的值。
从带有 POST 方法的表单发送的信息,对任何人都是不可见的(不会显示在浏览器的地址栏),并且对发送信息的量也没有限制。 -
预定义的
$_REQUEST变量包含了$_GET、$_POST和$_COOKIE的内容。
$_REQUEST 变量可用来收集通过 GET 和 POST 方法发送的表单数据。 -
也许也碰到过这样的需求:传递某个参数时,如果表单POST来,就用
$_POST的值,如果没有,就获取$_GET里的值。很多人就会想到$_REQUEST,因为当$_GET和$_POST同时有同名的参数时,$_REQUEST里的就是$_POST,满足了$_POST优先的需求(这个谁优先其实是在php.ini里配置的,默认POST是比GET优先的)。 -
为什么
.__FILE__被称为常量而$_GET称为变量呢?因为.__FILE__代表了当前文件名是不会变化的$_GET请求随着请求的不同它的值是不一样的。
3、数据类型
PHP中支持3类数据类型:
- 标量数据类型(Boolean布尔类型、int整型、float浮点型、string字符串类型)
- 复合数据类型(array数组、object对象)
- 特殊数据类型(resource资源、null空类型)
在PHP中所讲的数据类型指的是变量所保存的数据本身。
3.1、标量数据类型
1)Boolean布尔类型
布尔型是PHP中较常用的数据类型之一,通常用于逻辑判断。
表示事物的“真”和“假”,并且不区分大小写。
2)int整型
整型可以由十进制、八进制和十六进制数指定,用来表示整数
- 1、在它前面加上“-”符号,可以表示负数。
- 2、八进制数使用0~7表示,前缀为0
- 3、十六进制数使用0-9与A~F表示,以0x为前缀
举例:
<?php$number = 0;var_dump($number);echo '<hr>';$number = 67;var_dump($number);echo '<hr>';$number = -322;var_dump($number);echo '<hr>';$hex = 0xa; //将16进制转换为10进制var_dump($hex);echo '<hr>';$oct = 012; //将8进制转换为10进制var_dump($oct);
?>
3)float浮点型
浮点数是程序中表示小数的一种方法,或是指数形式。
通常使用标准格式和科学计数法格式表示。
4)string字符串类型
概念:字符串是由连续的字母、数字或字符组成的字符序列。
表示方式:分别为单引号、双引号、heredoc语法结构和nowdoc 语法结构。
注意:双引号里面可以解析变量,单引号输出字符串,单引号跟双引号区别,对比下面两个输出:
<?php$str1='I like php';$str2="I like php";echo $str1;echo '<br>';echo $str2;
?>
输出结果:
I like php
I like php
<?php$test='php';$str1='I like $test';$str2="I like $test";echo $str1;echo '<br>';echo $str2;
?>
输出结果:
I like $test
I like php
!注意:双引号包裹起来的表达式中间如果存在“$”符号,是会自动检索这个变量的值。
5)php中字符串拼接:
1、PHP中可以使用字符串连接符.来拼接字符串,它可以把两个或两个以上的字符串拼接成一个新的字符串。
2、字符串拼接有两种形式,分别是直接使用字符串连接符.和赋值运算符.=。
3.2、php 特殊数据类型
NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。
NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。
可以通过设置变量值为 NULL 来清空变量数据。
在下列情况下一个变量被认为是NULL:
- 被赋值为NULL。
- 尚未被赋值。
- 被unset()。
3.3、数据类型检测
PHP中变量的数据类型通常不是开发人员设定的,而是根据该变量使用的上下文在运行时决定的。常使用var_dump()函数
3.4、数据类型检测函数
PHP中提供了许多检测数据类型的函数,但大致可以分为两种:gettype()函数和is_*()类函数。
is_*()如果检测的值符合检测的数据类型,则返回true,否则返回false。
is_*函数
| 函数名称 | 功能描述 |
|---|---|
| is_bool() | 检测是否属于布尔类型 |
| is_string() | 检测是否属于字符串类型 |
| is_float() | 检测是否属于浮点类型 |
| is_int() | 检测是否属于整型 |
| is_null() | 检测是否属于空值 |
| is_array() | 检测是否属于数组 |
| is_resource() | 检测是否属于资源 |
| is_object() | 检测是否属于对象类型 |
| is_numeric() | 检测是否属于数字或数字组成的字符串 |
3.5、数据类型转换
时机:在PHP中,对两个变量进行操作时,若其数据类型不相同,则需要对其进行数据类型转换。
分类:通常情况下,数据类型转换分为自动类型转换和强制类型转换。
1、
自动类型转换,指的是当运算需要或与期望的结果类型不匹配时,PHP将自动进行类型转换,无需开发人员做任何操作。
分类:最常见的有3种,分别为转换成布尔型、转换成整型和转换成字符串型。
2、
强制类型转换,就是在编写程序时手动转换数据类型,在要转换的数据或变量之前加上“(目标类型)”即可。
4、运算符
运算符,专门用于告诉程序执行特定运算或逻辑操作的符号。根据运算符的作用,可以将PHP语言中常见的运算符分为9类。
| 运算符类型 | 作用 |
|---|---|
| 算术运算符 | 用于处理四则运算 |
| 赋值运算符 | 用于将表达式的值赋给变量 |
| 比较运算符 | 用于表达式的比较并返回一个布尔类型的值,true或false |
| 逻辑运算符 | 根据表达式的值返回一个布尔类型的值,true或false |
| 递增或递减运算符 | 用于自增或自减运算 += php有++ |
| 字符串运算符 | 用于连接字符串 . |
| 位运算符 | 用于处理数据的位运算 |
| 错误控制运算符 | 用于忽略因表达式运算错误而产生的错误信息 |
| instanceof | 用于判断一个对象是否是特定类的实例 |
4.1、算数运算符
是用来处理加减乘除运算的符号,也是最简单和最常用的运算符号

注意:++a和a++,++a相当于a这个变量先自增后运算,a++就相当于先运算后自增。
4.2、赋值运算符
是一个二元运算符,即它有两个操作数。它将运算符右边的值 赋给左边的变量

例子:
$a = $b = c = 5 ; ①将 5 赋值给变量 c = 5; ①将5赋值给变量 c=5;①将5赋值给变量c
②再把变量 c 的值赋值给变量 c的值赋值给变量 c的值赋值给变量b
③把变量 b 的值赋值变量 b的值赋值变量 b的值赋值变量a,表达式赋值完成
$i += 1;
等价于:
$i = $i + 1;$str .= 'Tom';
等价于:
$str = $str . 'Tom';
4.3、比较运算符
是用来对两个变量或表达式进行比较,其结果是布尔类型的true或false

注意:==和===的区别,==是比较内容,===不单比较内容还比较类型
4.4、逻辑运算符
是在程序开发中用于逻辑判断的符号,其返回值类型是布尔类型。就是常说的:与、或、非

4.5、递增递减运算符
也称作自增自减运算符,可被看作是一种特定形式的复合赋值运算符

- “+ +”或“- -”放在操作数的前面,则先进行自增或自减运算,再进行其他运算。
- “+ +”或“- -”放在操作数的后面,则先进行其他运算,再进行自增或自减运算。
4.6、位运算符
是针对二进制数的每一位进行运算的符号,它专门针对数字0和1进行操作。

按位与(都是1才是1)00000110
& 00001011
——————————————————00000010按位或(有一个是1就是1)00000110
| 00001011
——————————————————00001111按位非(全部取反)
~ 00000110
——————————————————11111001按位异或(两个值都相同就是0,两个值不相同就1)00000110
^ 00001011
——————————————————00001101
4.7、位移运算
是针对二进制数的每一位进行左移或者右移
左移:00001011 <<1
——————————————————00010110右移:00001011 >>1
——————————————————00000101
4.8、错误运算符
PHP的错误控制运算符使用 @ 符号来表示,把它放在一个PHP表达式之前,将忽略该表达式可能产生的任何错误信息。
简单来说就是强制执行代码,忽略错误,不报错。
4.9、三元运算符
格式:(expr1) ? (expr2) : (expr3)
对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
自 PHP 5.3 起,可以省略三元运算符中间那部分。表达式 expr1 ?: expr3 在 expr1 求值为 TRUE 时返回 expr1,否则返回 expr3。
4.10、运算符的优先级
左结合方向表示同级运算符的执行顺序为从左到右
右结合方向则表示执行顺序为从右到左
与、或、非优先级是:not > and > or
五、if 语句
1、if` 单分支语句

2、if…else选择结构语句

3、三目运算符实现,if…elseif…else`语句

六、switch 语句
概念:switch语句也是多分支语句,功能与if系列条件语句相同,不同的是它只能针对某个表达式的值作出判断,从而决定执行哪一段代码。

七、while 循环
while循环语句,是根据循环条件来判断是否重复执行这一段代码的

八、do …while循环
概念:do…while循环语句的功能与while循环语句类似
唯一的区别在于,while是先判断条件后执行循环体,而do…while会无条件执行一次循环体后再判断条件。

九、for 循环
for循环语句是最常用的循环语句,它适合循环次数已知的情况
for关键字后面小括号“()”中包括了三部分内容
- 初始化表达式
- 循环条件
- 操作表达式
它们之间用“;”分隔,{}中的执行语句为循环体
举例:求0-100之间奇数之和:$sum=0;for($i=0;$i<=100;$i++) {if($i%2==1){$sum+=$i;} }echo $sum;?>求0-100之间偶数之和:$sum=0;for($i=0;$i<=100;$i+=2) {$sum+=$i;}
echo $sum;
十、continue 和break跳转指令
continue语句与break语句的区别在于,前者continue用于结束本次循环的执行,开始下一轮循环的执行操作;后者break 用于终止当前循环,跳出循环体。
break语句可应用在switch和循环语句中,其作用是终止当前语句的执行,跳出switch选择结构或循环语句,执行后面的代码。
十一、换行
PHP 中换行可以用 PHP_EOL 或 <hr> 来替代,以提高代码的源代码级可移植性
十二、流程替代语法
大量的HTML与PHP代码混合编写时,为了方便区分流程语句的开始和结束位置,可以使用PHP提供的替代语法进行编码。
<!-- 输出1~99之间的偶数 -->
<ul><?php for ($i = 1; $i < 100; ++$i){ ?><?php if ($i % 2 == 0){ ?><li> <?=$i?> </li><?php } ?><?php } ?>
</ul><!-- 输出1~99之间的偶数 -->
<ul><?php for ($i = 1; $i < 100; ++$i): ?><?php if ($i % 2 == 0): ?><li> <?=$i?> </li><?php endif; ?><?php if ($i % 2 == 0): ?><li> <?=$i?> </li><?php endif; ?><?php endfor; ?>
</ul>
备注:“<?= ?>”是短标记输出语法,自PHP 5.4起短标记关闭的情况下仍然可用
流程控制(包括 if,while,for,foreach,switch)这几个语句有替代语法。
左花括号{换成冒号:,把右花括号}分别换成 endif;,endwhile;,endfor;,endforeach; 以及 endswitch;
十三、文件包含语句
作用:在程序开发中,会涉及到多个PHP文件。为此,PHP提供了包含语句,可以从另一个文件中将代码包含进来。只需要写对文件的路径。
有哪些包含语句:
include、require、include_once、require_once
当正常执行的时候被包含文件的变量才可以引用到。
1、inclue语句
具体语法:include '文件路径';
“文件路径”指的是被包含文件所在的绝对路径或相对路径。
- 所谓绝对路径就是从盘符开始的路径,如“C:/web/test.php”。
- 所谓相对路径就是从当前路径开始的路径,假设被包含文件test.php与当前文件所在路径都是“C:/web”,则其相对路径就是“./test.php”。
在相对路径中,./表示当前目录,../表示当前目录的上级目录。
2、require语句与include语句区别
include()引入文件时,如果找不到文件 include语句会发生警告信息并继续执行;require()引入文件时文件不存在会发生致命错误,程序终止执行。
require()语句一般放在php脚本页面的最前边,在php执行前,先读入require()引入的文件,文件的内容会变成此脚本的一部分,但是出现错误,会立即退出。
include()语句一般在用到时才引入,所以经常是在流程控制的处理区段中,php脚本在执行到它时,才会将文件包含进来。
也就是说require()是预加载机制,位置在脚本的最前边,一开始就引入所有可能用到的文件;include()是即用即加载,位置灵活。
3、include_once()、require_once()和include()、require()的区别
include()、require()执行包含的文件,不会对引入的文件进行比较判断,可能会出现重复包含的情况;
include_once()、require_once()会在包含时先判断文件是否存在,已经包含过了就不在包含,这样的引入方式可以节约资源,又可以避免重复定义。
相关文章:
网络安全入门学习第十五课——PHP基础
文章目录 一、WEB技术1、什么是web2、B/S架构3、C/S架构 二、PHP概述1、PHP是什么2、PHP受欢迎的原因3、基于MVC模式的PHP框架4、常用编译工具5、PHP环境搭建6、开发工具 三、PHP基本语法格式1、标记2、输出语句3、注释4、标识符 四、数据与运算1、常量1.1、常量定义1.2、预定义…...
电子科技大学 数学专业-功不唐捐,玉汝于成
电子科技大学 数学专业 功不唐捐,玉汝于成 1.本科背景 本科是坐落于湖南湘潭的湖南科技大学,专业为网络工程专业,因热爱数学专业,所以决定跨考数学专业。 本科专业课平均成绩85,排名10/104。CET 4 474分,…...
Android10.0 iptables用IOemNetd实现删除子链功能的实现
1.前言 在10.0的系统rom定制化开发中,在system中netd网络这块的产品需要中,会要求设置屏蔽ip地址之内的功能, liunx中iptables命令也是比较重要的,接下来就来在IOemNetd这块实现删除创建子链的相关功能 2. iptables用IOemNetd实现删除创建子链功能的实现的核心类 syste…...
OpenGL光照之光照贴图
文章目录 漫反射贴图镜面光贴图放射光贴图代码 每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样子能够很容易在一个光照的场景中给每个物体一个独特的外观,但是这仍不能对一个物体的视觉输出提供足够多的灵活性。 我们将整个物体的材质定义为一个…...
2018~2019 学年第二学期《信息安全》考试试题(B 卷)
北京信息科技大学 2018 ~2019 学年第 2 学期 《信息安全》课程期末考试试卷 B 课程所在学院:计算机学院 适用专业班级:计科 1601-06,重修 考试形式:(闭卷) 一. 选择题(本题满分 10 分,共含 10 道小题,每小题 1 分) 网络中存在的安全漏洞主…...
LeetCode-C#-0002.两数相加
0.声明 该题目来源于LeetCode 如有侵权,立马删除。 解法不唯一,如有新解法可一同讨论。 1.题目 0002两数相加 给你两个非空的链表,表示两个非负的整数,它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一…...
访问修饰符private,default,protected,public访问等级区别
private:private是最严格的访问修饰符,它将成员声明为私有的。私有成员只能在声明它们的类内部访问,其他类无法直接访问私有成员。这样可以确保数据的封装性和安全性。 default(默认):如果没有明确指定访问…...
阿里云(Linux)安装Docker教程
首先安装docker,需要找到帮助文档,那肯定是我们的官网: Install Docker Engine on CentOS | Docker Documentation 找到对应的位置,这里是安装在CentOS中,版本需要Ce…...
Linux C编程基础:获取时间
1.前言 对于linux下的编程,无论是用户态还是内核态,时间获取都是经常需要使用到的。以下分别从用户态和内核态整理了几个常用的时间获取接口,供编写代码时快速查阅。 2.用户态获取时间 2.1 clock_gettime() #include <time.h>int c…...
Spring核心注解
1、Bean注解 作用:用于把当前方法的返回值作为bean对象存入spring的ioc容器中位置: 一般出现在方法上面属性: name:用于指定bean的id。当不写时,默认值是当前方法的名称细节:当我们使用注解配置方法时,如果方法有参数,…...
哈希表原理,以及unordered_set/和unordered_map的封装和迭代器的实现
哈希表 unordered系列unordered_set和unordered_map的使用哈希哈希概念哈希冲突哈希函数闭散列开散列哈希表的扩容哈希表源码(开散列和闭散列) 封装unordered_set/和unordered_map,以及实现迭代器节点定义unordered_set定义unordered_map定义…...
如何把歌曲里的伴奏音乐提取出来,分享几个方法给大家!
对于一首歌,我们都知道,它有两部分组成:背景音乐人声。这两者合在一起,便是我们经常听的歌。部分用户想要直接获取歌曲伴奏,那么可以在UU伴奏网上下载。 操作方法比较简单,直接搜索想要的歌曲名称就可以了…...
区块链产业快速发展 和数集团开启区块链应用新时代
UTONMOS区块链游戏要来了。 就在5月底,UTONMOS品牌所属公司上海和数集团在泰国发布了【神念无界】系列的多款国际版链游,包括【神念无界-源起山海】、【北荒传奇】、【神宠岛】、【神农园】等区块链游戏。 以【神念无界-源起山海】为例,其是…...
初出茅庐的小李博客之常见字符串函数使用
C语言字符数组与字符串数组 在C语言中,字符数组和字符串数组实际上是同一种类型。字符串是由字符组成的字符数组,通常以空字符 ‘\0’ 结尾。C语言中的字符串是一种常见的数据类型。我们可以通过两种方式定义字符数组跟字符串数组 char charArray[10];…...
运筹学工程化流程和常见的运筹学算法分类以及常见软件
文章目录 前言运筹学工程化流程运筹学算法分类运筹学软件参考文献 前言 自2023年初新冠疫情管控放开后,各家公司各类岗位的人员都有被裁的消息传出,但用人市场上运筹学算法岗位却反其道行之,用工出现了激增。可以预见的是数据算法将从传统的…...
JAVA面向对象(三)
第三章 封装与继承 目录 第三章 封装与继承 1.1.封装 1.2.包 1.3.访问权限控制 1.4.static修饰符 1.4.1.成员变量 1.4.2.成员方法 1.4.3.代码块 总结 内容仅供学习交流,如有问题请留言或私信!!!!࿰…...
前端面试题---跨域处理和异常、错误处理
一.跨域处理 在前端开发中,当我们在浏览器中向不同域名或端口发起请求时,就会遇到跨域请求的限制。为了处理跨域请求,有几种常见的方法 1.JSONP(JSON with Padding) JSONP是一种利用 <script> 标签可以跨域加载…...
网络安全之反序列化漏洞分析
简介 FastJson 是 alibaba 的一款开源 JSON 解析库,可用于将 Java 对象转换为其 JSON 表示形式,也可以用于将 JSON 字符串转换为等效的 Java 对象分别通过toJSONString和parseObject/parse来实现序列化和反序列化。 使用 对于序列化的方法toJSONStrin…...
19 贝叶斯线性回归
文章目录 19 贝叶斯线性回归19.1 频率派线性回归19.2 Bayesian Method19.2.1 Inference问题19.2.2 Prediction问题 19 贝叶斯线性回归 19.1 频率派线性回归 数据与模型: 样本: { ( x i , y i ) } i 1 N , x i ∈ R p , y i ∈ R p {\lbrace (x_i, y_…...
第七十天学习记录:高等数学:微分(宋浩板书)
微分的定义 基本微分公式与法则 复合函数的微分 微分的几何意义 微分在近似计算中应用 sin(xy) sin(x)cos(y) cos(x)sin(y)可以用三角形的几何图形来进行证明。 假设在一个单位圆上,点A(x,y)的坐标为(x,y),点B(x’, y’)的坐标为(x’, y’)。则以两点…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
【论文阅读28】-CNN-BiLSTM-Attention-(2024)
本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
宇树科技,改名了!
提到国内具身智能和机器人领域的代表企业,那宇树科技(Unitree)必须名列其榜。 最近,宇树科技的一项新变动消息在业界引发了不少关注和讨论,即: 宇树向其合作伙伴发布了一封公司名称变更函称,因…...
MyBatis中关于缓存的理解
MyBatis缓存 MyBatis系统当中默认定义两级缓存:一级缓存、二级缓存 默认情况下,只有一级缓存开启(sqlSession级别的缓存)二级缓存需要手动开启配置,需要局域namespace级别的缓存 一级缓存(本地缓存&#…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...


