当前位置: 首页 > news >正文

unity 面试汇总

1、什么是协同程序?

答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个可以与程序并行的逻辑。可以用来控制运动、序列以及对象的行为。

2、Unity3D中的碰撞器和触发器的区别?

答:碰撞器是触发器的载体,而触发器只是碰撞器身上的一个属性。

当Is Trigger=false时,碰撞器根据物理引擎引发碰撞,产生碰撞的效果,可以调用OnCollisionEnter/Stay/Exit函数;

当Is Trigger=true时,碰撞器被物理引擎所忽略,没有碰撞效果,可以调用OnTriggerEnter/Stay/Exit函数。

如果既要检测到物体的接触又不想让碰撞检测影响物体移动或要检测一个物件是否经过空间中的某个区域这时就可以用到触发器。

3、物体发生碰撞的必要条件?

答:两个物体都必须带有碰撞器Collider,其中一个物体还必须带有Rigidbody刚体。

4、七:简述四元数Quaternion的作用,四元数对欧拉角的优点?

答:四元数用于表示旋转

相对欧拉角的优点:能进行增量旋转、避免万向锁、给定方位的表达方式有两种,互为负(欧拉角有无数种表达方式)

5、如何安全的在不同工程间安全地迁移asset数据?三种方法

答:

1.将Assets和Library一起迁移

2.导出包package

3.用unity自带的assets Server功能

6、OnEnable、Awake、Start运行时的发生顺序?哪些可能在同一个对象周期中反复的发生?

答:Awake–>OnEnable->Start,OnEnable在同一周期中可以反复地发生!

7、MeshRender中material和sharedmaterial的区别?

答:

修改sharedMaterial将改变所有物体使用这个材质的外观,并且也改变储存在工程里的材质设置。

不推荐修改由sharedMaterial返回的材质。如果你想修改渲染器的材质,使用material替代。

8、TCP/IP协议栈各个层次及分别的功能?

答:网络接口层:这是协议栈的最低层,对应OSI的物理层和数据链路层,主要完成数据帧的实际发送和接收。

网络层:处理分组在网络中的活动,例如路由选择和转发等,这一层主要包括IP协议、ARP、ICMP协议等。

传输层:主要功能是提供应用程序之间的通信,这一层主要是TCP/UDP协议。

应用层:用来处理特定的应用,针对不同的应用提供了不同的协议,例如进行文件传输时用到的FTP协议,发送email用到的SMTP等。

9、Unity提供了几种光源,分别是什么?

答:

四种。

平行光:Directional Light

点光源:Point Light

聚光灯:Spot Light

区域光源:Area Light

10、简述一下对象池,你觉得在FPS里哪些东西适合使用对象池?

对象池就存放需要被反复调用资源的一个空间,比如游戏中要常被大量复制的对象,子弹,敌人,以及任何重复出现的对象。

11、CharacterController和Rigidbody的区别?

Rigidbody具有完全真实物理的特性,而CharacterController可以说是受限的的Rigidbody,具有一定的物理效果但不是完全真实的。

12、移动相机动作在哪个函数里,为什么在这个函数里?

LateUpdate,是在所有的Update结束后才调用,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是所有的Update操作完才进行摄像机的跟进,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。

13、简述prefab的用处

在游戏运行时实例化,prefab相当于一个模板,对你已经有的素材、脚本、参数做一个默认的配置,以便于以后的修改,同事prefab打包的内容简化了导出的操作,便于团队的交流。

14、GPU的工作原理?

简而言之,GPU的图形(处理)流水线完成如下的工作:(并不一定是按照如下顺序)。

顶点处理:这阶段GPU读取描述3D图形外观的顶点数据并根据顶点数据确定3D图形的形状及位置关系,建立起3D图形的骨架。在支持DX8和DX9规格的GPU中,这些工作由硬件实现的Vertex Shader(定点着色器)完成。

光栅化计算:显示器实际显示的图像是由像素组成的,我们需要将上面生成的图形上的点和线通过一定的算法转换到相应的像素点。把一个矢量图形转换为一系列像素点的过程就称为光栅化。例如,一条数学表示的斜线段,最终被转化成阶梯状的连续像素点。

纹理帖图:顶点单元生成的多边形只构成了3D物体的轮廓,而纹理映射(texture mapping)工作完成对多变形表面的帖图,通俗的说,就是将多边形的表面贴上相应的图片,从而生成“真实”的图形。TMU(Texture mapping unit)即是用来完成此项工作。

像素处理:这阶段(在对每个像素进行光栅化处理期间)GPU完成对像素的计算和处理,从而确定每个像素的最终属性。在支持DX8和DX9规格的GPU中,这些工作由硬件实现的Pixel Shader(像素着色器)完成。

最终输出:由ROP(光栅化引擎)最终完成像素的输出,1帧渲染完毕后,被送到显存帧缓冲区。

总结:GPU的工作通俗的来说就是完成3D图形的生成,将图形映射到相应的像素点上,对每个像素进行计算确定最终颜色并完成输出。

15、什么是渲染管道?

答:是指在显示器上为了显示出图像而经过的一系列必要操作。 渲染管道中的很多步骤,都要将几何物体从一个坐标系中变换到另一个坐标系中去。

主要步骤有:

