【转】morgan stanley 电面面经新鲜出炉
楼楼早上上午大概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)是什么?能简要介绍一下吗?
二叉查找树是指一棵空树或者具有下列性质的二叉树:
- 若任意节点的左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值;
- 任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;
- 任意节点的左、右子树也分别为二叉查找树。
- 没有键值相等的节点(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好,晕死)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#include<iostream.h>
class A
{
int t;
public:
A()
{
t=2002;//在构造函数中初始化成员变量t
}
friend class B;//声明友元类classB
};
class B
{
public:
A a;
int sum()
{
return a.t+1500;//友员class B访问class A中的私有成员变量t
}
};
void main()
{
B b;
cout<<b.sum()<<endl;
}
|
- 内存地址法
我们知道,C++编译器将数据和程序段分开,所有的类变量会按照声明顺序依次存入数据段,所以,如果知道了第一个变量的地址,那么后面的地址也就依次累加即可逐一求出了。有了变量地址,那么也就可以对它的值进行修改了。还是以上面的例子来说明,一下程序编写了如何更改类成员b的值:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#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在终端输入命令:
1
|
# ./pso > pso.file 2>&1 &
|
解释:将pso直接放在后台运行,并把终端输出存放在当前目录下的pso.file文件中。
当客户端关机后重新登陆服务器后,直接查看pso.file文件就可看执行结果(命
令:#cat pso.file )。
方法2在终端输入命令:
1
|
# nohup ./pso > pso.file 2>&1 &
|
解释:nohup就是不挂起的意思,将pso直接放在后台运行,并把终端输出存放在当前
目录下的pso.file文件中。当客户端关机后重新登陆服务器后,直接查看pso.file
文件就可看执行结果(命令:#cat pso.file )。
GG12: 如何将一个在后台运行的进程移到前台来运行?
fg,将一个在前台运行的进程移到后台则可以用bg命令。如:
对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:
1
2
3
4
5
6
7
8
|
$ ./test.sh
[1]+ Stopped ./test.sh
$ bg %1
[1]+ ./test.sh &
$ jobs -l
[1]+ 22794 Running ./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,每天都会更新,欢迎加入收藏,留言讨论!
http://www.anycodex.com/?p=102
【转】morgan stanley 电面面经新鲜出炉的更多相关文章
- 微信小程序开发视频教程新鲜出炉
微信小程序开发公测了,可是对于新手来说,不同的框架不同的开发机制,如何快速适应呢?微信小程序开发视频教程新鲜出炉了,从零开始一步一步搭建微信小程序,每个章节都会涉及到不同的知识点,等教程学习完你不但掌 ...
- 刚写完的商城erp + 这个商城前台,新鲜出炉。自己1个人写, 包括php框架和前端html页面.
刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面. 刚写完的商城erp + 这个商城前台,新鲜出炉.自己1个人写, 包括php框架和前端html页面.
- 23套新鲜出炉的网站和手机界面 PSD 素材
Web 用户界面,移动用户界面和线框套件对设计师很有用,因为这些套件让他们使用快速和有效的方式复制用户界面.这些类型的工具包提供了一个基本的用户界面元素,用于它们需要制作的网站或软件模型. 在这篇文章 ...
- 22套新鲜出炉的 Web & Mobile PSD 用户界面素材
在这篇文章中,我们展示的是自由和清新的 UI 设计素材套件.这些线框图和 UI 设计工具包让设计师在设计用户界面原型的时候能够非常便利. Web 用户界面,移动用户界面和线框套件对设计师很有用,因为这 ...
- 20个新鲜出炉的网站模板【HTML & PSD】
这里给大家分享20 个新鲜出炉的免费网站模板.这些设计元素将成为你下一个项目的重要素材,可以帮你节省很多的时间.与往常一样,我们经常漫游网络,寻找最好的资源, HTML.CSS 和 PSD 等等,记得 ...
- 分享25个新鲜出炉的 Photoshop 高级教程
网络上众多优秀的 Photoshop 实例教程是提高 Photoshop 技能的最佳学习途径.今天,我向大家分享25个新鲜出炉的 Photoshop 高级教程,提高你的设计技巧,制作时尚的图片效果.这 ...
- PS教程:20个新鲜出炉的 Photoshop 中级教程
Photoshop 实例教程是提高 Photoshop 技能的最佳学习途径.今天,我向大家分享最新20个 Photoshop 进阶教程,提高你的图片处理技巧,制作时尚的效果.这些教程可以帮助把你的想法 ...
- Onsen UI – 新鲜出炉的 PhoneGap 界面框架
Onsen UI 是一个基于元素自定义的 HTML5 UI 框架,用于构建你的移动前端.这个一个基于 Web 组件的概念的框架,让构建应用程序变得更加轻松.Onsen UI 专门针对 PhoneGap ...
- 20套新鲜出炉的免费 PSD 格式的图标《免费下载》
在网页设计中,设计师专注于每一个领域的设计,包括颜色选择.图标.创造力.混色等.正确的选择图标可以使他们的设计脱颖而出,看起来令人震惊.在 Web 设计领域,图标发挥非常重要的作用,因为美丽的和创造性 ...
随机推荐
- windows phone因为墓碑化导致“正在恢复”的分析
我们在平时的WP使用过程中,会遇到一个问题 应用在切出,切回后, 有时候,会显示"正在恢复",并等待时间较长,才能回到用户切出时候的画面,但是这种情况并非常见,偶尔发生 有时候,直 ...
- Factorials 阶乘
Description N的阶乘写作N!表示小于等于N的所有正整数的乘积.阶乘会很快的变大,如13!就必须用32位整数类型来存储,70!即使用浮点数也存不下了.你的任务是找到阶乘最后面的非零位.举个例 ...
- UESTC_排名表 2015 UESTC Training for Graph Theory<Problem I>
I - 排名表 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- hdu 5656 CA Loves GCD(dp)
题目的意思就是: n个数,求n个数所有子集的最大公约数之和. 第一种方法: 枚举子集,求每一种子集的gcd之和,n=1000,复杂度O(2^n). 谁去用? 所以只能优化! 题目中有很重要的一句话! ...
- Android系统的智能指针(轻量级指针、强指针和弱指针)的实现原理分析
文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6786239 Android 系统的运行时库层代 ...
- PHP <<EOF EOF的使用方法
PHP <<EOF EOF的使用方法 <?php $name = '浅水游'; print <<<EOT <html& ...
- linux服务器时间同步
date命令: date :查看当前时间,结果如下:Tue Mar 4 01:36:45 CST 2014 date -s 09:38:40 :设置当前时间,结果如下:Tue Mar 4 09:38: ...
- spring mvc + mybatis + spring aop声明式事务管理没有作用
在最近的一个项目中,采用springMVC.mybatis,发现一个很恼人的问题:事务管理不起作用!!网上查阅了大量的资料,尝试了各种解决办法,亦未能解决问题! spring版本:3.0.5 myba ...
- AJAX 控件集之TextBoxWatermark(水印文本框)控件
功能: 可以让TextBox控件初始化的时候拥有水印文字.属性: TargetControlID :要使用具有水印效果的TextBox控件ID. WatermarkCssCla ...
- PHP学习笔记三十一【const】
<?php //常量都是public类型 // const 常量名=赋值 .变量名不需要加$符号,也不需要要访问修饰符,默认就是public class A{ const TAX_RATE=0. ...