小试牛刀

小试牛刀 专栏收录该内容
3 篇文章 0 订阅

面试常用点–Java基础部分

很多Java面试时,会让手撕冒泡排序,所以我们尽可能多的练习下手撕代码;

手撕冒泡排序

int[] arr = new int[]{2,9,8,6,45,65,12,56,}
int temp=0;
for(int i =0 ;i <arr.length-1;i++){
for(int j = 0 ;j<arr.length-1-i;j++){
	if(arr[j]>arr[j+1]){
	temp = arr[j];
	arr[j] =arr[j+1];
	arr[j+1]=temp;
}
}
}

快速排序

public static void sort(int[] array, int left, int right) {
        if(left > right) {
            return;
        }
        // base中存放基准数
        int base = array[left];
        int i = left, j = right;
        while(i != j) {
            // 顺序很重要,先从右边开始往左找,直到找到比base值小的数
            while(array[j] >= base && i < j) {
                j--;
            }
 
            // 再从左往右边找,直到找到比base值大的数
            while(array[i] <= base && i < j) {
                i++;
            }
 
            // 上面的循环结束表示找到了位置或者(i>=j)了,交换两个数在数组中的位置
            if(i < j) {
                int tmp = array[i];
                array[i] = array[j];
                array[j] = tmp;
            }
        }
 
        // 将基准数放到中间的位置(基准数归位)
        array[left] = array[i];
        array[i] = base;
 
        // 递归,继续向基准的左右两边执行和上面同样的操作
        // i的索引处为上面已确定好的基准值的位置,无需再处理
        sort(array, left, i - 1);
        sort(array, i + 1, right);
    }

斐波那契数–递归

public int f(int n){
 	if(n==1||n==2){
	 return 1;}
 else{
	return f(n-1)+f(n-2);
}
}

throw和throws的区别

throw用于【方法内部】,用于【产生抛出异常】,并且后面只能跟【一个】抛出的异常对象。
throws用于【声明方法】抛出了异常,必须用于【方法参数列表后面】,throws后面跟异常类可以跟多个。

HaspMap常用特点

1.哈希表同时兼具顺序存储结构和链式存储结构,,哈希表的主干就是数组。
比如我们要新增或查找某个元素,我们通过把当前元素的关键字 通过某个函数映射到数组中的某个位置,通过数组下标一次定位就可完成操作。存储位置 = f(关键字)
2.HashMap的主干是一个Entry数组。Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值对。

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<p><span style="font-size: 20px; color: #c00000;"><strong>一: 什么是ECS?</strong></span></p> <p><span style="font-size: 18px;">       ECS是一种新的架构模式(当然是针对Unity本身来说),这是一个取代GameObject / Component 的模式。 其模式遵循组合优于继承原则,游戏内的每一个基本单元都是一个实体,每个实体又由一个或多个组件构成,每个组件仅仅包含代表其特性的数据(即在组件中没有任何方法)。系统便是来处理拥有一个或多个相同组件的实体集合的工具,其只拥有行为(即在系统中没有任何数据)。<br />       ECS旨在比GameObject / MonoBehaviour更容易处理大量物体。ECS由于是面向数据的设计,所以很容易并行高速处理,以及与Unity开发的C#JobSystem/Burst Compiler一起工作,从而获取更高的项目运行性能。</span></p> <p><br /><img src="https://img-bss.csdn.net/201912160829358908.jpg" alt="" /></p> <p><br /><span style="color: #c00000;"><strong><span style="font-size: 20px;">二:ECS总体发展历史</span></strong></span><span style="font-size: 18px;">   <br />       目前Unity公司由Mike Acton 大佬主持DOD(Data Oriented Design 面向数据设计)的全面改革与推进工作,目的是旨在进一步推进Unity系统本身与Unity项目的执行效率。<br />       ECS总体发展:<br />       A: 在Unity2018引入Entities之前,其实ECS框架早已经出现,但是ECS还是因为守望先锋采用了这个框架才被我们所熟知,后来Git上面出现了一个Entitas的插件可以直接用在Unity上面。Entitas-Unity(有多个语言的port版本,Entitas-Unity下统一称为Entitas) 是 Unity的一个ECS(Entity/Component/System)框架,是在github上面的一个开源项目。<br />      B: 经过Unity公司的认可与改造,目前Unity2018.x 版本已经通过 "Package Manager" 提供了Unity版本的ECS插件,名称为:“Entities”。<br />      C: Unity2019.x 版本,对“Entities”插件的API进行了进一步改造与完善,以更规范的API实现更加高效的与规范的编程模式。</span><br /><img src="https://img-bss.csdn.net/201912160829574018.jpg" alt="" /></p> <p> </p> <p><span style="color: #c00000;"><strong><span style="font-size: 20px;">三:ECS(二)小试牛刀篇</span></strong></span><span style="font-size: 18px;"><br />      本套课程在入门篇的基础之上,着重讲解ECS的两大分类:HyBridECS(混合ECS)与Pure ECS(纯ECS)<br />      前者包含Pure ECS的所有功能,且可以使用特定类,把传统的GameObject转成Entities(实体),此种方式更加符合传统的Unity开发习惯。后者为纯粹的ECS,实体上没有多余的Mono脚本。数据存储在Components上,逻辑执行处理在System里面。可以配合利用C# 的 Job System进一步提高执行效率。</span></p> <p> </p> <p> </p> <p> </p> <p><img src="https://img-bss.csdn.net/201912160830111820.jpg" alt="" /></p> <p> </p> <p> </p>
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值