中兴面试——数据统计分析师(西安)

来源:互联网 发布:java 递归查找父节点 编辑:程序博客网 时间:2024/06/09 22:44
人生中第一次正式的面试,给了中兴提前批。提前看了看面经,仅此而已,寻找经验去,说实话第一次还真有点小紧张。面试前头脑一片空白,不知道见到面试官应该说什么。不过正式开始面试时,面试官不说话,自己就自言自语介绍起来,打破尴尬局面。

一、技术面

两个HR,一个主要负责提问,一个主要负责记录。刚进去,坐下后,来了个自我介绍,把自己基本信息介绍完后,发现HR并没有提问的意思,顿了大概30s,开始讲自己的项目经历。介绍完项目经历后,HR开始提问:

1.介绍与项目相关的内容
2.介绍常用的聚类算法
3.熟悉什么语言?

Python。围绕Python提问:

1)你认为Python与其他语言的区别是什么?

这里写图片描述

b)Python作为“胶水”语言,把其他语言开发的模块包装起来方便使用。

2)你了解Python的拷贝操作吗?

a)对象的赋值

对象的赋值实际上是对象之间的引用:当创建一个对象,然后将这个对象赋值给另外一个变量的时候,python并没有拷贝这个对象,而只是拷贝了这个对象的引用。
当对对象做赋值或者是参数传递或者作为返回值的时候,总是传递原始对象的引用,而不是一个副本。

b)对象的复制

浅拷贝:copy.copy,只拷贝父对象,不会拷贝对象的内部的子对象
深拷贝:copy.deepcopy,拷贝对象及其子对象
具体例子:http://blog.csdn.net/u013573813/article/details/53349798

3)Python的数据类型
http://www.cnblogs.com/ybjourney/p/4767726.html

4)了解xml吗,用Python操作过xml吗?
http://www.runoob.com/python/python-xml.html

5)你认为Python与C++有什么区别?

a)Python是一种脚本语言,是解释执行的,不需要经过编译: 运行速度慢;很方便快捷;能够很好地跨平台,写一些小工具小程序特别合适;b)C++则是一种需要编译后运行语言,在特定的机器上编译后在特定的机上运行:运行效率高;安全稳定;编译后的程序一般是不跨平台的。

6)你认为Java与C++的区别是什么?
https://zhidao.baidu.com/question/374016801.html
http://www.cnblogs.com/sunada2005/p/3545475.html

7)你了解Python的异常吗?异常的关键字怎么写?
http://www.runoob.com/python/python-exceptions.html

4.你了解其他语言吗?

5.你了解面向对象吗?有什么特性

抽象、封装、继承、多态。

1)抽象
忽略一个主题中与当前目标无关的东西,专注的注意与当前目标有关的方面.(就是把现实世界中的某一类东西,提取出来,用程序代码表示,抽象出来的一般叫做类或者接口).抽象并不打算了解全部问题,而是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一个数据抽象,而是过程抽象.
数据抽象:表示世界中一类事物的特征,就是对象的属性.比如鸟有翅膀,羽毛等(类的属性)
过程抽象:表示世界中一类事物的行为,就是对象的行为.比如鸟会飞,会叫(类的方法)

2)封装
封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面,如私有变量,用set,get方法获取。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于内部,因而可以将应用程序修改带来的影响减少到最低限度。
封装可以包起外界不必需要知道的东西,只向外界展露可供展示的东西。封装的类=数据+算法

3)继承
子类继承父类,可以继承父类的方法及属性,实现了多态以及代码的重用,因此也解决了系统的重用性和扩展性,但是继承破坏了封装,因为他是对子类开放的,修改父类会导致所有子类的改变,因此继承一定程度上又破坏了系统的可扩展性,所以继承需要慎用,只有明确的IS-A关系才能使用,同时继承在在程序开发过程中重构得到的,而不是程序设计之初就使用继承,很多面向对象开发者滥用继承,结果造成后期的代码解决不了需求的变化了。因此优先使用组合,而不是继承,是面向对象开发中一个重要的经验。

4)多态
多态是指允许不同类的对象对同一消息做出响应.多态性包括参数化多态性和包含多态性.多态性语言具有灵活/抽象/行为共享/代码共享的优势,很好的解决了应用程序函数同名问题.总的来说,方法的重写,重载与动态链接构成多态性.java引入多态的概念原因之一就是弥补类的单继承带来的功能不足.

重载 overloading

a)方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载是一个类中多态性的一种表现。b)Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性。c)重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不相同。无法以返回型别作为重载函数的区分标准

重写overriding

a)父类与子类之间的多态性,对父类的函数进行重新定义。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。b)若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可使用super关键字,该关键字引用了当前类的父类。c)子类函数的访问修饰权限不能少于父类的;动态链接对于父类中定义的方法,如果子类中重写了该方法,那么父类类型的引用将调用子类中的这个方法,这就是动态链接.

二、综合面

闲聊。其他内容记得不是特别清楚,只是依稀记得聊的还很不错,自我感觉良好。但是,当真正秋招的时候,中兴公布出招聘岗位,就知道自己肯定没戏了,在西安中兴数据岗位根本不招人。只是不明白为什么这个岗位不招人,为什么还要被拉去面试。不过,也是感谢,中兴让我拥有了人生第一次正式的面试经历,同时也让我认识到西安中兴并不适合我^-^。
原创粉丝点击