一、中移(苏州)测试/测试开发 (一面)
手机腾讯会议进行视频面试,有2个面试官(刚进去的时候我还以为另一个也是求职者呢,还脑补了一些情节,O(∩_∩)O哈哈~),面试内容流程如下:
1. 自我介绍
自我介绍时间限制在3分钟,这个内容因人而异。
2. 面试问题
基本上是根据你的简历内容去问,不排除面试官有特别想问的。我的面试前面问的我的简历几乎没有提到,后面是根据简历问的。下面附上我的面试问题:
- 问题1:C++中struct与class有什么区别?
- 问题2:C++中的数据类型哪些是存放在堆里面,哪些是存放在栈里面的?
- 问题3:给你一个表格,怎么用SQL语言去查找这个表格的前三行?
- 问题4:设计模式总共有多少种,分别说一下?
- 问题5:工厂方法的代码能手写一下吗?后来又改成让我口述了.
- 问题6:工厂方法主要是用来解决什么问题的?
- 问题7:我看你的简历里面介绍了Java开发的《学生信息管理系统》,能具体说一下吗?
- 问题8:MVC模式中M,V,C分别指什么?
- 问题9:能具体说一下你参加过的互联网+获得银奖的那个项目是做什么的吗?
- 问题10:《BCI-VR工匠选拔》中unity游戏是用什么语言进行编写的?
- 问题11:列举一个例子,你在研究或者做项目时遇到困难,是如何自己独立解决并成功的?
- 问题12:你有什么问题想问我们的吗?
差不多能想起来的就这么多,我后来回来搜了一下答案,给自己涨一点知识吧
- 问题1:C++中的结构体和类的异同:
一、相同之处:结构体中可以包含函数;也可以定义public
、private
、protected
数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。
二、不同之处:结构体定义中默认情况下的成员是public
,而类定义中的默认情况下的成员是private
的。类中的非static
成员函数有this
指针,类的关键字class
能作为template
模板的关键字 即template<class T> class A{};
而struct
不可以。
实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。
- 问题2:C++中哪些数据类型的成员变量是存放在堆里面,哪些是存放在栈里面的?
在c/c++中,内存分成5个区,分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量存储区。里面的变量通常是局部变量
、函数参数
等。
堆:就是那些由new
分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。
自由存储区:就是那些由malloc
等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。
全局存储区(静态存储区):全局变量
和静态变量
的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。程序结束后有系统释放。
常量存储区:这是一块比较特殊的存储区,他们里面存放的是常量
,不允许修改。
- 问题3:考察的是数据库的增删查改问题,回头把相关内容看一下即可。
- 问题4:设计模式
总共有23种设计模式。
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
- 问题5:工厂方法代码与UML图,以及它是解决什么问题的?:
工厂方法模式由抽象工厂、具体工厂、抽象产品和具体产品等4个要素构成。
工厂方法模式的主要角色如下。
抽象工厂(Abstract Factory):提供了创建产品的接口,调用者通过它访问具体工厂的工厂方法 newProduct() 来创建产品。
具体工厂(ConcreteFactory):主要是实现抽象工厂中的抽象方法,完成具体产品的创建。
抽象产品(Product):定义了产品的规范,描述了产品的主要特性和功能。
具体产品(ConcreteProduct):实现了抽象产品角色所定义的接口,由具体工厂来创建,它同具体工厂之间一一对应。
package FactoryMethod;
public class AbstractFactoryTest {
public static void main(String[] args) {
try {
Product a;
AbstractFactory af;
af = (AbstractFactory) ReadXML1.getObject();
a = af.newProduct();
a.show();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
//抽象产品:提供了产品的接口
interface Product {
public void show();
}
//具体产品1:实现抽象产品中的抽象方法
class ConcreteProduct1 implements Product {
public void show() {
System.out.println("具体产品1显示...");
}
}
//具体产品2:实现抽象产品中的抽象方法
class ConcreteProduct2 implements Product {
public void show() {
System.out.println("具体产品2显示...");
}
}
//抽象工厂:提供了产品的生成方法
interface AbstractFactory {
public Product newProduct();
}
//具体工厂1:实现了产品的生成方法
class ConcreteFactory1 implements AbstractFactory {
public Product newProduct() {
System.out.println("具体工厂1生成-->具体产品1...");
return new ConcreteProduct1();
}
}
//具体工厂2:实现了产品的生成方法
class ConcreteFactory2 implements AbstractFactory {
public Product newProduct() {
System.out.println("具体工厂2生成-->具体产品2...");
return new ConcreteProduct2();
}
}
ackage FactoryMethod;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
class ReadXML1 {
//该方法用于从XML配置文件中提取具体类类名,并返回一个实例对象
public static Object getObject() {
try {
//创建文档对象
DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = dFactory.newDocumentBuilder();
Document doc;
doc = builder.parse(new File("src/FactoryMethod/config1.xml"));
//获取包含类名的文本节点
NodeList nl = doc.getElementsByTagName("className");
Node classNode = nl.item(0).getFirstChild();
String cName = "FactoryMethod." + classNode.getNodeValue();
//System.out.println("新类名:"+cName);
//通过类名生成实例对象并将其返回
Class<?> c = Class.forName(cName);
Object obj = c.newInstance();
return obj;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
工厂方法用来解决接口的问题。
再后面的问题就是自己项目和比赛的东西了,不多加赘述。这里面提醒自己一下,面试官问你有什么问题时,可以把面试官问的问题,自己不会的再抛过去问一下,这样自己又学会了很多东西。然后根据面试官问的问题,他前面都在问C++的基础,所以想了解一下贵公司主要做什么产品开发,用的是什么语言。
二、中移(苏州)测试/测试开发 (二面HR面)
腾讯会议进行视频面试,有一个等待过程。进去会议后有一位面试官。下面讲一下我二面的全过程。
首先,打开视频过后,面试官让我对着镜头走一圈(应该是想看看仪态什么的),接着就是自我介绍了,全程没有限制我的时间,直到我讲完。我觉得面试官人挺好的。
自我介绍完,就开始问问题了:本科是不是第一批?硕士研究生是统招全日制吗?现在有offer了吗?然后要让我把身份证拿出来给他看看(应该是需要确认是不是我本人。),最后问了一个问题:为什么选择我们公司?
三、中移(苏州)测试/测试开发 (三面)
腾讯会议视频面试,一位面试官,基本问的就是你所投岗位技术相关的问题。下面讲一下我三面的全过程。
首先自我介绍。
自我介绍完,就开始问问题了,下面对所问问题做一个总结:
-
问题1:你的自我介绍里面没有讲到你在技术方面是如何能胜任这个岗位的,你觉得在技术方面,你有哪些优势?
-
问题2:你有过实习经验吗?
-
问题3:会使用哪些工具进行测试?
-
问题4:如何用Jmeter做接口测试?
-
问题5:能讲一下post与put的区别吗?
-
问题6:一般使用什么工具进行负载测试?怎么做?
-
问题7:给你一个产品,你怎么去设计测试用例的?
-
问题8:你对我们公司的产品有了解吗?
-
问题9:你了解我们公司吗?
-
问题10:你进入到我们公司后,如何开展测试工作?
-
问题11:一个大型网站,比如淘宝,一个时间段访问量特别多,数据量什么什么压测?不记得怎么问的了。
-
问题12:你有什么问题想问我们的吗?
-
问题5 回答:post与put的区别:PUT请求:如果两个请求相同,后一个请求会把第一个请求覆盖掉。(所以PUT用来改资源)Post请求:后一个请求不会把第一个请求覆盖掉。(所以Post用来增资源)