- 博客(36)
- 收藏
- 关注
原创 HTTP 和 HTTPS 的区别 + SSL协议
服务端用私钥解密后,得到了客户端传过来的随机值(对称秘钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。这种方法看起来不错,但是也存在问题,如果在发送的时候被拦截下来,密钥就会泄露给中间人,此时中间人就可以通过密钥来对之后的数据进行解密,此时也就失去了加密的意义这时,就引入了非对称加密。SSL确保安全性的同时,在客户端和服务端都要进行。
2024-05-17 18:39:43
1031
原创 C++中的静态成员变量和静态成员函数
注意下面几点:调用一个对象的非静态成员函数时,系统会把当前对象的起始地址赋给 this 指针。而静态成员函数并不属于某一对象,它与任何对象都无关,因此。
2024-05-12 15:13:30
428
原创 C++ 中的多态实现原理与静态动态绑定
必须通过虚函数被调用的函数是,且必须完成对基类虚函数的在C++中,多态性是指对象在不同情况下表现出不同的行为的能力。这意味着通过相同的接口可以调用不同类型的对象,并且会根据对象的实际类型来执行相应的操作。C++中的多态性通过虚函数来实现,分为编译时多态性(静态多态性)和运行时多态性(动态多态性)两种。
2024-05-12 14:40:09
788
原创 C++11新特性-右值引用及其拓展应用
在掌握右值引用前,必须先知道什么是右值,既然有右值,那么肯定有左值。顾名思义,当我们在赋值的时候a=b,能够被放到等号左边的值即为左值,反则为右值。 可见立即数,函数返回的值等都是右值;而非匿名对象(包括变量),函数返回的引用,const对象等都是左值。 显然作为左值的都是可以长期保存起来的,对应是保存在内存中;但常数、表达式、函数返回值等都是临时值,这些值都保存在寄存器中。可以总结:二、左值引用和右值引用1、左值引用先看一下传统的左值引用:左值引用在汇编层面
2024-05-05 11:50:11
860
原创 const char*, char const*, char* const的区别
但是ptr的声明并不意味着它指向的值实际上就是一个常量,而只是意味着对ptr而言,这个值是常量。假设ptr指向str,而str不是const,可以直接通过str变量来修改str的值,但是确不能通过ptr指针来修改。,这里,ptr是一个指向 char* 类型的常量,所以不能用ptr来修改所指向的内容,换句话说,它是一个常量,即指针的指向不可以改变但指针指向的内容可以改变。它是一个指针,定义一个指向字符常量的。
2024-04-24 12:21:35
203
原创 【QT】QGraphics体系及刷新机制介绍
Qt的三大体系:QWidget、QGraphics、Quick,其中QGraphics图形框架算是这三个中比较高级的一种用法了,并且使用起来相比另外两个体系会更加的复杂一些,不过它能实现的功能却非常强大,主要体现在对图元的管理,它独特的刷新机制可以在众多的图元中都能够很好的管理,保证整个交互的流畅度。而这里要描述的就是QGraphics体系的刷新机制以及该体系中相关元素的使用方式及特点。
2024-04-24 12:06:02
878
原创 浅析动态规划(Dynamic Programming,DP)
动态规划有多好用我就不过多介绍,写这篇文章的时候我也不是熟练掌握,只是单纯记录一下我的学习经历并分享一些我的心得体会,仅此而已。推荐看一下,对你的理解应该会有所帮助。
2024-03-03 14:59:53
949
原创 C++中的find函数
C++中的find()函数有多种用法。它可以用于string类,用于查找字符或字符串。。此外,find()也可以用于vector容器,用于查询指定元素是否存在。还有一个STL函数find(),它位于头文件下,返回一个迭代器,指向范围内搜索元素的第一次出现。
2024-03-02 14:42:58
7924
4
原创 C++,C#,Java中的Lambda
1)捕获列表使用 Lambda 表达式来创建匿名函数。使用 lambda声明运算符=> 从其主体中分离 lambda 参数列表。若要创建 Lambda 表达式,需要在 Lambda 运算符左侧指定输入参数(如果有),然后在另一侧输入表达式或语句块。任何 Lambda 表达式都可以转换为委托类型。Lambda 表达式可以转换的委托类型由其参数和返回值的类型定义。如果 lambda 表达式不返回值,则可以将其转换为Action委托类型之一;否则,可将其转换为Func委托类型之一。
2024-02-04 17:50:33
995
原创 位运算与组合技
我们知道,计算机中的数在内存中都是以二进制形式进行存储的 ,而位运算就是直接对整数在内存中的二进制位进行操作,因此其执行效率非常高,在程序中尽量使用位运算进行操作,这会大大提高程序的性能。
2024-02-03 20:48:26
737
原创 【Unity】导航系统NavMesh
导航系统可以智能的使游戏角色在场景中自由移动,寻路系统算做求解型AI,同样常见的寻路算法还有A*寻路。Unity中的导航系统允许我们在运行时动态的创建障碍,自动创建导航网格,动态规划路径,对于非连接的网格可以构建特殊的操作等。用来描述一个可行走区域的数据结构,这个数据是需要我们手动设置生成(baked),或者动态生成(代码控制)。用来帮助游戏中的角色移动到指定目标的组件,它使用的是NavMesh数据,并且知道如何规划最优路径,避开障碍物等。用于手动指定路线来生成分离的网格连接。
2024-01-31 11:36:53
593
原创 C++中的sort()函数
STL中的sort()并非只是普通的快速排序,除了对普通的快速排序进行优化,它还结合了插入排序和堆排序。根据不同的数量级别以及不同情况,能自动选用合适的排序方法。并且可以自行决定排序方法与准则。
2024-01-17 11:12:22
435
原创 C++中的 sqrt、sqrtl 和 sqrtf
此功能用于长双精度型数据。因此,这将返回long double类型的平方根。这是精度更高的两倍。当我们使用长整数时,此函数很有用。此功能用于双精度数据。因此,这将返回double类型的平方根。该功能用于浮点型数据。因此,这将返回float类型的平方根。
2023-12-31 13:02:21
4662
原创 【Unity】UI之GUI的使用
GUI技术看似成为古老的技术,但是Unity5.x之后并没有取消这种UI传统的技术。Unity4.6出现的新的UI技术称之为UGUI,我们会在之后的课程进行讲解,他的出现主要是为了重新定义UI的技术规范,统一之前UI插件繁多,混杂,标准不统一的混乱局面,大有一统江湖的目的。但是原生的GUI生命力依然旺盛。在一些早期开发的项目,小型游戏依然有其存在的价值,简单易用是它存在的硬道理。UI是游戏组成的重要部分,游戏的很多操作直接通过UI控制。
2023-12-09 20:07:42
1129
原创 【Unity】屏幕相关Screen知识点
在游戏开发中,处理屏幕分辨率、设备方向和全屏状态等相关问题是至关重要的。这些因素会直接影响到游戏的玩家体验,包括游戏的视觉效果和交互感受。例如,我们可能需要在不同的屏幕分辨率下优化游戏的用户界面,或者我们可能想要在设备旋转时改变游戏的方向。在Unity游戏开发环境中,Screen类就是一个提供了这些功能的工具。
2023-12-07 17:00:14
1131
原创 【Unity】检测输入相关Input
在Unity开发中,我们通常需要获取并处理用户的输入,这时我们就需要用到Unity的Input类。它允许我们通过键盘,鼠标,触摸屏,游戏手柄等多种方式从用户那里接收输入。注意:输入相关内容是写在Update中的。
2023-12-05 10:32:46
347
1
原创 【Unity】坐标系、Vector3基础和Transform位置
在学习Vector3和Transform之前需要先了解一下Unity坐标系:在Unity中有很多坐标系,诸如世界坐标系、局部坐标系、屏幕坐标系、视口坐标系等等,这些坐标系往往会给我带来很大的困扰,但又缺一不可。比如当你需要获取鼠标在世界坐标的位置时,你就需要明白什么是世界坐标和屏幕坐标,以及两者如何转换。一、坐标系Unity的各种坐标系。
2023-11-28 14:48:11
2831
2
原创 【Unity】GameObject中的成员方法
关系得到脚本,GameObject里得到脚本的方法 和Mono里得到脚本的方法一模一样,用谁的都可以,都是.GetComponent系列。new一个GameObject就是在创建一个空物体,创建的同时直接命名,创建的同时直接命名并挂载脚本(想挂几个都行)如果我们想动态地给现有对象添加脚本的话,就需要使用GameObject提供的方法。判断这个对象的标签是否是 Player,返回值是bool,这两种方法是一模一样的。之前说过继承了Mono的脚本 是不能够new的。
2023-11-21 23:18:25
67
1
原创 【Unity】GameObject中的静态方法
根据一个GameObject对象创建出一个和它一模一样的GameObject对象,返回一个被克隆的对象,使用GameObject类型的变量接收,如果继承了MonoBehaviour 可以不用写前面的GameObject,因为这个方法是Unity的Object基类提供的,所以可以直接用Instantiate(obj)Unity中可以创建多个游戏场景,难免会场景之间来回切换,而Unity的机制是,一旦切换到另一个场景,此场景里的对象会被全部移除,但如果你想让一些对象出现在每一个场景,那就使用这个方法。
2023-11-18 20:38:30
169
1
原创 C++ 中的运算符重载与例题
举个例子:我们要设计一个名为“person”的类,现在要判断person类的两个对象p1和p2是否一样大,我们设计的比较规则是按照其年龄来比较,那么,在设计person类的时候,就可以通过对操作符“==”进行重载,来使用操作符“==”对对象p1和p2进行比较了(就是把“==”重载成“>”或“<”),结果返回bool类型值用于判断。这个例子就是重载比较符,返回结果是布尔类型,即在出现次数相同的情况下,如果当前对象的动态数组内的数比做对比的数组要小,那么就返回ture,否则就直接对比出现次数。
2023-11-13 13:06:47
110
原创 C与C++的字符串和字符数组的输入方式以及匹配
cin.get(字符数组名,接收字符个数),用来接收一行字符串(可以接收空格),这个最大的用途是可以定量的接收字符的个数(但是要注意,如果定义的数组的个数是20,则实际上只能接收19个字符,还要加上'\0')getchar()、getche() 和 getch() 是专用的字符输入函数,它们在缓冲区和回显方面与 scanf() 有着不同的特性,是 scanf() 不能替代的。C++中的输入大致有6种方法:cin,cin.get(),cin,getline(),gets(),getchar()
2023-11-10 11:50:07
3425
3
原创 【Unity】GameObject中的成员变量
类中的许多变量已被移除。要访问 例如 csharp 中的 GameObject.renderer,则使用 GetComponent()。在 JS 脚本中,使用 GetComponent.()。控制台输出的内容与unity中的信息一致,并且改名成功。保存脚本并把脚本挂载到空对象上后,运行项目。首先创建一个新的空对象,用于测试脚本。,激活状态,是否静态,
2023-11-09 20:54:33
143
1
原创 RabbitMQ与Erlang的下载安装
该应用程序需要处理大量并发活动。它应该可以很容易地在计算机网络上分发。应该有一种使应用程序对软件和硬件错误都容错的工具。该应用程序应该是可伸缩的。这意味着它应该能够跨越多个服务器,而几乎没有变化。它应该易于升级和重新配置,而不必停止和重新启动应用程序本身。该应用程序应在一定严格的时间范围内对用户做出响应。Erlang是一种通用的面向并发的编程语言,它由瑞典电信设备制造商爱立信所辖的CS-Lab开发,目的是创造一种可以应对大规模并发活动的编程语言和运行环境。
2023-11-06 22:34:35
53
原创 建立SpringBoot微服务过程中的问题
建立SpringBoot微服务过程中的jdk与springboot版本问题、maven依赖问题、依赖引用问题、配置文件问题
2023-09-24 16:24:43
76
1
原创 新令牌模式------本地上传文件or代码到github
如果出现错误: git SSL certificate problem: unable to get local issuer certificate。第一步:新建一个文件夹把要上传的文件放进去,然后git bash here。这个问题是由于没有配置信任的服务器HTTPS验证。第五步:先移除掉可能有的origin,再通过令牌添加origin。git commit -m '提交时的备注'被设为不信任任何CAs,就是说,它不信任任何服务器验证。第四步:分支不同需要先切换分支,再合并分支。第三步:复制库的链接。
2023-07-17 10:55:21
102
1
原创 JMU软件工程编译原理实验四
熟悉语法分析阶段的要求,掌握LL(1)语法分析的原理,利用预测分析方式构造语法分析器。: 硬件:PC 机一台;软件:Windows系统;高级语言集成开发环境。: 利用LL(1)预测分析法构造语法分析器。E’→+TE’ | 空。
2023-05-30 17:06:23
141
原创 JMU软件工程编译原理实验三
自设10个输入语句(每个语句多加一个#作为结束标记),展示这10个语句经该语法分析器分析后的结果,如果正确输出“Right”,错误输出“ERROR”并输出判错时指针所指字符。1.实验目的熟悉语法分析阶段的要求,掌握LL(1)语法分析的原理,利用递归下降方式构造语法分析器。2.实验设备硬件:PC 机一台软件:Windows 系统,高级语言集成开发环境。根据要求构造递归下降语法分析器。
2023-05-30 17:02:50
128
1
原创 JMU软件工程编译原理实验二
根据词法要求采用自动机理论实现词法分析器。实现语言不可用脚本类语言,推荐使用C语言;不允许使用任何语言的正规式控件实现实验要求。状态2识别关键字和标识符,状态4识别常数状态,5~12识别操作符和括号状态,13为出错状态。: 硬件:PC 机一台;软件:Windows系统;高级语言集成开发环境。代码量远小于实验一,实验二时间复杂度大于实验一,空间复杂度都为O(1)。: 熟悉词法分析阶段的要求,掌握利用自动机理论实现词法分析器的方法。
2023-05-30 16:59:42
116
1
原创 JMU软件工程编译原理实验一
输入语句任意自设,可包含错误单词($ERR类);若含错误单词,则词法分析器运行需报告错误,错误信息含第一个错误单词位置。: 硬件:PC 机一台 软件:Windows系统,高级语言集成开发环境。: 熟悉词法分析阶段的要求,掌握利用状态图手工实现词法分析器的方法。: 根据词法要求手工实现词法分析器。
2023-05-30 16:53:08
170
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人