Mas9uerade

去见那些曾见未见的风景

闭包与优化

"面试小记"

“面试知识点整理” 闭包 闭包的概念 内层的函数可以引用包含在它外层的函数的变量,即使外层函数的执行已经终止。但该变量提供的值并非变量创建时的值,而是在父函数范围内的最终值 闭包的优点 使用闭包,我们可以轻松的访问外层函数定义的变量,这在匿名方法中普遍使用。比如有如下场景,在winform应用程序中,我们希望做这么一个效果,当用户关闭窗体时,给用户一个提示框。我们...

C#引用类型与值类型的区别

"面试小记"

“面试知识点整理” struct和class的区别 class和struct最本质的区别是class是引用类型,而struct是值类型,它们在内存中的分配情况有所区别。 什么是class? class(类)是面向对象编程的基本概念,是一种自定义数据结构类型,通常包含字段、属性、方法、属性、构造函数、索引器、操作符等。在.NET中,所有的类都最终继承自System.Objec...

平衡二叉树

"面试小记"

“面试知识点整理” 平衡二叉树 平衡二叉搜索树(Self-balancing binary search tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。 平衡因子 某结点的左子树与右子树的高度(深度)差即为该结点的平衡因子(BF,Balance Factor)。...

Unity 协程与进程

"面试小记"

“面试知识点整理” 协程和进程和线程的区别 进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。 线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。 协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。 Unity协程执行原理 unity中协...

Map类的实现

"面试小记"

“面试知识点整理” Map hashmap的底层数据结构散列表,即:数组+链表,创建的时候初始化一个数组,每个节点可以为一个链表 一,前言 1.1,概述 现实生活中,我们常会看到这样的一种集合:IP地址与主机名,身份证号与个人,系统用户名与系统用户对象等,这种一一对应的关系,就叫做映射(K-V)。Java提供了专门的集合类用来存放这种对象关系的对象,即java.util....

C++ Inline函数与宏定义的区别

"面试小记"

“面试知识点整理” Inline函数 内联函数和普通函数相比可以加快程序运行的速度,因为不需要中断调用,在编译的时候内联函数可以直接呗镶嵌到目标代码中。内联函数要做参数类型检查,这是内联函数跟宏相比的优势。 inline是指嵌入代码,就是在调用函数的地方不是跳转,而是把代码直接写到那里去。对于短小的代码来说,inline可以带来一定的效率提升,而且和C时代的宏函数相比,inl...

C#委托

"面试小记"

“面试知识点整理” Action和function区别 Delegate类是委托类型的基类。 但是,只有系统和编译器才能显式从 Delegate 类或 MulticastDelegate 类派生。 也不允许从委托类型派生新类型。 Delegate类不被视为委托类型; 它是用于派生委托类型的类。 大多数语言都实现 delegate 关键字,这些语言的编译器可以从 Multicas...

Unity pbr简介

Unity PBR简介 Diffusion & Reflection “漫反射”和“镜面反射”分别描述了物体表面和光的最基本的相互作用。当光线以电磁波的形式传播到物体表面时,会产生反射——光线朝物体表面法线的另一侧离开。这种行为跟一个球碰撞到地面发生弹射的行为一样。在光滑的表面,将产生完美的反射现象。“镜面反射”经常用来描述这种现象。 并不是所有的光在物体表面都产生镜面反射。还有...

Unity3d Shader 学习笔记 3

"Unity Shader 入门笔记"

最近这段时间在找工作,顺便把之前项目里做的一些Shader重新看一遍 半透明材质 思路: 就是在uv的贴图上,额外增加Alpha通道的权重处理,再放在全黑的环境下显示 Shader "Custom/Holography" { Properties { _MainTex("Sprite Texture", 2D) = "white" {} _Color("Col...

Unity Draw Call 优化

"面试小记"

“最近面试被问到Unity的Draw Call优化相关的问题,遂学习了一遍并做笔记,转载自 ” Unity Draw Call 优化 *Drawcall影响的是CPU的效率。因为draw call是CPU调用图形接口在屏幕上绘制对应的东西。 Batch 为了在屏幕上draw一个物件(因为render和draw有些区别,所以为了区分清楚,这些概念用英文),引擎需要提供一个d...