本地坐标->视图坐标->背面裁剪->光照->裁剪->投影->视图变换->光栅化。

16、如何优化内存?

答:有很多种方式,例如

1.压缩自带类库;

2.将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉;

3.释放AssetBundle占用的资源;

4.降低模型的片面数,降低模型的骨骼数量,降低贴图的大小;

5.使用光照贴图,使用多层次细节(LOD),使用着色器(Shader),使用预设(Prefab)。

18、动态加载资源的方式?

1.Resources.Load();

2.AssetBundle

Unity5.1版本后可以选择使用Git: https://github.com/applexiaohao/LOAssetFramework.git

19、 使用Unity3d实现2d游戏,有几种方式?

答:

1.使用本身的GUI、UGUI

2.把摄像机的Projection(投影)值调为Orthographic(正交投影),不考虑z轴;

3.使用2d插件,如:2DToolKit、NGUI

20、在物体发生碰撞的整个过程中,有几个阶段,分别列出对应的函数 三个阶段

答:

OnCollisionEnter、

OnCollisionStay、

OnCollisionExit

21、Unity3d的物理引擎中,有几种施加力的方式,分别描述出来

答:

rigidbody.AddForce、

rigidbody.AddForceAtPosition

22、什么叫做链条关节?

答:Hinge Joint,可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,但是达到固定距离后就会产生拉力。

23、物体自身旋转使用的函数?

答: Transform.Rotate()

24、Unity3d提供了一个用于保存和读取数据的类(PlayerPrefs),请列出保存和读取整形数据的函数

答:

PlayerPrefs.SetInt()、

PlayerPrefs.GetInt()

25、Unity3d脚本从唤醒到销毁有着一套比较完整的生命周期,请列出系统自带的几个重要的方法。

答:Awake——>Start——>Update——>FixedUpdate——>LateUpdate——>OnGUI——>Reset——>OnDisable——>OnDestroy

26、物理更新一般放在哪个系统函数里?

答:

FixedUpdate,每固定帧绘制时执行一次,和Update不同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。

FixedUpdate比较适用于物理引擎的计算,因为是跟每帧渲染有关。

Update就比较适合做控制。

27、在场景中放置多个Camera并同时处于活动状态会发生什么?

答:游戏界面可以看到很多摄像机的混合。

28、如何销毁一个UnityEngine.Object及其子类?

答: 使用Destroy()方法;

29、请描述游戏动画有哪几种,以及其原理?

答:主要有关节动画、骨骼动画、单一网格模型动画(关键帧动画)。 关节动画:把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活,Quake2中使用这种动画;

骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,有关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观;

单一网格模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。

30、请描述为什么Unity3d中会发生在组件上出现数据丢失的情况

答: 一般是组件上绑定的物体对象被删除了

31、alpha blend工作原理?

答:Alpha Blend 实现透明效果,不过只能针对某块区域进行alpha操作,透明度可设。

32、写出光照计算中的diffuse的计算公式?

答:diffuse = Kd x colorLight x max(N*L,0);Kd 漫反射系数、colorLight 光的颜色、N 单位法线向量、L 由点指向光源的单位向量、其中N与L点乘,如果结果小于等于0,则漫反射为0。

33、LOD是什么,优缺点是什么?

答:LOD(Level of detail)多层次细节,是最常用的游戏优化技术。它按照模型的位置和重要程度决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。

33、两种阴影判断的方法、工作原理?

本影和半影:

本影:景物表面上那些没有被光源直接照射的区域(全黑的轮廓分明的区域)。

半影:景物表面上那些被某些特定光源直接照射但并非被所有特定光源直接照射的区域(半明半暗区域)

工作原理:从光源处向物体的所有可见面投射光线,将这些面投影到场景中得到投影面,再将这些投影面与场景中的其他平面求交得出阴影多边形,保存这些阴影多边形信息,然后再按视点位置对场景进行相应处理得到所要求的视图(利用空间换时间,每次只需依据视点位置进行一次阴影计算即可,省去了一次消隐过程)

34、Vertex Shader是什么,怎么计算?

答:顶点着色器是一段执行在GPU上的程序,用来取代fixed pipeline中的transformation和lighting,Vertex Shader主要操作顶点。

Vertex Shader对输入顶点完成了从local space到homogeneous space(齐次空间)的变换过程,homogeneous space即projection space的下一个space。在这其间共有world transformation, view transformation和projection transformation及lighting几个过程。

35、MipMap是什么,作用?

答:MipMapping:在三维计算机图形的贴图渲染中有常用的技术,为加快渲染进度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为MipMap。

36、请描述Interface与抽象类之间的不同

答:抽象类表示该类中可能已经有一些方法的具体定义,但接口就是公公只能定义各个方法的界面 ,不能具体的实现代码在成员方法中。

类是子类用来继承的,当父类已经有实际功能的方法时该方法在子类中可以不必实现,直接引用父类的方法,子类也可以重写该父类的方法。

实现接口的时候必须要实现接口中所有的方法,不能遗漏任何一个。

37、.Net与Mono的关系?

答:mono是.net的一个开源跨平台工具,就类似java虚拟机,java本身不是跨平台语言,但运行在虚拟机上就能够实现了跨平台。.net只能在windows下运行,mono可以实现跨平台编译运行,可以运行于Linux,Unix,Mac OS等。

