北京云测信息技术有限公司4月招聘面试题147道2020421

在J2EE中,对于在Servlet如何获得会话,描述正确的是()。

A.HttpServletRequest类的getSession方法有两个:带参数的getSession方法和不带参数的getSession方法

B.在Servlet中,可以使用HttpSessionsession=newHttpSession()创建session对象

C.如果HttpServletRequest类的getSession方法的参数为false,表示如果没有与当前的请求相联系的会话对象时,该方法返回null

D.如果HttpServletRequest类的getSession方法的参数为true,表示如果没有与当前的请求相联系的会话对象时,该方法返回null


参考答案:A, C


在面向对象的方法中,(44)是状态和操作(或方法)的封装体,(45)是所有对象的共同行为和不同状态的集合体,方法在类定义中使用(46)来定义,当一个操作被调用时,由(47)带来将被执行的这个操作的详细内容。

(34)

A.类

B.对象

C.消息

D.命令


正确答案:B


关于拷贝初始化构造函数,描述不正确的是( )。

A.拷贝初始化构造函数是类的成员函数,函数名与类名相同。

B.函数只有一个参数,并且是对某个对象的引用

C.每个类都必须有一个拷贝初始化构造函数。

D.要定义拷贝初始化构造函数,必须指定返回类型


正确答案:D
解析:拷贝初始化构造函数也是一个构造函数,也没有返回类型。


下列情况中,不会调用拷贝构造函数的是( )。 A.用一个对象去初始化同一类的另一个新对象时SXB

下列情况中,不会调用拷贝构造函数的是( )。

A.用一个对象去初始化同一类的另一个新对象时

B.将类的一个对象赋值给该类的另一个对象时

C.函数的形参是类的对象,调用函数进行形参和实参结合时

D.函数的返回值是类的对象,函数执行返回调用时


正确答案:B
本题考查复制构造函数,在以下3种情况下使用:①程序中需要新建立一个对象,并用另一个对象对它初始化;②函数的参数为类的对象;③函数的返回值是类的对象。其中B选项是由赋值运算符重载实现的。


1.  下列情况中,哪一种情况不会调用拷贝构造函数 (     

A)用派生类的对象去初始化基类对象时

B)将类的一个对象赋值给该类的另一个对象时

C)函数的形参是类的对象,调用函数进行形参和实参结合时

D)函数的返回值是类的对象,函数执行返回调用者时


B


