![](https://img-blog.csdnimg.cn/20190909200305701.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
面试准备相关知识
本专栏是博主在准备秋招和实习过程中总结的一些知识
IMUHERO
持续学习者
展开
-
网易互娱面经整理
文章目录前言0.我的面经1.一面面经1.11.21.31.41.51.6服务端1.71.81.9 初级游戏研发1.10 初级游戏研发1.111.12 游戏研发1.13 游戏研发1.14 初级游戏研发1.15 游戏研发2.二面面经2.1 游戏研发2.2 服务端研发2.3 初级游戏研发2.4 游戏研发2.52.6 游戏研发2.72.8 初级游戏研发2.9 初级游戏研发2.10 游戏研发3.写在最后前...原创 2020-03-28 13:38:50 · 4733 阅读 · 0 评论 -
程序猿阶段性总结(一):秋招
今天就要开始写下第一篇python博客了,这也意味着我长达半年多的工作准备阶段和JAVA知识学习告一段落。半年多来,我从一名未成形的通信工程师(大学生),成功转型成为一名JAVA工程师,又在找到工作的一个多月时间,逐渐开始向游戏工程师进行转型。人生总有着太多难以预料,也留下了太多意犹未尽。回想起秋招的艰难历程,在CSDN常写博文进行总结的习惯对我帮助很大,我的秋招总结日志是2019年10月...原创 2019-12-03 18:44:03 · 298 阅读 · 2 评论 -
常考基础:求n以内的素数
public static void main(String[] args) { //查找n以内的素数 boolean isPrime=true; int n=100; for (int i=2;i<=100;i++){ for (int j=2;j*j<=i;j++){ ...原创 2019-05-24 19:05:14 · 1113 阅读 · 0 评论 -
剑指offer:(十七)树的子结构
题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)二、解题分析1.定义一个函数,用于判断两棵树是否相等,public boolean HasSubtree(TreeNode root1,TreeNode root2)2.查找大的树种是否含有拟子树的根节点相等的元素,找到后则以这个节点为起点,判断这两棵树是否相等。如果相等,retu...原创 2019-03-29 00:18:08 · 100 阅读 · 0 评论 -
剑指offer:(十三)调整数组顺序使奇数位于偶数前面
题目描述输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。public class Solution { public void reOrderArray(int [] array) { /*方法一:开辟两个数组空间,再按顺序存入第一个数组 ...原创 2019-03-26 23:18:20 · 77 阅读 · 0 评论 -
剑指offer:(十二)数值的整数次方
题目描述给定一个double类型的浮点数base和int类型的整数exponent。求base的exponent次方。public class Solution { public double Power(double base, int exponent) { double mul=1.00000; if(exponent==0)return 1...原创 2019-03-26 23:16:50 · 94 阅读 · 0 评论 -
剑指offer:(十一)二进制中1的个数
一、题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。二、题目分析(引用剑指offer中的解释)1.注意位移符号的特殊情况三、具体代码:public class Solution { public int NumberOf1(int n) { // int count=0; // i...原创 2019-03-26 23:15:21 · 111 阅读 · 0 评论 -
剑指offer:(十)矩形覆盖
题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?public class Solution { public int RectCover(int target) { if(target<=2)return target; return RectCover(...原创 2019-03-26 23:14:18 · 100 阅读 · 0 评论 -
剑指offer:(九)变态跳台阶
题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。public class Solution { public int JumpFloorII(int target) { if(target<=2)return target; else { retu...原创 2019-03-26 23:12:34 · 99 阅读 · 0 评论 -
剑指offer:(四)重建二叉树
一、题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。二、题目分析:1.这道题是我做过剑指offer里面比较难的,对递归思维的要求,以及二叉树前序遍历、中序遍历性质要求比较高,求解这道题建议在本...原创 2019-03-25 19:57:28 · 103 阅读 · 0 评论 -
剑指offer:(六)旋转数组的最小数字
一、题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。二、题目分析1.由题意得,旋转交界处左边的元素是依次递增的,2.交界处右边的元素比左边的元素小,...原创 2019-03-25 19:29:49 · 156 阅读 · 0 评论 -
剑指offer:(七)斐波那契数列
一、题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39二、解题分析:1.可以采用递归的方法,但是缺陷是效率太差,可能导致系统栈溢出;2.建立一个数组,数组中相应下标存放斐波那契相应元素的值,这些值由arr[index-1]+arr[index-2]计算出来。三、具体代码:public clas...原创 2019-03-25 19:22:20 · 140 阅读 · 0 评论 -
剑指offer:(八)跳台阶
一、题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。二、题目分析1.采用递归求解最为简单2.递归就是将复杂的问题化简成简单问题的一种方法,跳台阶看起来很复杂,但是只要站在上帝视角,就完全能够将这个问题化解。我们不是从青蛙第一次跳跃来计算,而是从最后一阶或者最后2阶往下计算之前所有的可能性。3.首先思考...原创 2019-03-25 19:01:27 · 94 阅读 · 0 评论 -
实习面试:(一)不使用中间量交换两个值
//第一种方法,数学运算/* 若a=1,b=2;a = a + b; =3b = a - b; =1a = a - b; =2*///第二种方法,位异或运算/* 若a=1=01b, b=2=10b;a = a^b;=01^10=11b = a^b; =11^10=01a = a^b; =11^01=10*/...原创 2019-03-16 11:23:28 · 126 阅读 · 0 评论 -
宝石合成升级问题
问题1:每使用一个宝石,有50%的概率会成功让宝剑升一级,50%的概率会失败。如果宝剑的级数大于等于5的话,那么失败会使得宝剑降1级。如果宝剑的级数小于5的话,失败没有效果。问题是:期望用多少个宝石可以让一把1级的宝剑升到9级?E1=E2=E3=E4=Ea=2 即到5级时的期望数量是8个5-9级:每一级1/2消耗1个升级,1/2消耗一个变成上一级,换个思路,平均花费pa=1/2个...原创 2019-10-23 16:44:11 · 607 阅读 · 0 评论 -
JAVA虚拟机栈的栈帧操作
常量池的信息关键部分分析:1.descriptor:(II)I,表示参数类型,两个Int相同的参数2.flags:ACC_PUBLI , ACC_STATIC ,表示类的修饰符是public和static3.Code部分stack = 2,表示操作数栈的深度为2locals = 3 ,本地变量容量为3args_size = 2,表示参数的大小是2个Lin...原创 2019-10-18 17:50:10 · 229 阅读 · 0 评论 -
Java异常体系
1. throwable-> 1.1 Error-> StackOverFlowError OutOfMemoryError 1.2 Exception-> 1.2.1 RuntimeException-> NollPointerException ...原创 2019-10-18 10:43:42 · 114 阅读 · 0 评论 -
图论算法相关
一、遍历深度优先遍历广度优先遍历二、最短路径算法https://mp.weixin.qq.com/s/i5YNtG-rDrCGEeKD9B8VWQ迪杰斯特拉:使用一张表,记录起点到所有点的距离,并且不断刷新如果需要得到路径,可以使用一个from[]数组,表示当前下标的前一个。三、最小生成树(学习连接,公众号五分钟学算法:最小生成树)Prim算法:顶点集...原创 2019-10-16 20:05:33 · 111 阅读 · 0 评论 -
java自增的线程安全问题
一、自增会带来线程安全问题吗?为什么?会!1.i++在字节码层面分为三步:保存当前值,执行添加操作,更新新值2.多线程操作时,可能会同时获取到旧值(假设为1),添加操作后为2,第一个线程刷新新值为3,第二个刷新还是3。二、volatile可以保证线程安全吗?不可以!volatile只能保证可见性,以及顺序性但是不能保证多个线程同时操作三、如何保证线程安全?syn...原创 2019-10-14 22:47:47 · 1320 阅读 · 0 评论 -
JAVA的多态
一、多态的基本概念包含向上转型、重载、重写......二、向上转型向上转型调用的方法,如果子类中重写了,则会调用子类的方法。如果子类中重载了,则会调用父类的方法,因为重载的方法就不在父类引用的范畴。三、调用的流程this(O object)->super(O object)->this(super(O object))->super(super...原创 2019-10-14 22:19:29 · 112 阅读 · 0 评论 -
try catch finally的执行顺序
一、try中出现异常1.try中异常之后的代码不会被执行2.会执行catch中的代码3.最后执行finally的代码二、try中有return1.先保存return中的值,然后执行finally中的代码,最后return2.如果try中没有异常就不会执行catch三、finally中有return执行到finally中的return 就会直接提前结束程序。(不管t...原创 2019-10-14 11:35:41 · 167 阅读 · 0 评论 -
DNS解析的具体流程
一、具体流程网络客户端->本地DNS服务器(查询缓存)->DNS根服务器(给出域服务器地址)->域服务器(给出域名解析服务器地址)->域名解析服务器(域名和ip地址的对应关系)->本地DNS服务器(缓存ip,并且将结果返回给网络客户端)二、图示参考文章:https://www.cnblogs.com/crazylqy/p/71...原创 2019-10-14 11:09:34 · 254 阅读 · 0 评论 -
get和post的本质区别
一、标准答案1.get请求有大小限制,一般为2kb,post一般没有大小限制。2.get请求放在url中,post请求放在报文体中3.get请求在url中可见,安全性不如post4.get请求具有幂等性,post请求不具有幂等性二、本质答案:1.二者都是http请求,基于tcp/ip传输,并无差别。但是由于Http的规定和浏览器/服务器的限制,导致他们在应用过程中体现...原创 2019-10-14 10:30:10 · 385 阅读 · 0 评论 -
计数排序和桶排序
目录一、计数排序二、桶排序一、计数排序假设4,3,2,2,6,71.一次遍历找到max=7,min=2;2.计算要创建的桶大小为:max-min+1,并创建桶;3.第二次遍历,将值存进通中,每个下标对应2~7的第几位,值为这个位出现的次数;4.从头到尾输出,如果次数=0,不输出。为1,输出一次。>1,输出多次。public List<...原创 2019-09-18 15:54:37 · 218 阅读 · 0 评论 -
计算机网络基础知识补充
1.IP地址的计算原创 2019-09-08 16:25:08 · 120 阅读 · 0 评论 -
异常
Throwable的父类是Objecterro:系统崩溃/虚拟机错误/内存空间不足/方法调用溢出:StackOverflowError-》RuntimeException:空指针(使用if(a==null)来进行避免)-》非RuntimeExceptiom:编译期可以检查出来——————————————————————————————————————...原创 2019-10-10 11:54:24 · 79 阅读 · 0 评论 -
反射相关
是什么?任何一个都可以...任何一个都可以...为什么?java从源码到运行经历三个阶段:Source/Class/Runtime反射是工作在Runtime重点在于,如果在Source有部分信息是不清晰的,需要在Runtime阶段动态临时加载,反射就可以派上用场。->不需要知道类名就可以获取类对象->可以修改和使用private属性和方法怎么做?->cla...原创 2019-10-02 19:34:51 · 119 阅读 · 0 评论 -
排序算法的稳定性
目录一、稳定性二、为什么不稳定:1.快速排序:2.希尔排序3.选择排序4.堆排序:一、稳定性稳定:冒泡排序、插入排序、归并排序、不稳定:快速排序、希尔排序、选择排序、堆排序二、为什么不稳定:1.快速排序:选定的哨兵index=0,最后一定会跟中间的某个元素交换,如果中间这个元素正好是3,那么就会发生前后替换。【3(1) 4 5 ...原创 2019-09-10 11:22:56 · 150 阅读 · 0 评论 -
算法题
目录一、链表1.环形链表2反转链表3.反转部分链表4.反转K个一组的链表5.从后往前K个一组反转链表6.两数相加I7.两数相加II8.归并链表9.排序链表(O(nlogn)时间复杂度、空间复杂度为O1)10.删除链表中的重复元素(所有元素)二、二叉树1.非递归遍历:前、中、后、层2.二叉树的最小深度3.二叉树节点个数合集...原创 2019-09-09 21:11:50 · 260 阅读 · 0 评论 -
数据库基础知识补充
1.约束NOTNULL:用于控制字段的内容一定不能为空(NULL)。UNIQUE:控制字段内容不能重复,一个表允许有多个UNIQUE约束。PRIMARYKEY:也是用于控制字段内容不能重复,但它在一个表只允许出现一个。FOREIGNKEY:FOREIGNKEY约束用于防止非法数据插入外键列,因为外键列的值必须在主表中存在。CHECK:用于控制字段的值范围。DEFAULT:用于设置新记...原创 2019-09-08 16:23:49 · 82 阅读 · 0 评论 -
洗牌算法
注:目前已经理解第一种剩余知识仍待接触!1. 背景笔试时,遇到一个算法题:差不多是 在n个不同的数中随机取出不重复的m个数。洗牌算法是将原来的数组进行打散,使原数组的某个数在打散后的数组中的每个位置上等概率的出现,刚好可以解决该问题。2. 洗牌算法由抽牌、换牌和插牌衍生出三种洗牌算法,其中抽牌和换牌分别对应Fisher-Yates Shuffle和Knut...原创 2019-09-07 14:46:04 · 374 阅读 · 0 评论 -
引用传递和值传递
对象传递(数组、类、接口)是引用传递,原始类型数据(整型、浮点型、字符型、布尔型)传递是值传递。那么什么是值传递和应用传递呢?值传递是指对象被值传递,意味着传递了对象的一个副本,即使副本被改变,也不会影响源对象。(因为值传递的时候,实际上是将实参的值复制一份给形参。)引用传递是指对象被引用传递,意味着传递的并不是实际的对象,而是对象的引用。因此,外部对引用对象的改变会反映到所有的...转载 2019-09-06 17:57:12 · 105 阅读 · 0 评论 -
秋招笔试题汇总
目录华为实习笔试题(2019年4月10日)题目一:题目二:题目三:华为笔试2019.9.7笔试题反思第一题第二题第三题帆软笔试(范围区间内数组的最大乘积)一、范围区间内数组的最大乘积360笔试题(2019/8/31)一、寻找子串二、散步科大讯飞笔试(2019/9/12)华为实习笔试题(2019年4月10日)题目一:题目描述:连续输...原创 2019-09-12 20:48:02 · 3099 阅读 · 0 评论 -
数学相关
1、排列有限集的子集按某种条件的序化法排成列、排成一圈、不许重复或许重复等。从n个不同元素中每次取出m(1≤m≤n)个不同元素,排成一列,称为从n个元素中取出m个元素的无重复排列或直线排列,简称排列。2、组合从n个不同元素中每次取出m个不同元素(0≤m≤n),不管其顺序合成一组,称为从n个元素中不重复地选取m个元素的一个组合。所有这样的组合的总数称为组合数,这个组合数...原创 2019-09-14 15:09:54 · 124 阅读 · 0 评论 -
计算机基础
冯·诺依曼结构:数学家冯·诺依曼提出了计算机制造的三个基本原则,即:采用二进制逻辑、程序存储执行计算机由五个部分组成(运算器、控制器、存储器、输入设备、输出设备)这套理论被称为冯·诺依曼体系结构。...原创 2019-09-26 23:26:18 · 93 阅读 · 0 评论 -
接口和抽象类
相同点:1.都是上层的抽象层2.都不能被实例化3.都包含抽象方法不同点:1.接口只能包含常量、抽象类可以包含变量和常量https://blog.csdn.net/ameyume/article/details/6189749(开闭原则:接口对拓展开放,对修改关闭)2.可以实现多个接口,只能继承一个抽象类3.接口只能包含抽象方法,抽象类可以包含抽象方法和普通...原创 2019-09-22 18:38:23 · 83 阅读 · 0 评论 -
静态类、静态方法、静态变量
一、静态类1.如果一个类要被声明为static,只有一种情况,就是静态内部类。在外部声明,编译期会报错。2.静态类只能访问静态变量或者静态方法3.静态内部类可以声明普通变量和方法,也可以声明静态变量和方法。普通内部类不能声明静态变量和方法。4.静态类可以直接初始化,普通内部类要分两步初始化二、静态方法和静态类1.为该类的所有实例所共享2.当某个类的实例修改了...原创 2019-09-22 18:17:01 · 2670 阅读 · 0 评论 -
二刷剑指offer
目录1.二进制中1的个数2.重建二叉树3.二叉搜索树的后叉遍历序列4.二叉树中和为某一值的路径5.数组中出现次数超过一半的数字6.整数中1出现的次数7.把数组排成最小的数8.数组中的逆序对9.两个链表的第一个公共节点10.数字在排序数组中出现的次数11.丑数12.数组中只出现一次的数字13.和为S的正数序列14.左旋转字符串15.求1+2...原创 2019-09-21 17:51:44 · 200 阅读 · 0 评论 -
单调栈
//双栈法排序,排序的结果是栈顶最大,栈底最小 public Stack<Integer> twoStackSort(Stack<Integer>stack){ Stack<Integer>res = new Stack<>(); if (stack.isEmpty())return res; ...原创 2019-09-20 09:52:06 · 107 阅读 · 0 评论 -
大数据量:BitMap的使用
BitMapBitMap从字面的意思,很多人认为是位图,其实准确的来说,翻译成基于位的映射。在所有具有性能优化的数据结构中,大家使用最多的就是hash表,是的,在具有定位查找上具有O(1)的常量时间,多么的简洁优美。但是数据量大了,内存就不够了。当然也可以使用类似外排序来解决问题的,由于要走IO所以时间上又不行。所谓的Bit-map就是用一个bit位来标记某个元素对应的Value,...原创 2019-09-18 15:03:55 · 737 阅读 · 0 评论