38、简述Unity3D支持的作为脚本的语言的名称?

答:Unity的脚本语言基于Mono的.Net平台上运行,可以使用.NET库,这也为XML、数据库、正则表达式等问题提供了很好的解决方案。

Unity里的脚本都会经过编译,他们的运行速度也很快。这三种语言实际上的功能和运行速度是一样的,区别主要体现在语言特性上。

JavaScript、 C#、Boo

39、Unity3D是否支持写成多线程程序?如果支持的话需要注意什么?

答:仅能从主线程中访问Unity3D的组件,对象和Unity3D系统调用

支持:如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine。

注意:C#中有lock这个关键字,以确保只有一个线程可以在特定时间内访问特定的对象

40、Unity3D的协程和C#线程之间的区别是什么?

答:多线程程序同时运行多个线程 ,而在任一指定时刻只有一个协程在运行,并且这个正在运行的协同程序只在必要时才被挂起。

除主线程之外的线程无法访问Unity3D的对象、组件、方法。

Unity3d没有多线程的概念,不过unity也给我们提供了StartCoroutine(协同程序)和LoadLevelAsync(异步加载关卡)后台加载场景的方法。 StartCoroutine为什么叫协同程序呢,所谓协同,就是当你在StartCoroutine的函数体里处理一段代码时,利用yield语句等待执行结果,这期间不影响主程序的继续执行,可以协同工作。

41、U3D中用于记录节点空间几何信息的组件名称,及其父类名称

答:Transform 父类是 Component

42、向量的点乘、叉乘以及归一化的意义?

答:

1)点乘描述了两个向量的相似程度,结果越大两向量越相似,还可表示投影

2)叉乘得到的向量垂直于原来的两个向量

3)标准化向量:用在只关系方向,不关心大小的时候

43、矩阵相乘的意义及注意点?

答:用于表示线性变换:旋转、缩放、投影、平移、仿射

注意矩阵的蠕变:误差的积累

44、为何大家都在移动设备上寻求U3D原生GUI的替代方案

答:不美观,OnGUI很耗费时间,使用不方便

45、请简述如何在不同分辨率下保持UI的一致性

答:NGUI很好的解决了这一点,屏幕分辨率的自适应性,原理就是计算出屏幕的宽高比跟原来的预设的屏幕分辨率求出一个对比值,然后修改摄像机的size。

46、为什么dynamic font在unicode环境下优于static font

答:Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

使用动态字体时,Unity将不会预先生成一个与所有字体的字符纹理。当需要支持亚洲语言或者较大的字体的时候,若使用正常纹理,则字体的纹理将非常大。

47、当一个细小的高速物体撞向另一个较大的物体时,会出现什么情况?如何避免?

答:穿透(碰撞检测失败)

48、请简述OnBecameVisible及OnBecameInvisible的发生时机,以及这一对回调函数的意义?

答:当物体是否可见切换之时。可以用于只需要在物体可见时才进行的计算。

49、什么叫动态合批?跟静态合批有什么区别?

答:如果动态物体共用着相同的材质,那么Unity会自动对这些物体进行批处理。动态批处理操作是自动完成的,并不需要你进行额外的操作。

区别:动态批处理一切都是自动的,不需要做任何操作,而且物体是可以移动的,但是限制很多。静态批处理:自由度很高,限制很少,缺点可能会占用更多的内存,而且经过静态批处理后的所有物体都不可以再移动了。

50、简述StringBuilder和String的区别?

答:

String是字符串常量。

StringBuffer是字符串变量 ,线程安全。

StringBuilder是字符串变量,线程不安全。

String类型是个不可变的对象,当每次对String进行改变时都需要生成一个新的String对象,然后将指针指向一个新的对象,如果在一个循环里面,不断的改变一个对象,就要不断的生成新的对象,所以效率很低,建议在不断更改String对象的地方不要使用String类型。

StringBuilder对象在做字符串连接操作时是在原来的字符串上进行修改,改善了性能。这一点我们平时使用中也许都知道,连接操作频繁的时候,使用StringBuilder对象。

51、什么是LightMap?

答:LightMap:就是指在三维软件里实现打好光,然后渲染把场景各表面的光照输出到贴图上,最后又通过引擎贴到场景上,这样就使物体有了光照的感觉。

42、Unity和cocos2d的区别

答:

Unity3D支持C#、javascript等,cocos2d-x 支持c++、Html5、Lua等。

cocos2d 开源 并且免费

Unity3D支持iOS、Android、Flash、Windows、Mac、Wii等平台的游戏开发,cocos2d-x支持iOS、Android、WP等。

43、Unity3D Shader分哪几种,有什么区别?

答:表面着色器的抽象层次比较高,它可以轻松地以简洁方式实现复杂着色。表面着色器可同时在前向渲染及延迟渲染模式下正常工作。

顶点片段着色器可以非常灵活地实现需要的效果,但是需要编写更多的代码,并且很难与Unity的渲染管线完美集成。

固定功能管线着色器可以作为前两种着色器的备用选择,当硬件无法运行那些酷炫Shader的时,还可以通过固定功能管线着色器来绘制出一些基本的内容。

44、协同程序的执行代码是什么?有何用处,有何缺点?

