关闭

百度云计算部门面试

标签: 云计算百度云面试百度百度云计算部门面试
1112人阅读 评论(1) 收藏 举报
分类:

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

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

(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分钟

2
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:129540次
    • 积分:2816
    • 等级:
    • 排名:第13507名
    • 原创:144篇
    • 转载:9篇
    • 译文:0篇
    • 评论:15条
    博客专栏
    Spark

    文章:16篇

    阅读:30504
    最新评论