第一轮 技术面(大概50分钟左右)
1.对金蝶公司的认识
金蝶国际软件集团有限公司是全球领先的在线管理及电子商务服务商。金蝶以引领管理模式进步、推动电子商务发展、帮助顾客成功为使命,为全球范围内超过60万家企业和政府组织成功提供了管理咨询和信息化服务。
2.java方面
(1)什么是对象
万物皆对象,一个实际上存在的东西,就是一个对象。
(2)为什么要使用继承
通过继承实现代码复用。java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。继承而得到的类称为子类,被继承的类成为父类。
子类不能继承父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量。但Java不支持多重继承,即一个类从多个超生类派生的能力。
(3)接口有什么作用,举一个实例说明如何申明接口和方法(单立模式)
接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起。
比如组装计算机的例子:显卡和主板
(4)重载和重写有什么区别
重载是:
当多个方法具有相同的名字而含有不同的参数时产生,那么对参数不同的调用,实际调用不同的方法,也可以理解为实际上有两个方法,名字同,参数不同!
重写:
也就是覆盖!通常是发生在继承关系时,重写父类莫非同名方法。
覆盖不能降低原方法的“可见度”(相对于父亲)
总结:
多态性是面向对象编程的一种特性,和方法无关,简单说,就是同样的一个方法能够根据输入数据的不同,做出不同的处理,即方法的重载——有不同的参数列表(静态多态性)而当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法,即在子类中重写该方法——相同参数,不同实现(动态多态性)
(5)Java中有哪些控制语句
if-else while do-while for swich-case
(6)While和for有什么区别?
语句的表达方式不一样,但一定程度上是可以互相改写的。但是一般来说for用于次数一定的循环,while用于次数未知的循环。
(7)什么是泛型
泛型就是该容器中只能存储该类型的对象或变量,比如List<String> list=new ArrayList<String>();那么该list只能存储String对象。
3.数据库方面
(1)索引建太多了会有什么问题?
使用索引查找数据更快捷,方便。但如果在一个表上建太多索引也会带来问题,索引是一个单独的数据库结构,需要额外的空间存储。
在修改表中数据时,表上的索引也会随之更新,这会带来额外的开销。所以在一个表上建什么样的索引,建多少个索引和在哪些列上建索引,是个需要认真考虑的问题。
(2)举例写出sql语句(用到group和having)
where子句只能对没有分组统计前的数据进行筛选,例如成绩必须大于60分,对分组后的条件筛选使用having子句。
(3)左连接、右连接、全连接的区别
A left join(左连接)包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录。
同理,也存在着相同道理的right join(右连接)包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录。
而full join(全连接)顾名思义,左右表中所有记录都会选出来。
(4)视图是做什么的,与表有什么区别
视图是从一个或几个基本表(或视图)导出的表。它与基本表不同,是一个虚表。数据库只存放视图的定义,而不存放视图对应的数据。
这些数据仍存放在原来的基本表中。所以基本表中的数据发生变化,从视图中查询出的数据也就随之改变了。从这个意义上讲,视图就像一个窗口。
透过它可以看到数据库中自己感兴趣的数据及其变化。
举例:
建立一个视图
CREATE VIEWStudent(Sno,Sname,Ssex,Sage,Sdept)
AS
SELECT SX.Sno ,SX.Sname ,SY.Ssex ,SX.Sage,SY.Sdept
FORM. SX,SY
WHERE SX.Sno=SY.Sno;
区别:
1、视图是已经编译好的sql语句,而表不是。
2、视图没有实际的物理记录,而表有。
3、表是内容,视图是窗口。
4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改。
5、表是内模式,视图是外模式。
6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。
7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。
8、视图的建立和删除只影响视图本身,不影响对应的基本表。
联系
1、视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。
2、一个视图可以对应一个基本表,也可以对应多个基本表,基于一个表也可以建立多个视图。视图是基本表的抽象和在逻辑意义上建立的新关系。
3、表可以建立各种触发器,可以建立索引,可以建立主健、约束等。但是视图不能建立这些对象(视图可以建立替代触发器)。表和视图可以更新,但是视图的更新受到约束。
(5)数据库调优(比如现在有一张表有一万条数据,查询太慢,应该怎么办)
从数据库设计者的角度来看,应用程序无非是实现对数据的添加、修改、删除、查询和体现数据的结构和关系。设计者在性能方面的考虑因素,总得出发点是:把数据库当作奢侈的资源看待,在确保功能的同时,尽可能少地动用数据库资源。包括以下原则:
(1)不访问或少访问数据库;
(2)简化对数据库的访问;
(3)使访问最优;
(4)对前期及后续的开发、部署、调整提出要求,以协助实现性能目标。
另外,不要直接执行完整的SQL语法,尽量通过存储过程来调用SQL Server。客户与服务器连接时,建立连接池,让连接尽量得以重用,以避免时间与资源的损耗。
非到不得已,不要使用游标结构,确定使用时,注意各种游标的特性。
(5)两个sql语句,外连之后on条件后面一个是and一个是where的,有什么区别?
在做外连查询的时候on里的条件是在外连执行之前筛选的,然后在做外连查询,所以里面的条件不对外连的行数产生影响。
on条件之后直接加where表示让两个表做一个相等的连接,而之后的where条件就是在外联执行之后再进行筛选。
select * from A inner join B onA.Id=B.Id AND B.State in (1,2,3) whereA.Name='meng' and and A.Age>30
select * from A inner join B on (A.Id=B.Id )where (A.Name='meng' and B.State <=3 and A.Age>30)
4.测试
(1)什么是测试,举一个项目中用到性能优化的例子?
性能测试:为了描述测试对象与性能相关特性并对他进行评价而实施和执行的一类操作。为了验证系统是否到达用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系统的目的。
性能测试一般使用测试工具和测试人员编制测试脚本来完成,性能测试的环境应单独运行尽量避免与其他软件同时使用。
(2)介绍下你用到的测试管理软件TestDirector工具
TestDirector能消除组织机构间、地域间的障碍。它能让测试人员、开发人员或其他的IT人员通过一个中央数据仓库,在不同的地方就能交互测试信息。
TestDirector将测试过程流水化--从测试需求管理,到测试计划,测试日程安排,测试执行到出错后的错误跟踪--仅在一个基于浏览器的应用中便可完成,而不需要每个客户端都安装一套客户端程序。
第二轮:人力资源面 (2小时左右,答案略)
1.自我介绍英文
Now I will introduce myself briefly,Iam 21 years old,born in Hebei province,north of China...
2.讨论关于软件测试人员应具备的素质,给出了十几条分成两组讨论,讨论完后两方派代表做结论。
3.关于细心和耐心两个品质,两组辩论哪一个对于软件测试人员更重要。
智力题(答案略):
9点连成4条线?
四刀分园最多分多少块?(11块)
输一个4*4的正方形中共有多少正方形?
2015年9月14日星期一
金蝶面试题:
1,谈谈对接口测试的理解??
答:接口测试主要考虑的问题:
1.各个模块连接集成起来的时候,穿越模块接口的数据会不会丢失; -----确定数据完整
2.各个子功能组合起来,能否达到预期要求的父功能; ------集合后,达到需求目标
3.一个模块的功能是否对另一个模块的功能产生不利影响; ------集成后,不影响相关模块功能
4.全局数据结构是否有问题; ----集成后,保证系统数据的正确性
5.单个模块的误差积累起来,是否会放大,从而达到不可接受的程度。-------集成后,确保误差不影响系统功能及性能
来源:CSDN
作者:junli_chen
链接:https://blog.csdn.net/junli_chen/article/details/48876859