function Start() {

// - After 0 seconds, prints "Starting 0.0"

// - After 0 seconds, prints "Before WaitAndPrint Finishes 0.0"

// - After 2 seconds, prints "WaitAndPrint 2.0"

// 先打印"Starting 0.0"和"Before WaitAndPrint Finishes 0.0"两句,2秒后打印"WaitAndPrint 2.0"

print ("Starting " + Time.time );

// Start function WaitAndPrint as a coroutine. And continue execution while it is running

// this is the same as WaintAndPrint(2.0) as the compiler does it for you automatically

// 协同程序WaitAndPrint在Start函数内执行,可以视同于它与Start函数同步执行.

StartCoroutine(WaitAndPrint(2.0));

print ("Before WaitAndPrint Finishes " + Time.time );

}

function WaitAndPrint (waitTime : float) {

// suspend execution for waitTime seconds

// 暂停执行waitTime秒

yield WaitForSeconds (waitTime);

print ("WaitAndPrint "+ Time.time );

}

作用:一个协同程序在执行过程中,可以在任意位置使用yield语句。yield的返回值控制何时恢复协同程序向下执行。协同程序在对象自有帧执行过程中堪称优秀。协同程序在性能上没有更多的开销。

缺点:协同程序并非真线程,可能会发生堵塞。

45、Mock和Stub有何区别?

Mock与Stub的区别:Mock:关注行为验证。细粒度的测试,即代码的逻辑,多数情况下用于单元测试。Stub:关注状态验证。粗粒度的测试,在某个依赖系统不存在或者还没实现或者难以测试的情况下使用,例如访问文件系统,数据库连接,远程协议等。

46、射线检测碰撞物的原理是?

答:射线是3D世界中一个点向一个方向发射的一条无终点的线,在发射轨迹中与其他物体发生碰撞时,它将停止发射 。

47、客户端与服务器交互方式有几种?

答: socket通常也称作"套接字",实现服务器和客户端之间的物理连接,并进行数据传输,主要有UDP和TCP两个协议。Socket处于网络协议的传输层。

http协议传输的主要有http协议 和基于http协议的Soap协议(web service),常见的方式是 http 的post 和get 请求,web 服务。

48、八十三:Unity中,照相机的Clipping Planes的作用是什么?调整Near、Fare两个值时,应该注意什么?

答:剪裁平面 。从相机到开始渲染和停止渲染之间的距离。

49、如何在Unity3D中查看场景的面试,顶点数和Draw Call数?如何降低Draw Call数?

答:在Game视图右上角点击Stats。降低Draw Call 的技术是Draw Call Batching

50、请问alpha test在何时使用?能达到什么效果?

Alpha Test,中文就是透明度测试。简而言之就是V&F shader中最后fragment函数输出的该点颜色值(即上一讲frag的输出half4)的alpha值与固定值进行比较。Alpha Test语句通常于Pass{}中的起始位置。Alpha Test产生的效果也很极端,要么完全透明,即看不到,要么完全不透明。

51、UNITY3d在移动设备上的一些优化资源的方法

答:

1.使用assetbundle,实现资源分离和共享,将内存控制到200m之内,同时也可以实现资源的在线更新

2.顶点数对渲染无论是cpu还是gpu都是压力最大的贡献者,降低顶点数到8万以下,fps稳定到了30帧左右

3.只使用一盏动态光,不是用阴影,不使用光照探头

粒子系统是cpu上的大头

4.剪裁粒子系统

5.合并同时出现的粒子系统

6.自己实现轻量级的粒子系统,nimator也是一个效率奇差的地方

7.把不需要跟骨骼动画和动作过渡的地方全部使用animation,控制骨骼数量在30根以下

8.animator出视野不更新

9.删除无意义的animator

10.animator的初始化很耗时(粒子上能不能尽量不用animator)

11.除主角外都不要跟骨骼运动apply root motion

12.绝对禁止掉那些不带刚体带包围盒的物体(static collider )运动

NUGI的代码效率很差,基本上runtime的时候对cpu的贡献和render不相上下

13每帧递归的计算finalalpha改为只有初始化和变动时计算

14去掉法线计算

15不要每帧计算viewsize 和windowsize

16filldrawcall时构建顶点缓存使用array.copy

17.代码剪裁:使用strip level ,使用.net2.0 subset

18.尽量减少smooth group

19.给美术定一个严格的经过科学验证的美术标准,并在U3D里面配以相应的检查工具

52、四元数有什么作用?

答:对旋转角度进行计算时用到四元数

53、将Camera组件的ClearFlags选项选成Depth only是什么意思?有何用处?

答:仅深度,该模式用于对象不被裁剪。

54、如何让已经存在的GameObject在LoadLevel后不被卸载掉?

void Awake()

{

DontDestroyOnLoad(transform.gameObject);

}

55、在编辑场景时将GameObject设置为Static有何作用?

答:设置游戏对象为Static将会剔除(或禁用)网格对象当这些部分被静态物体挡住而不可见时。因此,在你的场景中的所有不会动的物体都应该标记为Static。

56、有A和B两组物体,有什么办法能够保证A组物体永远比B组物体先渲染?

答:把A组物体的渲染对列大于B物体的渲染队列

57、将图片的TextureType选项分别选为Texture和Sprite有什么区别

答:Sprite作为UI精灵使用,Texture作用模型贴图使用。

