声明:转载请注明链接http://www.anycodex.com/?p=102,O(∩_∩)O谢谢。

楼楼早上上午大概11点接到的电话,一个声音炒鸡好听的GG,说他是来自morgan stanley的,想和我约一下店面时间。我一听,真是戳不及防,掐指一算,online的IKE测试已经过去20几天了吧,有点小惊喜。我说下午亮点,GG说好哒。挂完电话之后,我就看电视剧去了,完全没放在心上。吃完饭后来同学才提醒,是英文的面试,我,这,一,下,就,慌,了。赶快写了个自我介绍,然后把几个关键词查了查就电话就来了。下面把问题都记录一下,攒RP。

GG:Hello, XXX. This is XXX…..balabala…主旨就是说下面面试会分为三部分。第一部分,我会快速地问你一些问题,然后你给出简要的回答,不要给例子,除非我问你。第二部分,我会问你一些你项目中的问题。第三部分,你看你有没有问题想问我,我会尽力回答,如果超出职责范围内,我后面会叫我的manager或者HR来回答你。总之就是很客气啦!

ME:好的。

GG1: 编译型语言和解释型语言有什么区别?Java是编译型语言吗?(翻译过来的啊,GG用的是比较流畅的英文,下面相同)

编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成 为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。

解释性语言:解释性语言在程序运行的时候才翻译,每执行一次就要翻译一次。因此,程序执行效率低,但是跨平台型好。

编译型语言适用于对执行效率要求高的系统,如操作系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不同系统平台间的兼容性有一定要求的程序则通常使用解释性语言,如Java、JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

注意Java是解释性语言,此处楼楼已跪,答错了,GG也没有提出来。

GG2: 二叉查找树(Binary Sort Tree)是什么?能简要介绍一下吗?

二叉查找树是指一棵空树或者具有下列性质的二叉树:

  1. 若任意节点的左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;
  2. 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
  3. 任意节点的左、右子树也分别为二叉查找树。
  4. 没有键值相等的节点(no duplicate nodes)。二叉查找树相比于其他数据结构的优势在于查找、插入的时间复杂度较低。为O(log n)。二叉查找树是基础性数据结构,用于构建更为抽象的数据结构,如集合、Multiset和关联数组等等。

GG3: stack和queue区别是啥?

stack 是FILO,queue是FIFO

GG4: 指针是啥?

内存地址

GG5: 面向对象(Object Oriented)语言是啥?

我说的是,面向对象是一种思考问题的方法。是相对面向过程而言的,它有三大特性封装、继承、多态。能够使代码更好的重用,添加新的行为以及减少代码的耦合度。巴拉巴拉。。。

GG5: 刚刚你也提到多态,你能举一个例子说明一下多态吗?

我,举了一个不恰当的例子。人是动物,鱼也是动物,马也是动物,这三种动物都需要吃食物,但是吃的食物却都是不一样的。当我们把这些子类对象复制给父类对象的时候,匪类对象调用吃这个方法,系统就能动态的决定调用那个吃方法了。

GG6: 对象和类有什么区别?

对象是类的实例啊,只是突然忘记实例的英文,instance,嗯,就这个啦!

GG7: inline内联函数是什么?

当一个函数比较常用,比较短,但是又经常会被使用到,那我们就可以把这个函数定义成inline。函数代码被放入符号表中,在使用时直接进行替换,没有了调用开销,因此效率比较高。

GG7: 我临时想到一个问题,请问宏和内联函数的区别是什么?

参数检测:宏定义在编译的时候进行替换,但是仅仅是简单的替换,不会进行参数有效性的检测,它的返回值也不能被强制转换为可转换的合适的类型,使用时要非常小心。而内联函数是一个真正的函数,编译器在调用一个内联函数时,会首先检查它的参数类型,保证调用正确性。

面向对象:当一个表达式涉及到类的保护成员或者私有成员,宏定义无法满足要求。inline可以用在面向对象里面。

GG8: 内联函数是不是always inline的呢?

不是。内联函数只适用于代码比较短的函数,inline说明对编译器来说只是一种建议,编译器可以选择忽略这个建议。比如讲一个长达1000行的函数指定为Inline,编译器就会忽略这个inline,这个函数还原成普通函数。

GG9: 假设你上面说的是对的,那为什么编译器不这么做呢?

如果这个定义为inline的函数长达1000行,又有很多处被调用,那么代码膨胀带来的恶果很可能会大于效率提高带来的益处,所以编译器可能会选择忽略这个inline。

GG10: 如何访问一个类的私有成员?

我说getter,GG说,当然是没有getter的条件下啦,哈哈,被鄙视了。还有可以用友元啊,我尽然没说到这个,虽然可能面试官也不在于面友元,但多说一点总归会更好啊。这个问题,我查了一下,整理如下

访问一个类的私有成员:

  • 友元(比说getter好,晕死)