北京云测信息技术有限公司4月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:列举面向对象中带双下划线的魔术方法可用的回答 : _doc_ 表示类的描述信息 _module_ 表示当前操作的对象在哪个模块 _class_ 表示当前操作的对象的类是什么 _init_ 构造方法,通过类创建对象时,自动触发执行 _new_负责创建一个类的对象 _del_ 析构方法,当对象在内存中被释放时,自动触发执行 _call_ 对象后面加括号,触发执行 _dict_ 类或对象中的所有成员 _str_如果一个类中定义了_str_方法,那么在打印 对象 时,默认输出该方法的返回 问题 Q2:如何提高爬取效率?可用的回答 : 爬虫下载慢主要原因是阻塞等待发往网站的请求和网站返回 1,采用异步与多线程,扩大电脑的cpu利用率; 2,采用消息队列模式 3,提高带宽 问题 Q3:深拷贝和浅拷贝有什么区别?可用的回答 :在创建新实例类型时使用浅拷贝,并保留在新实例中复制的值。浅拷贝用于复制引用指针,就像复制值一样。这些引用指向原始对象,并且在类的任何成员中所做的更改也将影响它的原始副本。浅拷贝允许更快地执行程序,它取决于所使用的数据的大小。深拷贝用于存储已复制的值。深拷贝不会将引用指针复制到对象。它引用一个对象,并存储一些其他对象指向的新对象。原始副本中所做的更改不会影响使用该对象的任何其他副本。由于为每个被调用的对象创建了某些副本,因此深拷贝会使程序的执行速度变慢。问题 Q4:如何提高爬取效率?可用的回答 : 爬虫下载慢主要原因是阻塞等待发往网站的请求和网站返回 1,采用异步与多线程,扩大电脑的cpu利用率; 2,采用消息队列模式 3,提高带宽 问题 Q5:AJAX是什么,如何使用AJAX?可用的回答 : jax(异步的javascript 和xml) 能够刷新局部网页数据而不是重新加载整个网页。 第一步,创建xmlhttprequest对象, var xmlhttp =new XMLHttpRequest(); XMLHttpRequest对象用来和服务器交换数据。 第二步,使用xmlhttprequest对象的open()和send()方法发送资源请求给服务器。 第三步,使用xmlhttprequest对象的responseText或responseXML属性获得服务器的响应。 第四步,onreadystatechange函数,当发送请求到服务器,我们想要服务器响应执行一些功能就需要使 用onreadystatechange函数,每次xmlhttprequest对象的readyState发生改变都会触发onreadystatechange函数。 问题 Q6:如何将值添加到python数组?可用的回答 :可以使用append(),extend()和insert(i,x)函数将元素添加到数组中。问题 Q7:Python中的docstring是什么?可用的回答 :Python文档字符串称为docstring,它是一种记录Python函数,模块和类的方法。可以通过内置方法_doc_获取问题 Q8:Python中的命名空间是什么?可用的回答 : 在Python中,引入的每个名称都有一个存在的地方,可以被连接起来。这称为命名空间。 它就像一个框,其中变量名称映射到放置的对象。每当搜索到变量时,将搜索此框以获取相应的对象。 问题 Q9:如何将数字转换为字符串?可用的回答 :要将数字转换为字符串,请使用内置函数str()。如果需要八进制或十六进制表示,请使用内置函数oct()或hex()问题 Q10:Python中的module和package是什么?可用的回答 :在Python中,模块是构造程序的方式。每个Python程序文件都是一个模块,它导入其他模块,如对象和属性。Python程序的文件夹是一个模块包。包可以包含模块或子文件夹。算法题面试官常问到的一些算法题目整理如下(大概率会机考):算题题 A1:最大长度的数对链题目描述如下:You are given n pairs of numbers. In every pair, the first number is always smaller than the second number.Now, we define a pair (c, d) can follow another pair (a, b) if and only if b 3,4Note:The number of given pairs will be in the range 1, 1000.给定一组有n个数对的数组。每个数对中的第一个数总小于第二个数。若某数组(c, d) 中的 c (a, b) 中的 b那么这就可以是一个数对链。现在求最长的数对链。可以是任意顺序的链接。第一版思路:Dp:由于是任意顺序,要先经过排序,知道哪一个是最小的。首先按照每个数对的 1 进行排序,因为 0总是比1要小的。dp的子问题:当前点可与前面的点组成的最大链。最后输出最大的链。效率是 O(n)。测试通过,beat 20% TLE.优化:思考后,经过 1 的排序后,第一个肯定是最适合作为首节点,因为没有顺序问题,相当于建立堆一样。那么剩下的就是在之后的里面挑一个0紧挨着第一个的,如此往复。也就是说:先进行1的排序,选出第一个。在进行0的排序,选出大于之前的那个的替换,然后截断再进行1的排序。原始:1,2, 2,3, 3,4进行1排序:1,2, 2,3, 3,4选出1,2进行0的排序:2,3, 3,4选出 3, 4。无剩余项,结束。更进一步:进行第一次1的排序并取出最适合作为第一个的之后,要做的是取出最适合做第二个的。1. 最适合做第二个的有一个条件,就是它的0必须大于第一个的1。2. 选出第二个后,第三个的对比条件仍是第三个的0与第二个的1做比较。3. 第二个与第三个一定也在 1 的顺序链中:第三个(用3表示)可以与第二个(用2表示

下列关于单例设计模式的描述中,正确的是()

A、将一个类设计为单例设计模式,在其他类中可以创建这个类对象

B、将一个类设计为单例设计模式,必须私有其空参数构造方法,并且还不能定义有参数的构造方法

C、将一个类设计为单例设计模式,需要定义一个静态的成员方法将本类创建的对象返回给调

D、以上答案都不对


正确答案:B


下列情况中,不会调用拷贝构造函数的是( )。

A)用一个对象去初始化同一类的另一个新对象时

B)将类的一个对象赋值给该类的另一个对象时

C)函数的形参是类的对象,调用函数进行形参和实参结合时

D)函数的返回值是类的对象,函数执行返回调用时


正确答案:B


下列情况中,不会调用拷贝构造函数的是( )。

A.用一个对象去初始化同一类的另一个新对象时

B.将类的一个对象赋值给该类的另一个对象时

C.函数的形参是类的对象,调用函数进行形参和实参结合时

D.函数的返回值是类的对象,函数执行返回调用时


正确答案:B


阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

某网站采用ASP+SQL Server开发,系统的数据库名为gldb,数据库服务器IP地址为202.12.34.1。打开该网站主页,如图5-1所示:

【问题1】(8分,每空1分)