58、问一个Terrain,分别贴3张,4张,5张地表贴图,渲染速度有什么区别?为什么?

答:没有区别,因为不管几张贴图只渲染一次。

59、什么是DrawCall?DrawCall高了又什么影响?如何降低DrawCall?

答:Unity中,每次引擎准备数据并通知GPU的过程称为一次Draw Call。DrawCall越高对显卡的消耗就越大。降低DrawCall的方法:

Dynamic Batching

Static Batching

高级特性Shader降级为统一的低级特性的Shader。

60、实时点光源的优缺点是什么?

答:可以有cookies – 带有 alpha通道的立方图(Cubemap )纹理。点光源是最耗费资源的。

61、Unity的Shader中,Blend SrcAlpha OneMinusSrcAlpha这句话是什么意思?

答:作用就是Alpha混合。公式:最终颜色 = 源颜色 源透明值 + 目标颜色(1 - 源透明值)

62、简述水面倒影的渲染原理?

答: 原理就是对水面的贴图纹理进行扰动,以产生波光玲玲的效果。用shader可以通过GPU在像素级别作扰动,效果细腻,需要的顶点少,速度快

63、简述NGUI中Grid和Table的作用?

答:对Grid和Table下的子物体进行排序和定位

64、请简述NGUI中Panel和Anchor的作用

答:

只要提供一个half-pixel偏移量,它可以让一个控件的位置在Windows系统上精确的显示出来(只有这个Anchor的子控件会受到影响)

如果挂载到一个对象上,那么他可以将这个对象依附到屏幕的角落或者边缘

UIPanel用来收集和管理它下面所有widget的组件。通过widget的geometry创建实际的draw call。没有panel所有东西都不能够被渲染出来,你可以把UIPanel当做Renderer

相关文章:

unity 面试汇总

1、什么是协同程序?答:在主线程运行时同时开启另一段逻辑处理,来协助当前程序的执行。换句话说,开启协程就是开启一个可以与程序并行的逻辑。可以用来控制运动、序列以及对象的行为。2、Unity3D中的碰撞器和触发器的区别&#xff…...

Spring SpringBoot中使用Mybatis-plusDemo1

官网:https://baomidou.com GitHub:GitHub - baomidou/mybatis-plus: An powerful enhanced toolkit of MyBatis for simplify development Gitee:mybatis-plus: mybatis 增强工具包,简化 CRUD 操作。 文档 http://baomidou.com低代码组件库 http://aizuda.com My…...

【18.04Ubuntu中解决无法识别显示屏】

【18.04Ubuntu中解决无法识别外接显示屏】1. 问题来源2. 检查Ubuntu是否识别出外接显示器3. 解决没有识别出外接显示器问题4. 显示器扩展屏幕设置1. 问题来源 实验室的一个dell显示器,通过HDMI连接电脑后,在Windows上连接上就直接可以使用了。由于我电脑…...

Python 协程详解,都在这里了

什么是协程 协程(co-routine,又称微线程、纤程) 是一种多方协同的工作方式。 协程不是进程或线程, 其执行过程类似于 Python 函数调用, Python 的 asyncio 模块实现的异步IO编程框架中, 协程是对使用 asy…...

百家号如何写文章赚钱,百家号写文章真的赚钱?

随着互联网的快速发展,越来越多的人开始关注到写文章赚钱这个领域。而在众多写作平台中,头条号无疑是最受欢迎的一个。那么,百家号写文章赚钱是真的吗?如何写文章赚钱呢?下面我们就来一一解答。 首先,百家号…...

【HDFS】datanodeReport RPC优化

cat datanodeReport.txt | awk ‘{print $8}’ | sort | uniq | wc -l 结果15,说明我们有15个router。 每15秒一个router8次调用这个rpc。15秒是我们的监控采集间隔。 看下router为什么要调用这个rpc。 顺着这个配置项去寻找:dfs.federation.router.dn-report.time-out 一…...

【数据结构】研究链表带环问题

💯💯💯💯 本篇主要研究的是链表带环问题,快慢指针的应用,分析不同解法对带环链表的处理,梳理完本篇你将对链表的理解更加透彻Ⅰ.研究链表带环问题Ⅱ.扩展带环问题1.为什么慢指针和快指针一定会相…...

数据仓库的设计思想

数据仓库设计 知识点01:设计大纲与学习目标 #内容大纲1、数据仓库基础知识(回顾)什么是数仓为什么有数仓数仓的特点是什么OLTP和OLAP系统区别(数据库和数仓的区别)2、数仓系统的架构与核心流程核心1:ETL核…...

【JavaSE】数组的定义与使用详解

目录 1.数组的基本概念 1.1数组的好处 1.2什么是数组 1.3数组的定义及初始化 1.3.1数组的创建 1.3.2数组的初始化 1.4数组的使用 1.4.1访问数组中的元素 1.4.2遍历数组 2.数组的类型 2.1认识JVM的内存分布 2.2基本类型变量与引用类型变量 2.3认识null 3.数组的应…...

Kubernetes14:Helm为了部署像微服务这种的大型项目

Kubernetes14:Helm介绍(为了部署像微服务这种的大型项目) 1、Helm的引入 (1)之前方式部署应用基本过程 编写yaml文件 1、deployment kubectl create deployment nginx --imagenginx --dryrun -o yaml > nginx.yaml2、Service kubect…...