#include<iostream.h>  classA
{  intt;
public:  A()  {  t=2002;//在构造函数中初始化成员变量t  }  friendclassB;//声明友元类classB  };  classB
{
public:  Aa;  intsum()  {  returna.t+1500;//友员class B访问class A中的私有成员变量t  }
};  voidmain()
{  Bb;  cout<<b.sum()<<endl;
}
  • 内存地址法

我们知道,C++编译器将数据和程序段分开,所有的类变量会按照声明顺序依次存入数据段,所以,如果知道了第一个变量的地址,那么后面的地址也就依次累加即可逐一求出了。有了变量地址,那么也就可以对它的值进行修改了。还是以上面的例子来说明,一下程序编写了如何更改类成员b的值:

#include <iostream>
#include <string>
using namespace std;  class center
{
public:  void setX(float _x){x=_x;}  void setY(float _y){y=_y;}  void setMeanValue(float avg){meanValue=avg;}  float getX(){return x;}  float getY(){return y;}  float getMeanValue(){return meanValue;}  center():x(0.0),y(0.0),meanValue(0.0){}
private:  float x;  float y;  float meanValue;
};  int main()
{  center A;  //普通青年的赋值方法;  A.setX(1.0);  A.setY(4.0);  A.setMeanValue(13.0);  cout<<A.getX()<<" "<<A.getY()<<" "<<A.getMeanValue()<<endl;  //文艺青年的赋值方法;  //*((float*)&A):将center对象A的内存空间强制类型转化为用int*指向的内存空间,访问该内存  float tmp = *((float*)&A);  cout<<tmp<<endl;//输出A.x的值  tmp = *((float*)&A + 1);  cout<<tmp<<endl;//输出A.y的值  *((float*)&A + 2)=2;//修改A.meanValue的值  cout<<A.getMeanValue()<<endl;
}

参考链接:

http://blog.csdn.net/yangtrees/article/details/8773508

我说可以用虚函数表,我搞混了,我看过可以用虚函数表的是这样一个问题,访问基类的私有虚函数。

额,不好意思,扯远了,我们看下一个问题哦。

GG11: 下面会问一些Unix或者Linux的基础问题。请问如何让一个进程在后台运行?

我说&。具体我查了一下,整理如下:

方法1在终端输入命令

# ./pso > pso.file 2>&1 &

解释:将pso直接放在后台运行,并把终端输出存放在当前目录下的pso.file文件中。

当客户端关机后重新登陆服务器后,直接查看pso.file文件就可看执行结果(命

令:#cat pso.file )。

方法2在终端输入命令:

# nohup  ./pso > pso.file 2>&1 &

解释:nohup就是不挂起的意思,将pso直接放在后台运行,并把终端输出存放在当前

目录下的pso.file文件中。当客户端关机后重新登陆服务器后,直接查看pso.file

文件就可看执行结果(命令:#cat pso.file )。

GG12: 如何将一个在后台运行的进程移到前台来运行?

fg,将一个在前台运行的进程移到后台则可以用bg命令。如:

对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:

$./test.sh
[1]+  Stopped                ./test.sh$bg%1
[1]+./test.sh&$jobs-l
[1]+22794Running                ./test.sh&

GG11及GG12参考链接:http://www.cnblogs.com/xianghang123/archive/2011/08/02/2125511.html

GG13: 如果一个进程已经在后台运行了,如何查看它的进程号?

ps -aux

GG14: 用过ps -es命令吗?

我说不好意思,没用过,差了一下,好像没这个命令啊,是我听错了吗?想要了解ps命令的同学可以自己查一查哈!

GG15: 如何列出所有使用某一文件的进程?

lsof filename

GG16: 不同主机之间如何拷贝文件?

scp

GG17: 什么是僵尸进程?

僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

GG18: 什么是孤儿(orphan)进程?

孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

GG17和GG18参考链接:http://www.cnblogs.com/anker/p/3271773.html

GG19: 孤儿(orphan)进程有没有PPID?

有,孤儿进程将被init进程(进程号为1)所收养,PPID就是1了。

GG20:孤儿(orphan)PPID是什么?

我说,parent’s processing ID,我估计他预想的答案是1,不过面试GG没有打断我,然后我觉得我简直是要被笑死了。

GG21:关于去摩根斯坦利实习,你的expectations是什么?

GG22:后面就是项目中的问题了,因人而异,就不多说了。

后面面试GG说虽然有点overtime了,但是还是问我有没有什么想问的。我没有问什么后面的流程什么的,我问他实话说,在摩根斯坦利上班,他开不开心,想没想过跳槽之类的。面试GG都很耐心地给出了回答,整个过程还是比较愉快的,面的问题都很基础,有点像快速抢答的感觉,整个过程持续38分钟。希望对大家有用,加油↖(^ω^)↗

另外楼楼主页www.anycodex.com,每天都会更新,欢迎加入收藏,留言讨论!

热乎乎的morgan stanley 电面面经新鲜出炉~\(≧▽≦)/~啦啦啦相关推荐

  1. 2017四月TOP100电商类App排行榜出炉

    2017年4月最新的电商app榜单正式出炉,基于易观千帆4月移动应用大数据,我们将从电商领域里筛选出综合电商.特卖电商.跨境电商.生鲜电商.母婴电商.医药电商以及新兴的汽车交易等7大领域的运营数据独家 ...

  2. 2019年​第5期《单片机与嵌入式系统应用》电子刊新鲜出炉!

    2019年第5期电子刊精彩内容抢先看: 1.5G,带给嵌入式系统的机会在哪里? 2.基于可穿戴设备的人体情绪识别系统研究 3.一种提高的代码复用的C++序列化框架设计 4.ARMv7树莓派的智能控制器 ...

  3. Morgan Stanley(摩根士丹利)电面过程

    3月21号下午接到MS的电话,面试官和我预约电面时间,我说明晚7点可以吗,他说晚上不太方便,最后我们把时间定到第二天下午3点,于是就忐忑的准备着,一直到第二天下午3点,面试官非常的准时,电脑上的时间刚 ...

  4. Morgan Stanley(摩根斯坦利)笔试加电面试题大全

    1经历了两次网上测试和两次电面,发现网上测试和电面题目都是不变的,电面题目相当固定,具体试题如下: (当时精心准备了所有的电面试题,整理出了两个word文档,有很多图片辅助理解,现在将重要内容写到这里 ...

  5. morgan stanley 面试资料(一)

    (1)我被问的问题: 介绍你自己:对投行的认识,及你觉得你自己为什么适合做投行:根据简历提的问题,与工作经历有关: 数字计算176*2.5(偶听了几遍没听清,让那位gg说了n遍,估计后来他都想扁我一顿 ...

  6. Morgan Stanley IT笔试面试经验

    转自http://blog.csdn.net/wqfhenanxc/article/details/20965039 Morgan Stanley IT笔试题部分回忆版 特点: 1. 题量大,43页的 ...

  7. 【面试】Morgan Stanley IT面经

    职位 Morgan Stanley 2015 IT Summer Analyst 校招的话仅供参考,流程大概类似,不过也有可能多几轮. 电面 自我介绍+十道左右基础问题+一道简单算法,全英文 问题都比 ...

  8. 【面经】Morgan Stanley IT简易面经

    职位 Morgan Stanley 2015 IT summer analyst(JAVA) 校招的话仅供参考,流程大概类似,不过也有可能多几轮. 一定要穿正装! 电面 自我介绍+十道左右问题+一道简 ...

  9. 应聘Morgan Stanley(转)

    虽然应聘Morgan Stanley IT 已经告一段落了,但应聘过程中所经历的一切我想我永远都不会忘记,故写下此文,留作纪念. [前言]         第一次听说Morgan Stanley 还是 ...

最新文章

  1. 基于Oracle11gR2 GRID的单实例库备份恢复
  2. CSS设置页面背景色
  3. centos selinux_如何临时或永久地禁用SELinux
  4. jQuery系列(十四):jQuery中的ajax
  5. 由于 Web 服务器上的“ISAPI 和 CGI 限制”列表设置,无法提供您请求的页面.
  6. java dao修改语句_一个通用的DAO模型实现增删改查
  7. android 签名报错,AndroidStudio生成签名apk报错
  8. 拓端tecdat|R语言中的风险价值模型度量指标TVaR与VaR
  9. php缓存memclear,PHP内存缓存加速功能memcached安装与用法
  10. 类似endnote_Mendeley与EndNote类似的免费文献管理软件简介 | 科研动力
  11. mindoc升级总结
  12. 土豆服务器延期修复,Uplay更新失败解决方法 教你对付土豆服务器!
  13. kk每日一句:第一句
  14. java 案例(售卖橙子)
  15. 属于程序员的“高考”考题,我估计没准还有很多人没有看过(建议不要收藏)
  16. euclidea教程_Euclidea - 有一种浪漫叫欧氏几何 - iPhone应用 - 【最美应用】
  17. hexo+github打造个人博客系列之Coding Pages去广告
  18. swagger使用流程梳理
  19. 解决vs2013编译时scanf报错的方法
  20. C语言期末基础知识大盘点!拒绝挂科,从我做起,争做别人家的娃!

热门文章

  1. Java通达信接口_smartTrade开发范例及Demo smartTrade是基于通达信的tcapi协议 - 下载 - 搜珍网...
  2. openssl 从证书中提取公钥
  3. 使用老毛桃u盘启动盘制作工具安装Win7图文教程
  4. ctr: failed to extract layer ... failed to unmount ... operation not permitted: unknown
  5. 计算机控制系统体系结构,计算机控制系统的体系结构
  6. 学校wifi需要认证登录怎么解决
  7. WirelessCar如何借助亚马逊云科技打造车联网平台的高弹性和高可用
  8. 前端手写一个人工智能回复小助手
  9. 我和计算机比本领教案反思,比本领教学反思
  10. XILINX SGMII千兆以太网 (1)