以下是该网站主页部分的html代码,请根据图5-1将(1)~(8)的空缺代码补齐。

【问题2】(2分,每空1分)

该网站采用ASP编写程序代码,在ASP内置对象中,application对象和session对象可以创建存储空间用来存放变量和对象的引用。

如果在页面中设置访客计数器,应采用上述的 (9) 对象:如果编写购物车组件,应采用上述的 (10) 对象。

【问题3】(5分,每空1分)

以下是该网站进行数据库连接的代码conn.asp,请根据题目说明完成该程序,将答案填写在答题纸的对应位置。


答案:
解析:
【问题1】(8分,每空1分)

(1) include

(2) text

(3) value

(4) select

(5) selected

(6)

(7) submit

(8) button

【问题2】(2分,每空1分)

(9) application

(10) session

【问题3】(5分,每空1分)

(11) server

(12) conn

(13) 202.12.34.1

(14) gldb

(15) execute


解析:

【问题2】(2分,每空1分)

Application对象是在为响应一个ASP页面的首次请求而载入ASP DLL时创建的,它提供了存储空间用来存放变量和对象的引用,可用于所有的页面,任何访问者都可以打开他们。Application的变量的生命周期是WEB服务器开启WEB服务一直到终止WEB服务,在实际运用中可以应用于计算访问网站的总体人数上。而Session对象是在每一位访问者从WEB站点或者WEB应用程序中首次请求一个ASP页面时创建的,它将保留到默认的期限结束。与Application对象一样,它提供一个空间用来存放变量和对象的引用,但只能共当前的访问者在会话的生命周期中打开的页面使用,如每个用户对应的购物车组件。(9)~(10)的答案为:(9) application
(10) session
【问题3】(5分,每空1分)
第一句代码是创建一个数据库连接实例conn,会用到ASP server内置对象
第二句代码是指定数据库连接方法为sqloledb
第三句代码是创建连接字符串provstr,此字符串指定了数据库服务器ip地址、数据库名称等信息
第四句代码是固定代码conn.execute.****,执行连接字符串。(11)~(14)答案为:
(11) server
(12) conn
(13) 202.12.34.1
(14) gldb
(15) execute


阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】下图是某企业信息系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。其中:



(1)类Manager重新实现了类 Employee的方法 calSalary( ),类Manager中的方法querySalary( )继承了其父类Employee的方法querySalary( )。(2)创建类 Employee的对象时,给其设置职位(position)、基本工资(basicSalary)等信息。方法calSalary( ),根据个人的基本工资、当月工资天数(workDays)和奖金(bonus)等按特定规则计算员工工资。(3)类Department中的方法statSalary中首先调用了该类的方法load( ),获取本部门员工列表,然后调用了类 Employee中的方法calSalary( )。现拟采用面向对象的方法进行测试。【问题1】(5分)图4-1 所示的类图中,类manager 和类Employee之间是什么关系?该关系对测试的影响是什么?
【问题2】(6分)1.类Manager重新实现了类 Employee的方法calSalary( ),这是面向对象的什么机制?是否需要重新测试该方法?2.类Manager中的方法querySalary( )继承了其父类 Employee 的方法querySalary( ),是否需要重新测试该方法?【问题3】(6分)1.请结合题干说明中的描述,给出测试类Employee 方法calSalary( )时的测试序列。2.请给出类图中各个类的测试顺序。【问题4】(3分)从面向对象多态特性考虑,测试方法statSalary( )时应注意什么?


答案:
解析:
【问题1】答案:1.泛化关系;2.继承的成员函数是否需要测试;对父类的测试是否能用到子类上。【问题2】答案:(1)、多态机制;需要重新测试,因为在子类中重新进行了定义,所以需要重新测试;(2)、不需要重新测试,因为子类继承了父类的方法,只要父类的该方法通过测试了即可。【问题3】参考答案:1、测试序列:Employee-calWorkdays()-setBonus()-calSalary()-querySalary();2、先测试Employee类,然后Manager类,最后测试Department类。
【问题4】参考答案:只需要在原有的测试分析基础上增加对测试用例中输入数据的类型的考虑即可。先测试基类,然后再分别依据输入数据设计不同的测试用例。
【解析】
【问题1】考察类图的泛化关系。泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类,泛化关系通常用带空心三角形的直线来表示。对泛化关系有三个要求:1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;2、子类中除了与父类一致的信息以外,还包括额外的信息;3、可以使用父类的实例的地方,也可以使用子类的实例;【问题2】该题考察面向对象的多态机制和继承机制。多态就是在使用父类的引用调用方法的时候,不是使用父类中的方法,而是父类指向的对象的方法,这样就实现了多态。继承是指在一个类基础上定义一个新类,原有的类叫做父类,新生成的类叫子类,继承的过程是一个从一般到特殊的过程。
【问题3】第一问题干中说明,方法calSalary()根据个人的基本工资,当月工资天数和奖金等按特定规则计算,因此需要先计算天数、奖金,才能计算工资,最后才能查询工资。
第二问各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。题目中的继承关系,也就是泛化关系,Department类和基类是聚合关系。【问题4】本题考查面向对象中多态相关知识。一个基类的引用符,可以指向多种派生类对象,具有多种不同的形态,这种现象叫多态性。多态性是允许你将父对象设置成为一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。多态的作用:把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。赋值之后,父类型的引用就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲。