2.3操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则

2.3操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则页式存储逻辑地址、物理地址如何判断物理地址和逻辑地址它们之间的地址关系?页面大小与页内地址长度的关系…...

设计模式3——结构型模式

结构型模式描述如何将类或对象按某种布局组成更大的结构,它分为类结构型和对象结构型模式,前者采用继承机制来组织接口和类,后者采用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”&…...

css——图片缩放,拉伸,变形的解决办法

你的图片即将变得超级丝滑图片为什么会拉伸变形?怎么解决?css的object-fit属性object-fit属性有什么用介绍一下object-position举个小栗子图片为什么会拉伸变形? 前端布局时,图片会出现拉伸、缩放和变形的原因可能有多种: 1.例如图…...

【工具使用】STM32CubeMX-基础使用篇

一、概述 无论是新手还是大佬,基于STM32单片机的开发,使用STM32CubeMX都是可以极大提升开发效率的,并且其界面化的开发,也大大降低了新手对STM32单片机的开发门槛。     本文主要面向初次接触STM32CubeMX的同学,大…...

面试题解-理解cookie、session和token

项目vuespringboot 1、token 用户填写密码账号发送至后端,由后端生成token,返回给前端,前端把它存放起来,如放在cookie或者localStorage里面 前端向服务器发起请求时在请求头携带token,判断用户身份给与反应。 //后…...

Buuctf [GUET-CTF2019]number_game 题解

目录 一.主函数逻辑 二.level_stor()函数 三.mid_stor函数 四.operate函数 五.judge2函数 六.求解flag 一.主函数逻辑 ①先输入一个字符串,然后judge1()函数遍历它,判断字符是否在[0,4]区间范围内 ②将输入的字符串用层次遍历的方式存储为一个二叉树root ③再将二叉树r…...

OsgEarth配置.earth文件支持wms服务

<!-- 参考 http://vmap0.tiles.osgeo.org/wms/vmap0?LAYERSbasic&SERVICEWMS&VERSION1.1.1&REQUESTGetMap&STYLES&FORMATimage%2Fjpeg&SRSEPSG%3A4326&BBOX-90,45,-45,90&WIDTH256&HEIGHT256 --> <!-- 可用 2023.03.09--> …...

【数据结构】详解空间复杂度

Yan英杰的博客 悟已往之不谏 知来者之可追 目录 空间复杂度 ​案例1:计算BubbleSort的空间复杂度&#xff1f; 案例2:计算斐波那契额数列的前N项的空间复杂度 案例3:计算阶乘递归Fac的空间复杂度&#xff1f; 案例4:F1和F2两函数是否使用的同一块空间 案例5:计算该…...

腾讯云GPU游戏服务器/云主机租用配置价格表

用于游戏业务的服务器和普通云服务器和主机空间是不同的&#xff0c;游戏服务器对于硬件的配置、网络带宽有更大的要求&#xff0c;一般游戏服务器根据不同的配置和适用场景会有十几元一小时到几十元一小时&#xff0c;而且可以根据不同的按量计费。而普通的云服务器可能需要几…...

配置临时SSL子域名泛化证书

配置临时SSL子域名泛化证书 三个月有效期第一步&#xff1a;访问SSL证书地址第二步&#xff1a;在华为云上/其他服务器上搜索DNS云解析服务类似的功能第三步&#xff1a;将SSL申请的信息添加到服务器的记录集中第四步&#xff1a;添加完信息进行保存获取key / crt第五步&#x…...

【Linux:环境变量的理解】

目录 1 Z(zombie)-僵尸进程 2 孤儿进程 3 环境变量 3.1 基本概念 3.2 测试HOME 3.3 和环境变量相关的命令 3.4 环境变量的组织方式 3.5 环境变量通常是具有全局属性的 在讲环境变量之前&#xff0c;我们先把上次遗留知识点给总结了&#xff08;僵尸进程和孤儿进程&…...

python数据类型与数据结构

目录 一、数据类型 1.1变量与常量 1.1.1变量 1.1.2常量 1.2字符串类型 1.3整数与浮点数 1.4List列表 1.5 元组tuple 1.6字典dict 二、字符串格式化 三、数据输入和类型转换 四、简单列表习题练习 一、数据类型 变量类型&#xff1a; 整数int&#xff08;4字节&#x…...

大数据自学学习技巧?

经常有人说&#xff1a;先别管大数据是什么&#xff0c;现在理解不了没关系&#xff0c;先开始学&#xff0c;等学着学着就明白了&#xff0c;这种学习路线基本是混合的&#xff0c;很难分清楚自己学了这段怎么用在以后项目中&#xff0c;所以会越学越迷茫&#xff0c;但是等你…...

Qt音视频开发22-音频播放QAudioOutput

一、前言 以前一直以为只有Qt5以后才有QAudioOutput播放音频&#xff0c;其实从Qt4.6开始就有&#xff0c;在Qt6中变成了QAudioSink&#xff0c;功能一样。用QAudioOutput播放音频pcm数据极其方便&#xff0c;只需要指定音频播放设备&#xff08;可能电脑上有多个音频输出设备…...

JavaEE简单示例——Spring的入门程序

