注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

在路上...

点滴感悟,成长记录...

 
 
 

日志

 
 

【Practice】关于阿里巴巴的电面  

2012-02-18 22:10:38|  分类: Practice |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

昨天接到阿里巴巴的电话面试,问的几个问题几乎一个也没有答出来,真的太囧了。。。看来还得好好苦练内功啊。。。

下面把面试的几个问题记录在这,以留备忘。。。

1、根据一个IP地址,如何设计一种快速高效的算法,来响应得出它是不是中国区段的地址?

这个问题一点思路没有,自己本来就对IP地址和网络不怎么了解,唉。。。对方提示了一下说可以转成int型整数来进行搜索匹配,我还是不会,悲剧。。。

2、有10w条数据,经过某种hash算法映射到10个桶中,现在又新增了10个桶,桶的个数变为20个,问如何进行处理,使得经过调整之后的系统数据移动量最少?

这个,也不会。。。

3、两道大题都不会,人家就只好来点简单的了。operator new和new operator有什么区别?额,思考了两秒,无果。。

4、继续简单问题,sizeof是函数吗?

5、什么情况下类的构造函数进行私有化?

6、static和extern的区别?

好,问题到此为止。。。下面百度寻找答案。。。


先来简单问题的。。。

1、operator new 和new operator的区别

new operator:分配足够的空间,并调用相关对象的构造函数。不能被重载。delete operator 同理。。

operator new:只分配空间,不调用对象的构造函数,和C语言中的malloc对应。可以重载。

相应地,operator delete与delete operator有相似的特性。

使用operator new分配的空间必须使用operator delete来释放,而不能使用free,因为它们对内存使用的登记方式不同。反过来亦是一样。 更对内容点这里

2、sizeof是C/C++中的一个内置运算符(operator),不可以被重载,但是sizeof不是函数,函数可以被重载。这里说sizeof也不应该被当作一元运算符。。。

********************>sizeof是一个编译时运算符,也就是在程序编译阶段就知道了变量或数据类型在内存在将占据多少字节。这也许就是和一般的比如‘+,-’运算符的不同之处吧。。。(2012.3.15更新)

3、构造函数私有化

       (1)防止在该类的外部被实例化。

 构造函数私有时候,只有该类的成员函数或者友元函数,才可以实例化该类的对象。

(2)应用某些设计模式:如factory模式,singleton模式。

(a)factory模式:类的公共静态方法要调用私有构造函数,构造一个对象实例并返回到调用代码;

例【3】

class A{
private:A() {}

public:
static A* create() { return new A; }
}

A* a = A::create();

(b)singleton模式:构造函数只能调用一次。

(3)防止类被继承(类不可作为基类)

    派生类都要调用基类的构造函数,所以,就决定了带有私有构造函数的类不能用作基类,因为他们的构造函数对派生类来说不见。

更多点这里。。。。

这篇文章讲到了一些析构函数私有化和堆、栈存储区的问题。。。

4、static和extern的关系,看这里吧。。。
5、两道大题,改日再研究吧,o(︶︿︶)o 唉。。。。。。

  评论这张
 
阅读(334)| 评论(4)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017