更多 “北京云测信息技术有限公司4月招聘面试题147道2020421” 相关考题
考题 单选题下列关于拷贝构造函数的描述中,错误的是()。A 一个类可以定义多个拷贝构造函数B 若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数C 当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝D 拷贝构造函数中的参数按引用方式传递正确答案:D解析:暂无解析

考题 填空题Command对象公开了几个可用于执行所需操作的Execute方法。当以数据流的形式返回结果时,使用()可返回DataReader对象。使用()可返回单个值。使用()可执行不返回行的命令。正确答案:ExecuteReader,ExecuteScalar,ExecuteNonQuery解析:暂无解析

考题 如果一个类中定义了__init__方法,那么在打印对象时,默认输出该方法的返回值。正确答案:错误

考题 Python里面如何拷贝一个对象?(赋值,浅拷贝,深拷贝的区别)正确答案:赋值(=),就是创建了对象的一个新的引用,修改其中任意一个变量都会影响到另一个。浅拷贝:创建一个新的对象,但它包含的是对原始对象中包含项的引用(如果用引用的方式修改其中一个对象,另外一个也会修改改变){1,完全切片方法;2,工厂函数,如list();3,copy模块的copy()函数}深拷贝:创建一个新的对象,并且递归的复制它所包含的对象(修改其中一个,另外一个不会改变){copy模块的deep.deepcopy()函数}

考题 填空题在Queue类中,移除并返回队列前端对象的方法是()。正确答案:Dequeue解析:暂无解析

考题 在public HttpSession getSession(boolean bool)的方法定义中,当bool为false时表明()A、直接返回会话对象B、当服务器已经创建了会话对象就返回该对象,否则返回nullC、直接返回nullD、当服务器已经创建了会话对象就返回该对象,否则新建一个会话对象并返回正确答案:B

考题 【说明】下图是某学校信息系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。其中:(1) 类Manager重新实现了类Student的方法 calScore( ),类Manager中的方法calWorkDays( )继承了其父类Employee的方法calWorkDays ( )。(2)创建类 Student的对象时,方法calStudent( ),根据每位同学的情况计算分数。(3)类Department中的方法statScore()中首先调用了该类的方法load( ),获取本班学生列表,然后调用了类 Student中的方法calScore( )。现拟采用面向对象的方法进行测试。 【问题1】(5分)图4-1 所示的类图中,类manager 和类Employee之间是什么关系?该关系对测试的影响是什么? 【问题2】(6分)(1) 类Manager重新实现了类Student的方法calScore( ),这是面向对象的什么机制?是否需要重新测试该方法?(2) 类Manager中的方法calWorkDays ( )继承了其父类 Student 的方法calWorkDays ( ),是否需要重新测试该方法?【问题3】(6分)请给出类图中各个类的测试顺序。【问题4】(3分)从面向对象多态特性考虑,测试方法statScore( )时应注意什么?答案:解析:【问题1】 (1) 泛化关系;(2) 继承的成员函数是否需要测试;对父类的测试是否能用到子类上。【问题2】 (1)、多态机制;需要重新测试,因为在子类中重新进行了定义,所以需要重新测试;(2)、不需要重新测试,因为子类继承了父类的方法,只要父类的该方法通过测试了即可。【问题3】 先测试Student类,然后Manager类,最后测试Department类。【问题4】 只需要在原有的测试分析基础上增加对测试用例中输入数据的类型的考虑即可。先测试基类,然后再分别依据输入数据设计不同的测试用例。 【解析】【问题1】 考察类图的泛化关系。泛化关系(Generalization)也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类,泛化关系通常用带空心三角形的直线来表示。对泛化关系有三个要求:1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;2、子类中除了与父类一致的信息以外,还包括额外的信息;3、可以使用父类的实例的地方,也可以使用子类的实例; 【问题2】 该题考察面向对象的多态机制和继承机制。多态就是在使用父类的引用调用方法的时候,不是使用父类中的方法,而是父类指向的对象的方法,这样就实现了多态。继承是指在一个类基础上定义一个新类,原有的类叫做父类,新生成的类叫子类,继承的过程是一个从一般到特殊的过程。【问题3】 由类结构可以分析出,Student应该先测,而Department依赖于Manager,因此,Manager应先于Department测试 【问题4】 题干描述,方法statScore()需要调用Student中的calScore()。而该方法在Student和Manager中有不同的实现,因此需要同时考虑Student和Manager中的calScore()。