简单介绍&#xff1a; 在之前我们简单的介绍了有关于Spring的基础知识&#xff0c;那么现在我们就来一步步的把理论融入到实践中&#xff0c;开始使用这个框架&#xff0c;使用过程也是非常的简单&#xff0c;大致可以分为几个基础的步骤&#xff1a; 1.首先引入Spring的Mave…...

【嵌入式Bluetooth应用开发笔记】第一篇:DBUS概述与蓝牙开发小试牛刀

DBUS概述 DBus&#xff08;D-Bus&#xff09;是一个在不同程序之间传递消息的系统总线。DBus为不同的程序之间提供了一种通信机制&#xff0c;这种通信制可以在不需要知道对方程序的情况下进行通信。 DBus可以使用多种编程语言来开发&#xff0c;包括C、C、Python、Java等。在…...

如何在电脑更换新硬盘后迁移window11系统?2种迁移方法分享!

随着时间的流逝&#xff0c;数据量也在逐渐增多&#xff0c;就会导致您的硬盘空间也变得越来越小&#xff0c;因此系统运行速度可能会受到一些影响而越来越慢。为了摆脱这种情况&#xff0c;您可以选择升级到更大的硬盘来使计算机获取更大的磁盘空间&#xff0c;或者迁移系统到…...

6、Elasticsearch优化

一、Elasticsearch集群配置 1、硬件选择 Elasticsearch的基础是 Lucene &#xff0c;所有的索引和文档数据是存储在本地的磁盘中&#xff0c; 具体的路径可在 ES 的配置文件 ../config/elasticsearch.yml 中配置&#xff0c;如下&#xff1a;磁盘在现代服务器上通常都是瓶颈。…...

给力|这是一个专业的开源快速开发框架!

在低代码开发市场&#xff0c;专业的开源快速开发框架可以助力企业提升办公协作效率&#xff0c;实现提质增效的办公自动化的发展目标。 流辰信息低代码技术开发平台服务商&#xff0c;拥有丰富的技术经验和案例合作经验&#xff0c;针对不同的客户需求&#xff0c;提供个性化、…...

CIMCAI smart shipping company product container damage identify

世界港航人工智能领军者企业CIMCAI&#xff0c;领先智能航运船公司集装箱管理产品ceaspectusS™全球规模化应用落地智能化航运&#xff0c;全球前三船公司认可验箱标准应用。全球港航人工智能领军者企业CIMCAI&#xff0c;是全球第一家完成两百万次人工智能验箱&#xff0c;上亿…...

ego微商小程序项目-接口测试

文章目录 1.接口理论回顾1.1 接口测试相关概念1.2 接口测试流程2.接口测试文档2.1 接口测试文档基础2.2 ego微商小程序的接口文档解析3.设计接口测试用例3.1 接口测试用例基础3.2 ego微商小程序接口测试用例4. 执行测试用例4.1 ego小程序测试用例执行4.1.1 首页-轮播图4.1.2 用…...

excel文件已经损坏怎么办

1. excel文件突然损坏怎么办Excel修复不成功还可以尝试其他修复方式。1、Excel提示文件已损坏可能是受保护视图的问题。如果打开文件碰到此提示&#xff0c;可以先点确定。在按以下步骤操作&#xff1a;1&#xff09;在空白程序界面&#xff0c;点击功能栏的【文件】&#xff0…...

Java【数据结构入门OJ题33道】——力扣刷题记录1

文章目录第一天存在重复元素最大子数组和第二天两数之和合并两个有序数组第三天两个数组的交集买卖股票最佳时机第四天重塑矩阵杨辉三角第五天有效的数独矩阵置零第六天字符串中第一个唯一字符救赎金第七天判断链表是否有环合并两个有序链表移除链表元素第八天反转链表删除重复…...

Spring事务介绍

文章目录一、编程式事务二、声明式事务&#xff08;常用&#xff09;三、事务实战详解3.1&#xff09;事务的回滚机制3.2&#xff09;事务的传播3.3&#xff09;事务超时时间3.4&#xff09;事务隔离级别3.5&#xff09;事务回滚条件Spring中对事务有两种支持方式&#xff0c;分…...

Intellij Idea如何使用VM

打开Run/Debug Configuration 然后在More option 里选择 add VM options 根据要实现的目的选择main class 比如说要建造class diagram 那就选择app.ClassDiagramGenerator 然后在下面那行输入 D:\software-engineering\2023\commons-compress\target\classes true true org.apa…...

基础04-什么时候不能使用箭头函数

箭头函数的缺点 题目 什么时候不能使用箭头函数&#xff1f; 箭头函数的缺点 没有 arguments const fn1 () > {console.log(this, arguments) // 报错&#xff0c;arguments is not defined } fn1(100, 200)无法通过 call apply bind 等改变 this const fn1 () >…...

算法小抄5-原地哈希

书接上回,学会了数组中重复数字的解法三,相信接下来的题也难不倒你 找到数组中消失的数字 题目链接 题意 对于一个大小为n的数组,数组中所有的数都在[1,n]内,其中有些数字重复了,由于有些数字重复了,另一些数字就一定会确实,这次需要找到所有缺少的数字并且返回结果 有没有发…...

java零基础入门(1)

