网络安全零基础培训 L1-8 PHP基础语法
文章目录
- 1 认识PHP
- 1.1 PHP简介
- 1.2 主要的特点
- 1.3 跨平台性
- 1.4 与数据库的良好集成
- 1.5 开源和社区支持
- 1.6 应用场景
- 1.6.1 网站开发
- 1.6.2 内容的管理程序
- 1.6.3 Web应用程序开发
- 1.6.4 为什么学习了解PHP
- 2 PHP的基础语法
- 2.1 创建第一个PHP程序
- 2.2 如何写注释
- 2.3 PHP的变量
- 2.4 PHP变量声明
- 2.5 数据类型
- 2.5.1 字符串类型(string)
- 2.5.2 整数类型(integer)
- 2.5.3 浮点数类型(float)
- 2.5.4 布尔类型(boolean)
- 2.5.5 数组类型(array)
- 2.5.6 空值类型(null)
- 3 PHP函数
- 3.1 PHP函数准则
- 3.1.1 实例
- 3.1.2 局部变量(Local)
- 3.1.3 全局变量(Global)
- 3.1.4 静态变量(Static)
- 3.2 面向对象
- 3.2.1 对象的主要三个特征
- 3.2.2 面向对象编程的三个主要的特性
- 3.2.3 面向对象的内容
- 3.2.4 PHP类定义
- 3.2.5 小练习
1 认识PHP
1.1 PHP简介
PHP是一种广泛使用的开源服务器端脚本语言,主要用于Web开发,它可以嵌入到HTML中,特别适合用于创建动态网页和web应用程序。
1.2 主要的特点
易于学习和使用:
PHP的语法类似于c,java等语言,对于有编程基础的开发人员来说,很容易上手,当然没有基础的话也不需要担心,PHP的语法相对的简单,新手学习也会比较轻松
PHP适合快速开发项目,在经费不充裕或者时间短的情况下,是非常好的选择,它提供了丰富的函数库和扩展,能够快速的实现各种功能,例如数据库连接,文件操作,图像处理,会话管理等
1.3 跨平台性
可以在多种操作系统上运行,如windows,Linux,macos等,PHP在不同的服务器环境下有良好的工作
1.4 与数据库的良好集成
可以方便的与各种数据库系统进行交互,如MySQL,Oracle等实现数据库的存储,检索,更新和删除等操作
1.5 开源和社区支持
作为开源语言,PHP拥有庞大的开发者社区,开发人员可以共享代码,经验和解决方案,大量的开源框架和工具可以使用的,提高了开发的效率
1.6 应用场景
1.6.1 网站开发
可以用于开发各种类型的网站,从简单的个人博客到复杂的电子商务网站和社交网络
1.6.2 内容的管理程序
许多流行的CMS(一种用于创建,管理,发布和修改数字内容的软件系统)都是使用PHP开发的,方便用户管理网站的内容
1.6.3 Web应用程序开发
创建在线的论坛,在线投票系统,电子邮件系统等
1.6.4 为什么学习了解PHP
- 第二阶段的很多的靶场,都是由php语言区写的,学习php有助于后续的漏洞和攻防的学习
- 黑客攻击的网站不一定都是一种编写的,我们后续还会去学习新的语言,以php作为切入点,后续我们学习其他语言也会比较轻松简单
2 PHP的基础语法
写php会用到的工具:phpstorm专门用于写php的一个工具
2.1 创建第一个PHP程序
php脚本以;
结束
php中的每个代码都必须以;
结束,分号是一种分隔符,用于把指令集分开来
php中代码的缩进主要是为了提高代码的可读性和可维护性,可以适当的缩进
通过php有两种在浏览器输出文本的指令:echo
和print
echo
和print
的区别:
echo
:可以输出一个或者多个数据print
:只允许输出一个数据
提示:echo
输出的速度比print
的快
<?php#当所有要输出的数据都是用引号包裹的时候,用英文的点进行分隔#当所有要输出的数据有有引号有不用引号的情况下,用英文的逗号分隔echo "hello"."<br>"; #默认不换行的echo "liuxiao", 1234,"<br>";print "hello";
?>
2.2 如何写注释
注释就是对代码的解释说明,注释是方便程序员可以看到的
注释是代码中不会被执行的文本,用于:
-
解释代码功能
-
临时禁用代码
-
方便团队协作阅读代码
注释的三种方法:
//单行注释
#也是单行的注释
禁用代码或给代码添加备注的时候会用到
/*多
行
注
释*/ 只要被/**/包裹住的全部更改为注释
2.3 PHP的变量
变量:是程序中一个用于临时存储数据的容器,这个容器在程序启动后存在,在程序停止后销毁
PHP变量与代数类似,例如:
x=5
y=6
z=x+y
在代数,我们使用字母(如x
),并给它赋值(等于5)从上面的表达式z=x+y
,我们可以计算出z
的值为11,在php中,这些字母被称为变量,变量可以是很短的名称(如x
和y
)或者更具描述的名称
变量的命名规则
-
变量以
$
符号开始,后面跟着变量的名称 -
变量名必须以
字母
或者下划线
字符开始 -
变量名只能包含
字母
,数字
以及下划线
(A-z,0-9和_)不能包含空格的
变量是用于存储数据的容器;php语句和php变量都是区分大小写的
<?php//变量设置$开始 变量值不能是数字$name = "刘小"$a1 = 20;$a2 = 30;
?>
2.4 PHP变量声明
/*趣味实验:
我今天一共有一百块钱,买水果花了43,买菜花了19,现在还有多少?*/
<?php//变量设置$开始 变量值不能是数字$name = "老王";$a1 = 43;$a2 = 19;$a3 = 100;//我今天一共有一百块钱,买水果花了43,买菜花了19,现在还有多少?$a = 100-43-19; #$a = $a3-$a2-$a1;echo "我今天一共有一百块钱,买水果花了43,买菜花了19,现在还有",$a,"元";?>
2.5 数据类型
在php中变量可以存储不同的类型的数据,在不同数据类型可以做不一样的事情。
2.5.1 字符串类型(string)
#在编程中用引号包裹起来的一串字符就是字符串数据
#一个字符串就是一串字符数据
#在php中用单引号或者双引号包裹$aa = "我是一个整数";echo $aa;#字符串拼接$ab = "我是成绩第一";echo $aa.$ab;#当所有要输出的数据都是用引号包裹的时候,用英文的点进行分隔
2.5.2 整数类型(integer)
/*整数必须至少有一个数字
整数不能包含空格
整数是没有小数的
整数可以是正数或者负数*///整数类型$int1 = 10;$int2 = -20;echo "int1=",$int1,"int2=",$int2,"<br>"; #换行# var_dump(要查看信息的数据)var_dump($int2);
2.5.3 浮点数类型(float)
// 浮点数类型(小数) -Float$fo1 = 3.14;$fo2 = -3.14;print "<br>";echo "fo1=",$fo1,"fo2=",$fo2,"<br>";var_dump($fo2) #查看数据的属性
2.5.4 布尔类型(boolean)
什么是布尔类型?
布尔类型非常特殊,其只有两个数据,分别是TRUE
(1)和FALSE
(0)
布尔类型用于?
布尔类型通常用于条件判断,在接下来的学习中你会学到更多关于条件控制的知识。
//布尔类型 (只有两个值)$bo1 = true;$bo2 = false;echo "bo1=",$bo1, "bo2=",$bo2,"<br>";
//bo2输出显示空var_dump($bo2);var_dump($bo1);print "<br>";
2.5.5 数组类型(array)
什么是数组?
由多个值组成的,一个完整的数据序列,就是数组。
数组有什么用?
数组可以在一个变量中存储多个值
如何创建数组?
在php中,array()
函数用于创建一个数组
如何访问索引数组中的值?
数组中的每个值,电脑都会给其标序号,序号从0开始,这个序号我们称为下标 程序员通常通过下标访问数组的每个值。
下标取值语法:数组名{下标}
如何访问关联数组中的值?
关联数组中每个值会对应一个键,程序员通常通过键访问数组的每个值。(键值对)
关联取值语法:数组名{键}
在下边示例中创建了一个数组,然后使用下标取值的方式,打印数组中的每个元素。
//数组类型(由多个值组成的,一个完整的数据序列,就是数组。)
//索引数组
//array(值1, 值2, 值3)
// 下标 0 1 2//下标取值的语法:数组变量名{下标值}$li1 = array("张三","李四","王五");echo "通过下标取值: ",$li1{2};print "<br>";//关联数组语法:array(键1=>值1 , 键2=>值2 , 键3=>值3)//关联取组语法:数值变量名{键}$li2 = array("姓名"=>"liuxiao","性别"=>"男","年龄"=>"18");echo "通过键取值: ",$li2{"姓名"};
2.5.6 空值类型(null)
null
值表示变量没有值;可以通过设置变量值为null
来清空变量数据。
//null值$li2 = null;echo $li2{"姓名"};var_dump($li2);print "<br>";
3 PHP函数
函数是程序员提前定义好的,可以重复使用的代码块;
PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 1000 个内建的函数。在本章中,将为你讲解如何创建自己的函数。如要在页面加载时执行脚本,可以把它放到函数里。函数是通过调用函数来执行的。你可以在页面的任何位置调用函数。
function 函数名(参数列表){//要执行的代码
}
3.1 PHP函数准则
- 函数的名称应该提示出它的功能
- 函数名称以字母或下划线开头(不能以数字开头的)
3.1.1 实例
- PHP函数参数
<?phpfunction add($a,$b){echo "a+b=$a+$b","<br>";#函数的执行add(7,9);add(31,8);add(2,6);add(2131,1232);?>
- PHP返回值
如果需要函数返回一个值,那么我们就会使用到return
语句
# 基础语法
function 函数名(参数列表){//要执行的代码return值;}<?phpfunction acc($c,$d){//函数的功能代码,返回变量c+d的结果return $c+$d;}//函数的调用$res1 = acc(1,2);echo $res1,"<br>";$res2 = acc(8,9);echo $res2;?>
- PHP变量作用域问题
- 局部变量
- 全局变量
- 静态变量
3.1.2 局部变量(Local)
局部变量是在函数或方法内部声明的变量,它们的作用域局限于声明他们的板块(即函数或方法体)内,一旦离开该代码块,这些变量就不能再被访问。
echo "变量的作用域讲解:","<br>";print "<br>";function local(){//局部变量$x = "我是局部变量"; //在这个函数中创建了个局部变量echo $x,"<br>"; //在局部中可以用到这个变量}local(); //调用这个函数的使用可以看到打印的一个结果echo $x; //我们要是把echo写在外边的话 可以看到代码是红色的代表错误的,就是不能写在外边的
3.1.3 全局变量(Global)
全局变量是在函数或方法外部声明的变量,他们的作用域是全局的,即在整个脚本中都可以
访问。然而,在函数或方法内部访问全局变量时,需要使用global
关键字
echo "变量的作用域讲解:","<br>";$y = "我是全局变量"; echo $y; //看一下全局变量的话 是可以写在外边的 但是全局变量也可以写在里边的print "<br>";function local(){//局部变量$x = "我是局部变量"; //在这个函数中创建了个局部变量echo $x,"<br>"; //在局部中可以用到这个变量//全局变量演示global $y; //声明在局部使用全局变量echo $y; //我们需要加一个参数 去声明使用我们的全局变量 global}local(); //调用这个函数的使用可以看到打印的一个结果echo $x;
3.1.4 静态变量(Static)
静态变量也是函数或方法内部声明的,但与局部变量不同的是,静态变量的值在函数调用结
束后不会被销毁,他们保持其值,直到下一次函数调用,这意味着静态变量在函数调用之间
保持其状态
<?php
function test01(){//声明静态变量static $zz = 0;$zz ++; //让静态变量产生变化的代码echo $zz,"<br>";}echo $zz; //静态变量还是无法在外部去使用//他跟普通局部变量的区别,只在于,每次函数调用结束,都会记录静态变量的状态,不会丢失test01();test01();test01();test01();?>
3.2 面向对象
面向对象(Object-Oriented
,简称 OO
)是一种编程思想和方法,它将程序中的数据和操作数据的方法封装在一起,形成 ‘对象’ ,并通过对象之间的交互消息传递来完成程序的功能。
面向对象编程强调数据的封装,继承,多态和动态绑定等特性,使得程序具有更好的可扩展性,可维护性和可重用性。
在面向对象的程序设计(英语:Object-oriented programming
,缩写:OOP
)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。
在现实世界里我们所面对的事情都是对象,如计算机,电视,自行车等
3.2.1 对象的主要三个特征
- 对象的行为:对象可以执行的操作,比如:开灯,关灯就是行为
- 对象的形态:对象不同的行为是如何响应的,比如:颜色,尺寸,外型
- 对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同
比如Animal(动物) 是一个抽象类,我们可以具体到一只狗跟一只羊,而狗跟羊就是具体的对象,他们有颜色属性,可以写,可以跑等行为状态。
3.2.2 面向对象编程的三个主要的特性
1.封装(Encapsulation
):指将对象的属性和方法封装在一起,使得外部无法直接访问和
修改对象的内部状态。通过使用访问控制修饰符(public
、private
、protected
)来限制属
性和方法的访问权限,从而实现封装;
2.继承(Inheritance
):指可以创建一个新的类,该类继承了父类的属性和方法,并且可以
添加自己的属性和方法。通过继承,可以避免重复编写相似的代码,并且可以实现代码的重
用;
3.多态(Polymorphism
):指可以使用一个父类类型的变量来引用不同子类类型的对象,
从而实现对不同对象的统一操作。多态可以使得代码更加灵活,具有更好的可扩展性和可维
护性。在 PHP 中,多态可以通过实现接口(interface
)和使用抽象类(abstract class
)来
实现。
3.2.3 面向对象的内容
- 类
定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作; - 对象
是类的实例; - 成员变量
定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,在类被实例化为对象后,该变量即可成为对象的属性; - 成员函数
定义在类的内部,可用于访问对象的数据; - 继承
继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容; - 父类
一个类被其他类继承,可将该类称为父类,或基类,或超类; - 子类
一个类继承其他类称为子类,也可称为派生类; - 多态
多态性是指相同的函数或方法可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性; - 重载
简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法; - 抽象性
抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关; - 封装
封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内; - 构造函数
主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中; - 析构函数
析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
3.2.4 PHP类定义
PHP定义类通常语法格式如下
class 类名{//类的属性//类的构造方法在创建对象时自动调用,用于初始化对象的属性//类的方法(也称为成员函数)
}
// 定义一个名为 Car 的类
class Car { // 类的属性(也称为成员变量) public $color; // 汽车的颜色 public $make; // 汽车的制造商 public $model; // 汽车的型号 // 类的构造方法在创建对象时自动调用,用于初始化对象的属性 public function __construct($color, $make, $model) { $this->color = $color; // 设置汽车的颜色 $this->make = $make; // 设置汽车的制造商 $this->model = $model; // 设置汽车的型号 } // 类的方法 用于显示汽车的信息 public function displayInfo() { // 输出汽车的颜色、制造商和型号信息 echo "这个车是 " . $this->color . " " . $this->make . " " . $this->model . "."; }
}
下图中我们通过Car 类
创建了三个对象:Mercedes
, Bmw
, 和 Audi
。再调用一下各个汽车对象的方法:
// 创建 Car 类的实例(对象),并初始化其属性 $mercedes = new Car("绿色", "梅赛德斯奔驰", "e300"); $bmw = new Car("蓝色", "宝马", "随便");$audi = new Car("橙色", "奥迪", "a6");// 调用对象的方法,显示汽车的信息 $mercedes->displayInfo(); $bmw->displayInfo(); $audi->displayInfo();
3.2.5 小练习
自定义创建一个类用来收集学生信息
<?php$huan = PHP_EOL;class infomation{public $name;public $age;public $gender;public $address;public $phone;public $email;public $password;public function __construct($name, $age, $gender, $address, $phone, $email, $password){$this->name = $name;$this->age = $age;$this->gender = $gender;$this->address = $address;$this->phone = $phone;$this->email = $email;$this->password = $password;}public function display(){global $huan;echo "Name: " , $this->name , $huan;echo "Age: " , $this->age , $huan;echo "Gender: " , $this->gender , $huan;echo "Address: " , $this->address , $huan;echo "Phone: ", $this->phone, $huan;echo "Email: ", $this->email, $huan;echo "Password: ", $this->password, $huan;}
}$xiao_wang = new infomation("xiaowang","19","grade one","tianjin","111111","111@qq.com","111111");$xiao_wang->display();echo $huan;$xiao_liu = new infomation("xiaoliu","21","grade two","shandong","222222","222@qq.com","222222");$xiao_liu->display();echo $huan;
?>
本文内容源于好课优选教育网络安全培训后的笔记整理!
相关文章:
网络安全零基础培训 L1-8 PHP基础语法
文章目录 1 认识PHP1.1 PHP简介1.2 主要的特点1.3 跨平台性1.4 与数据库的良好集成1.5 开源和社区支持1.6 应用场景1.6.1 网站开发1.6.2 内容的管理程序1.6.3 Web应用程序开发1.6.4 为什么学习了解PHP 2 PHP的基础语法2.1 创建第一个PHP程序2.2 如何写注释2.3 PHP的变量2.4 PHP…...
鸿蒙 长列表加载性能优化
长列表加载性能优化 针对长列表加载这一场景,对列表渲染时间、页面滑动帧率、应用内存占用等方面带来优化,提升性能和用户体验的手段有如下 4 种: 懒加载:提供列表数据按需加载能力,解决一次性加载长列表数据耗时长、…...
第十二届蓝桥杯 2021 C/C++组 卡片
目录 题目: 题目描述: 题目链接: 思路: 思路详解: 代码: 代码详解: 题目: 题目描述: 题目链接: 卡片 - 蓝桥云课 思路: 思路详解&#…...
vscode 使用gitcode团队管理项目
1、下载安装vscode https://code.visualstudio.com/Download 2、安装git 3、在vscode中安装GitLens插件 4、打开终端 点击会显示当前更改的项目 5、提交更改的文件,会提示输入用户名、密码,这里的密码即是令牌,令牌在第一次创建的时候显…...
uniapp+vue3+ts 使用canvas实现安卓端、ios端及微信小程序端二维码生成及下载
加粗样式uniapp多端生成带二维码海报并保存至相册的实现 在微信小程序开发中,我们常常会遇到生成带有二维码的海报并保存到手机相册的需求,比如分享活动海报、产品宣传海报等。今天就来和大家分享一下如何通过代码实现这一功能。 准备工作 在开始之前&am…...
vue mixin混入与hook
mixin混入是 选项式 API,在vue3-Composition API <script setup> 中无法直接使用,需通过 setup() 函数转换 vue2、vue3选项式API: // mixins/mixin.js export const mixin {methods: {courseType(courseLevel) {const levelMap {1: 初级,…...
《Masked Autoencoders Are Scalable Vision Learners》---CV版的BERT
目录 一、与之前阅读文章的关系? 二、标题:带掩码的自auto编码器是一个可拓展的视觉学习器 三、摘要 四、核心图 五、结果图 六、不同mask比例对比图 七、“Introduction” (He 等, 2021, p. 1) 引言 八、“Related Work” (He 等, 2021, p. 3)相…...
(云计算HCIP)HCIP全笔记(十三)本篇介绍虚拟化技术,内容包含:虚拟化资源、虚拟化过程、I/O虚拟化、虚拟化架构KVM和Xen介绍、主流虚拟化技术介绍
1. 虚拟化资源 1.1 虚拟化对象 CPU虚拟化: 目标是使虚拟机上的指令能被正常执行,且效率接近物理机 内存虚拟化: 目标是能做好虚拟机内存空间之 间的隔离,使每个虚拟机都认为自己拥有了整个内存地址,且效率页能接近物理…...
C++核心编程:类与对象全面解析
C核心编程:类与对象全面解析 大家好!今天我要和大家深入探讨C面向对象编程中最核心的概念:类与对象。👨💻 这是我们迈向高级C开发的第一步,掌握好这部分内容,对未来学习更高级的设计模式和框…...
Linux基础命令和文件系统结构:从入门到实践
目录 1. 引言 2. Linux文件系统结构概述 2.1 根目录 编辑 2.2 常见目录介绍: 1. /home:用户的家目录 2. /etc:存放配置文件的目录 3. /var:可变数据 4. /bin 和 /sbin:常见命令和系统管理工具 5. /tmp&…...
「Mac畅玩AIGC与多模态05」部署篇03 - 在 Mac 上部署本地向量化模型(Embedding Models)
一、概述 本篇介绍如何在 macOS 环境下,为 Dify 平台部署本地向量化模型(Embedding Models),支持知识库文档向量化、语义检索与智能体上下文增强。向量化模型是实现知识库问答与 RAG(检索增强生成)应用的基础组件。 二、部署流程 1. 环境准备 确认 Docker Desktop 正常…...
Java-Optional类
介绍 Optional是 Java 8 引入的一个类,用于解决空指针异常问题。它本质上是一个容器类,可以包含或不包含一个非空值。 示例 创建Optional对象 Optional.of(T value):创建一个包含非空值的Optional对象。如传入null值,会抛出Nu…...
Android 热点开发调试总结
Android 热点开发调试总结 文章目录 Android 热点开发调试总结一、前言二、热点开发1、开关和默认配置wifi和热点配置信息保存的位置: 2、主要流程3、相关日志4、相关广播5、demo示例 三、其他1、Android 热点开发调试小结2、其他热点相关知识小结(1&…...
【“星瑞” O6 评测】 — llm CPU部署对比高通骁龙CPU
前言 随着大模型应用场景的不断拓展,arm cpu 凭借其独特优势在大模型推理领域的重要性日益凸显。它在性能、功耗、架构适配等多方面发挥关键作用,推动大模型在不同场景落地 1. CPU对比 星睿 O6 CPU 采用 Armv9 架构,集成了 Armv9 CPU 核心…...
快乐数(双指针解法)
题目链接202. 快乐数 - 力扣(LeetCode) 题目拆解 1 取一个正整数每一位的平方和为,如果为1那么直接可以判定为快乐数,如果不为1,就重复这个过程,直到出现1 2 实际上,这道题只有两种情况…...
【Vue3-Bug】中路由加载页面直接显示空白
Vue3中路由加载页面直接显示空白 没有子路由 路由定义不能重复,请自己查看数据在main.js(或者)mina.ts入口文件中,需要将router的注入到vue中的执行放在,vue挂在元素之前 // 顺序不能变 app.use(router) app.mount(#app)在App.vue中 // 在…...
线性代数——行列式⭐
目录 一、行列式的定义⭐ 1-1、三阶行列式练习 1-2、下面介绍下三角行列式、上三角行列式、对角行列式 编辑 二、行列式的性质 2-1、性质1,2,3,4,5,6 编辑 2-2、性质7 2- 3、拉普拉斯定理、克莱姆法则 三…...
flume----初步安装与配置
目录标题 **flume的简单介绍**⭐flume的**核心组件**⭐**核心特点** **安装部署**1)**解压安装包**2)**修改名字** **(配置文件时,更方便)****3)⭐⭐配置文件**4)**兼容Hadoop**5)**…...
vscode源代码管理Tab-文件右侧标志(M、A 等)的含义
Git 常用标志(M、A 等)的含义 在 VSCode 的源代码管理(Source Control)标签页中,文件右侧显示的 Monaco 装饰徽章(Badge)(如 M、A 等),本质上是对 Git 文件状态标志 的可视化呈现。…...
【力扣刷题实战】丢失的数字
大家好,我是小卡皮巴拉 文章目录 目录 力扣题目:丢失的数字 题目描述 解题思路 问题理解 算法选择 具体思路 解题要点 完整代码(C) 兄弟们共勉 !!! 每篇前言 博客主页:小…...
具身智能机器人的应用场景及最新进展
具身智能机器人正通过“感知-学习-决策-行动”的闭环能力,重塑全球各行业的生产与服务模式。以下是其在当今世界的典型应用场景及最新进展: 一、工业制造:柔性生产与智能运维 高精度装配与检测 特斯拉Optimus通过双目视觉与惯性测量单元&…...
网络安全怎么入门?快速了解
网络安全是一个快速发展的领域,入门需要系统化的学习和实践。以下是适合零基础或转行者的分阶段学习路径,涵盖必备知识、学习资源、实战方法和职业方向: 一、基础阶段(1-3个月) 1. 掌握核心基础知识 计算机网络&#…...
STM32N6570-DK ISP调试
STM32N6570-DK之ISP调试应用 准备工作-下载安装软件包:一、使用STM32CubeProgrammer给板子烧入STM32N6_ISP_IQTune_App_revC01-v1.1.0-trusted.bin。二、打开STM32 ISP IQTune.exe ,出现可连接端口:三、根据教程进行相应调试:准备工作-下载安装软件包: https://www.st.co…...
Nacos源码—1.Nacos服务注册发现分析一
大纲 1.客户端如何发起服务注册 发送服务心跳 2.服务端如何处理客户端的服务注册请求 3.注册服务—如何实现高并发支撑上百万服务注册 4.内存注册表—如何处理注册表的高并发读写冲突 1.客户端如何发起服务注册 发送服务心跳 (1)Nacos客户端项目启动时为什么会自动注册服…...
NHANES指标推荐:CTI
文章题目:Association between the C-reactive protein-triglyceride-glucose index and endometriosis: a cross-sectional study using data from the national health and nutrition examination survey, 1996-2006 DOI:10.1186/s12905-024-03541-x 中…...
开源模型应用落地-全能音频新纪元-Kimi-Audio-7B-Instruct-重塑多模态交互边界
一、前言 在AI技术持续突破的2025年,音频交互正从单一任务处理迈向全场景融合的新阶段。4月27日,月之暗面(Moonshot AI)开源的Kimi-Audio-7B-Instruct,以“全能音频通才”之姿,为这一进程树立了里程碑式标杆。这款基于70亿参数架构的模型,首次在单一框架内整合语…...
mtrace和memleak源码分析
文章目录 1. 内存泄漏2. 定位工具2.1 memleak 工具定位内存泄漏2.1.1 源码解读 2.2 mtrace 工具定位内存泄漏2.2.1 源码解读 嵌入式内存泄漏定位工具mtrace和memleak源码分析 1. 内存泄漏 内存泄漏(Memory Leak)指程序中已动态分配的堆内存因未正确释放或…...
Python爬虫技术全解析:从入门到实战的终极指南大纲(深度解读与扩展)
Python爬虫技术全解析:从入门到实战的终极指南大纲(深度解读与扩展) 文章目录 Python爬虫技术全解析:从入门到实战的终极指南大纲(深度解读与扩展)前言:数据时代的爬虫使命第一章:Py…...
【网络入侵检测】基于源码分析Suricata的统计模块
【作者主页】只道当时是寻常 【专栏介绍】Suricata入侵检测。专注网络、主机安全,欢迎关注与评论。 1. 概要 👋 在 Suricata 的配置文件中,stats 节点用于配置统计信息相关的参数,它的主要作用是控制 Suricata 如何收集和输出统计数据,帮助用户了解 Suricata 的运行状态和…...
JDBC之Blob类型使用的实现
目录 一、 MySql Blob类型简介 1. Mysql中的Blob类型 2. Blob类型使用的注意事项 二. 插入Blob类型数据 1. 创建表 2. 通过PreparedStatement存储Blob类型数据 三. 解除文件大小限制 四、 读取Blob类型数据 前言 本文来讲解JDBC中的Blob类型 个人主页:艺杯羹…...
truffle
文章目录 truffle目录结构各文件作用在本地测试合约 truffle 项目来自https://github.com/Dapp-Learning-DAO/Dapp-Learning/blob/main/basic/04-web3js-truffle/README-CN.md Truffle 是基于 Solidity 语言的一套开发框架,它简化了去中心化应用(Dapp&…...
网盘不限速
引言 哈喽小伙伴们!说到网盘下载,是不是感觉心头一紧?特别是像某度那样不开会员就限速到怀疑人生!就连之前号称不限速的阿里云盘,现在也是限的死死的。 随着阿里网盘开始限速,很多小伙伴开始转战其他平台。…...
TVM中的Pass两种实现方法?如何选择?
以下是TVM中基于DFPatternCallback和VisitDFPattern两种编写Pass的方法的详细对比与示例总结: 1. 核心概念对比 特性DFPatternCallbackVisitDFPattern (DFPatternFunctor)抽象层级声明式模式匹配命令式访问者模式适用场景简单/中等复杂度的模式匹配需要精细控制匹配…...
JAVA EE_网络原理_UDP与TCP
人海中未遇见时,我将独自前行... ----------陳長生. 1.UDP协议 1.1.UDP协议端格式 UDP(用户数据报协议)是由 源端口,目标端口,长度,校验和,数据 5种结构组成。16位是UDP报文中字段的长度&#…...
智能Python开发工具PyCharm v2025.1——AI层级功能重磅升级
JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发。 立即获取PyCharm v2025.1正式版 具体更新内容: PyCh…...
15、项目搭建:绘制城堡蓝图——React 19 工程配置
一、魔法结界初始化 1. 召唤项目骨架 npx create-next-applatest hogwarts-castle --ts --tailwind 核心咒语: • --ts:激活预言水晶球(TypeScript类型安全) • --tailwind:注入飞天扫帚级原子样式(…...
docker搭建swarm集群
环境准备 主机名 IP 角色 manger1 192.168.111.47 管理节点 worker1 192.168.111.48 工作节点 worker2 192.168.111.49 工作节点 注:三台主机都已经拉去完swarm和…...
普通IT的股票交易成长史--20250428晚
声明:本文章的内容只是自己学习的总结,不构成投资建议。文中观点基本来自yt站Andylee,美股Alpha姐,综合自己的观点得出。感谢他的无私分享。 仓位就是生命,绝对不能满仓!!!…...
【React Native】精通 react native
活到老,学到老。 一、基础核心 JavaScript/TypeScript 基础 掌握 ES6+ 语法(箭头函数、解构、Promise、async/await)。熟悉 TypeScript(类型系统、接口、泛型)以提高代码质量。React 核心概念 组件化开发(函数组件、类组件)。状态管理(useState, useEffect, useContex…...
微信小程序-van-uploader的preview-size
preview-size支持数组格式 修改前修改后1、升级微信小程序里面的van版本:2、 重新构建npm3、重启微信开发工具 修改前 引用van组件的上传文件,设置预览图尺寸,刚开始设置的是preview-size“140”,出来的效果就是一个正方形。 修改后 1、升级…...
成员方法的详细说明(结合Oracle官方文档)
在Java的对象创建过程中,成员方法的地址并不存储在对象的堆内存中。Java虚拟机的设计说明(包括Oracle的Java虚拟机规范、OpenJDK文档、以及HotSpot的设计文档)都明确区分了对象的实例数据(存储在堆内存中)和类的元数据…...
[蓝桥杯刷题]---模拟法[2]日期问题
题目如下: 题目的意思是: 给出一个日期(格式是yy mm dd,注意年份只有两位数),要找出所有可能的真实日期(合法的yyyy-mm-dd格式)。 需要考虑: 年份范围在1960到2059。 输入的yy、mm、…...
阿里开源图生动画模型AnimateAnyone2
项目背景 近年来,基于扩散模型(diffusion models)的人物图像动画化方法取得了显著进展,例如 Animate Anyone 在生成一致性和泛化性方面表现优异。然而,这些方法在处理人物与环境之间的空间关系和人-物体交互࿰…...
02_使用 AES 算法实现文件加密上传至阿里云、解密下载
02_使用 AES 算法实现文件加密上传至阿里云、解密下载 一、文件上传下载接口 controller 层 RestController RequestMapping("/api/common/file") Api(tags "公共文件上传") AllArgsConstructor Slf4j public class FileV2Controller {private final Os…...
Linux运维——Vim基础
Vim基础 一、移动光标1.1、基础移动1.2、屏幕滚动 二、编辑操作2.1、插入模式2.2、删除与修改2.3、复制粘贴 三、搜索与替换3.1、搜索3.2、替换 4、分屏与窗口管理4.1、分屏操作4.2、窗口调整 五、宏与批量操作六、效率技巧 一、移动光标 1.1、基础移动 快捷键作用h j k l左/…...
从外卖大战看O2O新趋势:上门私厨平台系统架构设计解析
京东高调进军外卖市场,美团全力防守,两大巨头的竞争让整个行业风起云涌。但在这场外卖大战之外,一个更具潜力的细分市场正在悄然兴起——上门私厨服务。 与标准化外卖不同,上门私厨提供的是个性化定制服务。厨师带着新鲜食材上门现…...
【网络编程】ARP协议与主机之间的通信
1. 什么是ARP协议? ARP(地址解析协议,Address Resolution Protocol) 是一种用于在网络中将IP地址转换为MAC地址的协议。它属于TCP/IP协议栈中的网络层协议,通常在局域网(LAN)环境下使用&#x…...
JVM模型、GC、OOM定位
JVM模型 程序计数器 程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等功能都需要依赖这个计数器来…...
什么是数据链路层的CRC检测以及为什么要放到帧尾?
数据链路层在封装过程中添加CRC(循环冗余校验)帧尾,主要目的是为了检测数据传输过程中可能出现的比特错误,确保数据的完整性和可靠性。具体原因如下: 1. 错误检测 物理层传输的不可靠性:数据在物理介质&am…...
Electron 入门指南
Electron 入门指南 Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用的框架。通过 Electron,你可以利用 Web 技术开发出功能强大的桌面应用程序,并且能够运行在 Windows、Mac 和 Linux 系统上。 本文将带你从零开始构建一个简单的 Ele…...