考题 在面向对象方法中,可以触发对象的行为与操作的是()。A、方法B、事件C、属性D、类正确答案:B

考题 【说明】下图是某商场购物系统的一个类图,图中属性和方法前的"+"、"#"和"- " 分别表示公有成员、保护成员和私有成员。其中:(1) 类Manager重新实现了类Customer的方法 calMoney( );(2) 方法calMoney( ),根据每位顾客的购买情况(buyNum)、浏览商品的情况(scanNum)计算商品的热度。(3)类Admin中的方法statMoney()中首先调用了该类的方法load( ),获取顾客列表,然后调用了类Customer中的方法calMoney( )。现拟采用面向对象的方法进行测试。 【问题1】(4分)图4-1 所示的类图中,类Manager和类Customer之间是什么关系?该关系对测试的影响是什么?【问题2】(6分)(1) 类Manager重新实现了类Customer的方法calMoney( ),这是面向对象的什么机制?是否需要重新测试该方法?(2) 类Manager中的方法getMoney ( )继承了其父类 Customer 的方法getMoney ( ),是否需要重新测试该方法? 【问题3】(6分)(1)请结合题干中说明的描述,给出测试类Customer方法calMoney()时的测试序列;(2)请给出类图中各个类的测试顺序。【问题4】(4分)从面向对象多态特性考虑,测试方法statMoney( )时应注意什么?答案:解析:问题1:答案:(1) 泛化关系;(2) 继承的成员函数是否需要测试;对父类的测试是否能用到子类上。问题2:答案:(1)、多态机制;需要重新测试,因为在子类中重新进行了定义,所以需要重新测试;(2)、不需要重新测试,因为子类继承了父类的方法,只要父类的该方法通过测试了即可。问题3: (1) 测试序列:setBuyNum( )——setScanNum( )——calMoney( ) ——getMoney( ) ;(2)先测试Customer类,然后Manager类,最后测试Admin类。问题4: 只需要在原有的测试分析基础上增加对测试用例中输入数据的类型的考虑即可。先测试基类,然后再分别依据输入数据设计不同的测试用例。 【解析】 问题1:解析: 考察类图的泛化关系。泛化关系也就是继承关系,也称为“is-a-kind-of”关系,泛化关系用于描述父类与子类之间的关系,父类又称作基类或超类,子类又称作派生类,泛化关系通常用带空心三角形的直线来表示。对泛化关系有三个要求:1、子类与父类应该完全一致,父类所具有的属性、操作,子类应该都有;2、子类中除了与父类一致的信息以外,还包括额外的信息;3、可以使用父类的实例的地方,也可以使用子类的实例;问题2:解析: 该题考察面向对象的多态机制和继承机制。多态就是在使用父类的引用调用方法的时候,不是使用父类中的方法,而是父类指向的对象的方法,这样就实现了多态。继承是指在一个类基础上定义一个新类,原有的类叫做父类,新生成的类叫子类,继承的过程是一个从一般到特殊的过程。 问题3:解析: 根据题干提示,方法calMoney( ),根据每位顾客的购买情况(buyNum)、浏览商品的情况(scanNum)计算商品的热度。类之间测试的先后关系可以参考各种关系的强弱顺序:泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖。问题4:解析: 题干描述,方法statMoney()需要调用Customer中的calMoney()。而该方法在Customer和Manager中有不同的实现,因此需要同时考虑Customer和Manager中的calMoney()。

考题 下列关于拷贝构造函数的描述中,错误的是()。A、一个类可以定义多个拷贝构造函数B、若未定义拷贝构造函数,则系统会提供一个默认拷贝构造函数C、当类中有指针成员变量时,通常要为这个类定义一个拷贝构造函数来实现深拷贝D、拷贝构造函数中的参数按引用方式传递正确答案:A