java零基础入门一、JRE和JDK1.1 JRE1.2 JDK1.3 IDK&#xff0c;JRE&#xff0c;JVM三者的包含关系二、CMD2.1 打开CMD2.2 常用CMD命令2.2.1 盘符名称 冒号2.2.2 dir2.2.3 cd 目录2.2.4 cd ..2.2.5 cls2.2.6 exit2.2.7 cd \2.2.8 cd \目录\目录\目录\目录2.3 利用快捷cmd打开 Q…...

java socket实例

/*** 启动项目后就创建Server Socket服务*/PostConstructpublic void runServerSocket() {try {ExecutorService executorService Executors.newFixedThreadPool(10);// 创建线程池ServerSocket serverSocket new ServerSocket(9090);// 在设备上配置的服务端监听端口为9090e…...

计算机中信息的表示和处理 整数和小数的二进制表示

信息的表示和处理整数进制字移位运算无符号数和有符号数加法运算小数定点表示IEEE 浮点表示规格化和非规格化舍入浮点运算现代计算机存储和处理的信息以二值信号表示&#xff0c;这些二进制数字称为位&#xff0c;为什么要用二进制来进行编码&#xff1f;因为二进制只有1和0两种…...

Chapter2.2:线性表的顺序表示

该系列属于计算机基础系列中的《数据结构基础》子系列&#xff0c;参考书《数据结构考研复习指导》(王道论坛 组编)&#xff0c;完整内容请阅读原书。 2.线性表的顺序表示 2.1 顺序表的定义 线性表的顺序存储亦称为顺序表&#xff0c;是用一组地址连续的存储单元依次存储线性表…...

老马闲评数字化「4」做数字化会不会被供应商拿捏住

原文作者&#xff1a;行云创新CEO 马洪喜 导语 开年过后业务特别的繁忙&#xff0c;出差也比较多&#xff0c;所以有段时间没更新了&#xff0c;对不住大家&#xff01; 上一集&#xff08;您可以查看“行云创新”主页阅读原文&#xff09;咱们聊了数字化转型的“想转、急转、…...

robosuite添加无碰撞的模型

1 前言 最近在使用robosuite时,需要在仿真环境中可视化物体的目标位置,从而方便观察训练情况,可视化的物体有以下要求: 形状尺寸与操作的物体一样半透明只有visual,不与场景其他物体有碰撞可以在每次step后设置位置,且固定在设定的位置,不受重力影响 2 方法 找了半天,最终确…...

JS学习笔记day03

今日内容 零、 复习昨日 CSS 美化,复用,样式文件和表现文件分离便于维护 选择器 {属性:值;…} 引入css 内联文件内部使用style标签外部文件 <link href"路径" rel"stylesheet" type"text/css"> 选择器 基本 idclass标签名 属性 标签名…...

离散数学笔记_第一章:逻辑和证明(3)

1.3 命题等价式1.3.1 逻辑等价式 1.3.2 条件命题和双条件命题的逻辑等价式 1.3.3 德摩根律 1.3.4 可满足性 可满足的 不可满足的 可满足性问题的解 1.3.5析取范式&#xff08;基本积之和&#xff09;&#xff0c;合取范式&#xff08;基本和之积&#xff09;1.3.6合式公式1…...

软件测试分类知识分享,第三方软件测试机构收费贵不贵?

软件测试可以很好的检验软件产品的质量以及规避产品上线之后可能会发生的错误&#xff0c;随着技术的发展&#xff0c;软件测试已经是一个完整且体系庞大的测试活动&#xff0c;不同的测试领域有着不同的测试方法、技术与名称&#xff0c;那么具体有哪些分类呢? 一、软件测试…...

爬虫(二)解析数据

文章目录1. Xpath2. jsonpath3. BeautifulSoup4. 正则表达式4.1 特殊符号4.2 特殊字符4.3 限定符4.3 常用函数4.4 匹配策略4.5 常用正则爬虫将数据爬取到后&#xff0c;并不是全部的数据都能用&#xff0c;我们只需要截取里面的一些数据来用&#xff0c;这也就是解析爬取到的信…...

【C++、C++11】可变参数模板、lambda表达式、包装器

文章目录&#x1f4d6; 前言1. 可变参数模板1.1 万能模板&#xff1a;1.2 完美转发&#xff1a;1.3 可变参数模板的使用&#xff1a;1.4 emplace_back&#xff1a;2. lambda表达式2.1 lambda表达式的定义&#xff1a;2.2 lambda表达式的用法&#xff1a;2.2 - 1 捕捉列表的用法…...

外贸主机测评

一、俄罗斯vps 服务商&#xff1a; JUSTG: Home - Sun Network Company Limited LOCVPS: LOCVPS 全球云 - 十年老牌 为跨境外贸/远程办公/网站建设提供澎湃动力 JUSTHOST: justhost.ru RUVDS: Gcorelabs: 二、主机测评指标&#xff1a; 1、速度、延迟、丢包、路由测试…...

Meta CTO:Quest 2生命周期或比预期更久

前不久&#xff0c;Meta未来4年路线图遭曝光&#xff0c;泄露了该公司正在筹备中的一些AR/VR原型。除此之外&#xff0c;还有消息称Quest Pro或因销量不佳&#xff0c;而不再迭代。毫无疑问&#xff0c;Meta的一举一动持续受到行业关注&#xff0c;而面对最近的爆料&#xff0c…...