百度云计算部门面试

来源:互联网 发布:电商美工的目的 编辑:程序博客网 时间:2024/05/18 20:35

感觉百度部门之间面试都没加锁呢。。一个个部门都开始来面试了。。。

今天面了一个百度的云计算部门,对方是一个姐姐,感觉还挺客气的,说重点吧,讲讲面试的过程,不过感觉那个姐姐就是列了个题目列表,按顺序一个个问的。

(1)for和foreach的区别(从源码角度分析一下)?
答:在固定长度或长度不需要计算的时候for循环效率高于foreach。
在不确定长度,或计算长度有性能损耗的时候,用foreach比较方便。
并且foreach的时候会锁定集合中的对象,期间不能修改。

foreach

//第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a,以后每次再执行 var a in GetList() 的时候 调用 MoveNext.直到循环结束.foreach   (var a in GetList()){    ...}var a;IEnumerator  e  =  GetList().GetEnumerator();while (e.MoveNext){    a = e.Current;}

for

//for 循环每次循环会调用 GetCount() 来比较长度, 而 foreach 不考虑长度,只调用一次GetList()。for(int i = 0; i < GetCount(); i++){  ....}int i = 0;while(i < GetCount()){  ...}

(2)32位系统int的取值范围?
unsigned int 0~4294967295(2^32-1)
int -2147483648(-2^31) ~2147483647(2^32-1)
十亿数量级的。

(3)HashMap的源码?什么时候扩容?扩容方式?解决冲突方式?

(4)memory copy与string copy的区别?
答:表示不会,没有答出来,感觉是C++的呀。。。
网上搜了一个答案:

1、memory拷贝,根据拷贝的字节个数,从src一个一个字节拷贝到dst,拷贝过程不管src的取值,也不管dst是否能容纳。2、因此,对于memory拷贝,src中NULL字符(取值为0的字符)后面的字符也能拷贝过去。不管dst是否能容纳,都拷贝过去,会存在踩内存。为了避免踩内存,拷贝的字节个数,需要小于等于dst分配的大小。3string拷贝,遇到src的NULL字符结束。因此,strcpy有两个问题特别需要注意:一,src结尾必须要有NULL字符,否则会一直拷贝下去,直到遇到NULL字符。二,dst在src有效长度的基础上,要多分配一个字符,用于保存NULL字符,如果没有多分配这个字符,会导致拷贝到dst的时候,踩一个字节的内存。4、src没有NULL字符,会一直拷贝下去,直到遇到NULL字符,怎么解决这个问题?使用strncpy,表示最多拷贝n个字节。如果不到n个字节,遇到src中的NULL字符,结束拷贝,并且从当前点到n位置,补充NULL。这一点和memory拷贝不同,memcpy不管src的取值,都会拷贝n个字节。5、注意:string src ="abcdabcd";char* dst = new char[8];strcpy(dst,src.c_str()); // 踩内存,src多出一个NULL,而dst分配的内存不够strncpy(dst,src.c_str(),8);// 不踩内存memcpy(dst,src.c_str(),8); // 不踩内存strncpymemcpy不踩内存,但是会导致dst没有结束符。这往往会出现问题,比如dst再拷贝到其他地方。因此,解决办法最好是 dst多分配一个字符,用于保存NULL,并且初始化dst,如下:char* dst = new char[src.size()+1];memset(dst,0,src.size()+1);

(5)【操作系统】页面置换算法有哪些?LRU怎么进行优化?

(6)【操作系统】分页与分段的区别?

(7)【算法题】判断一个括号字符串是否匹配正确,如果括号有多种,怎么做?如(([]))正确,[[(()错误。

答:用个栈就行啦,leetcode上的easy难度。

(8)【算法题】一个数组,前半段是递增的,后半段是递减的,找出数组中最大的值?
答:类似于二分查找,丢弃另一半,时间复杂度O(n)

(9)【算法题】最长公共子序列?

(10)【计算机网络】traceroute命令?

(11)【计算机网络】什么时候会进入time-wait状态?

(12)【JVM】什么时候会触发GC?

(13)【JVM】JVM参数设置时newsize代表了什么?

(14)Spark提交任务的整体工作流程描述一下?

(15)Spark如何进行性能调优?详细描述。

(16)Spark设置中executor-memory 和spark.default.parallelism分别代表什么?

(17)数据倾斜的解决方案?

(18)宽依赖和窄依赖的比较。。。

时间:一个小时10分钟

1 0