数据开发工程师面试题

2024-05-28

数据开发工程师面试题(通用9篇)

篇1:数据开发工程师面试题

湖南路线图网络科技有限公司 技术中心 内部资料

IOS开发工程师面试题(45分钟)

1.请详述viewController的生命周期?

2.OC中类的属性retain, assign, weak, strong的作用是什么?

3.OC中SEL是什么,有什么作用?

4.如何在OC的字典或数组中存取一个基本数据类型的值?如何把字典或数组中的值转换成基本数据类型的值?

5.IOS中界面间传值的方式有哪些?

6.OC中通知有哪几类?请简述苹果推送的流程?

7.OC中浅拷贝和深拷贝的区别是什么?

8.什么是block?block如何使用?

9.谈谈OC中内存管理的方式和过程,以及ARC的使用注意事项,如何在ARC的工

程中使用非ARC的类和开源框架?

10.简要说明下OC的延展和分类的作用和区别

11.OC中多线程的实现方式有哪些?如何实现在一个异步线程中使用一个定时器?

12.请例举常用的网络请求开源框架、JSON解析开源框架、UI开源框架。

13.请详述如何使app对IOS6、IOS7、iphone4S、iphone5做界面适配的方法

14.请列举出你所知道的设计模式及各种设计模式的特点。

篇2:数据开发工程师面试题

1、网络编程里,当服务器端与客户端同向对方时发送消息时会发生什么问题?如何实现一对多发送消息,比如一个服务端如何发消息给多个客户端(不是群发)?

2、给你10个人的开发团队来做个一个信息管理系统,你如何安排?

[JAVA开发工程师面试题]

篇3:数据开发工程师面试题

关键词:SPI;数据表;Specification模块;ISA

中图分类号:THl22 文献标识码:A 文章编号:1009-2374(2013)14-0030-03

1 SPI工程设计软件使用与二次开发背景

Smart Plant Instrumentation(SPI)是Intergraph(鹰图)公司开发的专业仪表自控工程设计软件,基于公共数据库(ORACLE),是国际上广泛应用且具有很高知名度的工程设计软件。

SPI软件是基于欧美的工程设计和建设理念开发的,虽然具有十分强大的功能,在国外知名工程公司中创造了很好的应用业绩,但是长期以来,由于国内与国际在工程设计思路上存在较大差距,该软件在国内各设计院和工程建设单位的使用效果一直不理想,不能切实发挥效用。随着北京分公司国际化业务不断扩展,要求我们在工程实践中积极改变观念,适应国际项目设计与管理的需求。在此背景下,我们根据国际工程建设的总体要求,在遵循国际惯例、借鉴过去的工程经验的总体原则的指导下,对SPI软件数据表部分进行符合北京分公司特点的二次应用开发,以达到提升设计水平和保证工程设计质量、提高工作效率的目的。

2 SPI工程设计软件简介

SPI是基于数据库的工程设计软件,以Oracle数据库作为底层数据平台。实现不同使用者之间数据共享。以往的工程设计多使用AutoCAD或Office软件,设计人员通过上述软件绘制图纸、编写文件。由于图纸文件存放于各设计人员独立的电脑中,设计文件中的各项数据信息并无关联。设计过程中需要多次重复输入,一旦出现数据修改或模板修订,设计人员需对大量的文件进行修改。设计人员为保证文件质量,需要大量的重复修改及校对工作。

SPI作为仪表工程设计软件,可以覆盖绝大多数仪表设计工作,其中包括:仪表索引表、I/O表、数据表、电缆表、材料表、接线图、回路图、安装图等。上述图表的各项数据信息都通过SPI软件存入数据库,并调用于其他应用处。对任何一个文件的数据修订,其他调用此数据的文件也同时自动更新修改,无需设计人员重复输入。避免了多次输入造成的错误与遗漏,有效地保证了工程设计文件的质量。

SPI软件具有一个管理员模块和多个设计模块,设计模块主要包括:

2.1 Index(索引模块)

该模块为设计人员提供仪表信息建立、修改、删除平台。录入信息包括仪表类型、所在管线设备号、图纸号等,是主题信息的录入处,也是其他模块的基础。

2.2 Spec(仪表数据表模块)

通过该模块,可以为具体仪表阀门关联相关的数据表。表中的数据与索引模块、工艺模块、计算模块相关联,数据信息保持一致。一处填写后,无需重复填写,均可自动调用。本文重点介绍的就是本模块下的二次开发。通过二次开发,数据表模块可以更好地为工程设计服务,提高设计文件质量,更满足业主要求。

2.3 Wiring(接线模块)

通过该模块,设计人员将现场的端子通过电缆连接至接线箱、Marshalling柜、中控室系统,完成接线与回路图编制。该模块可以自动生成部分接线端子与电缆。

2.4 ProcessData(工艺数据模块)

该部分用于填写工艺参数与工艺信息。该部分填写的内容可以直接被Index模块、Spec模块共享与调用。设计人员无需二次输入此部分信息。当修改该处数据信息时,其余调用处自动修改,无需设计人员重复修改工作。

2.5 LoopDwgs(回路图模块)

该模块用于生成回路图,在生成过程中可以选择CAD/Enhanced等多种方式。该模块使用前,需在Wiring(接线模块)下完成相关接线工作,否则无法生成回路图。

2.6 Hook-up(安装图模块)

通过该模块,工程设计人员可以将数据库内的安装图与仪表相关联,通过安装图统计材料,编制材料表。

3 SPI数据表的结构与设计理念

SPI软件数据表引入了Form与Page的概念。Form由一个或者多个Page组成。软件使用时,只有Form与具体仪表或阀门相匹配,单独的Page不能与仪表或阀门相匹配。可以简单地将Form理解为“文件夹”,将Page理解为“纸制文件”。一个“文件夹”内可以有单张或多张“纸制文件”,但关联仪表的只能是“文件夹”,而不能是“独立的纸张”。

数据表页(Page)为PSR文件,需要使用INFOMAKER工具进行开发,使用SPI的ImportPSR功能调用,并在SPI中完成多页面的组合成模板(Form)。

每一个PSR文件在导入SPI软件后,都形成一个Page,按照项目需要,组成不同的Form。数据表的名称引用Form的名称,在软件中,可以查询该Form引用的Page名称与数量。

4 应用与二次开发

北京分公司在以往国际工程的设计文件中,数据表的编制多按照国内规范或其他工程经验进行编制。由于缺乏国际规范支持,不易被海外业主认可。基于上述问题,我们引进SPI软件的同时,对最新的国际标准ISA-TR20.00.01-2006推荐的数据表进行二次开发,摒弃了以往各个项目的数据表风格迥异的格式,规范北京分公司海外油田工程的数据表。

4.1 模版部分的二次开发

在以往的工程应用中,仪表数据表多为Excel表格形式,既缺乏国际规范的有力支持,填写也多有不便。通过引入SPI软件,其所提供的数据表统一按照ISA-TR20.00.01-2006的推荐格式编写。完全符合国际规范要求,适用于国际工程。

尽管其在数据调用上具有强大功能,大幅度减少信息录入次数,确保信息不重叠,极大地提高了数据表文件质量。但SPI软件提供的数据表具有一定的局限性。其固有格式为规范参考格式,表头等格式内容不符合北京分公司的质量体系文件。在不同项目中,工程设计文件所需增加的数据项也不尽相同。因此,其软件提供的数据表模板难以直接应用于我公司的具体工程项目,故此对SPI数据表的二次开发势在必行。

由于SPI软件所提供的数据表模板本身没有表头,项目名称、文件名称编码及其他相关信息无法显示。通过二次开发,在INFOMAKER中的编辑,可以制作表头,并满足北京分公司质量体系文件和相关业主方面的要求。

表头的图片为调用图,根据项目的不同,可以随时调整。项目名称为统一调用块,无需设计人员填写。项目名称变化时,由后台统一调整。此外,在二次开发中,在项目名称下方增加了区域名称调用块(CPFFSF等)、数据表名称(Pressuregauge/Flowtransmitter等)调用块、文件号调用块、页码调用块、版次调用块等。丰富数据表信息的同时,以模块的形式确保数据表信息的调用,防止多次手填而造成的错误,确保了文件质量。

其中,最新版次调用块的编辑与其他模块有所不同。其他模块可以在SPI软件的编辑模式下编辑修改,而最新版次调用块只能在原始psr文件中通过INFOMAKER修改,再导入SPI软件中。最新版次调用块的使用避免设计人员因版次变更而批量修改文件。

4.2 主体部分的二次开发

该部分内容,笔者将以差压流量变送器为例,从Page和Form两个部分分别详细介绍二次开发成果。

4.2.1 Page部分。

SPI软件的核心为数据库,大量的数据储存在数据库中,随时调用。在数据表中,仪表设备信息(位号、区域号、管线号、设备号等)、管线信息(配管标准、材料、管线尺寸)、工艺参数信息(流体介质、流相、密度、压差、流速、温度等)均为他处填写(包括索引模块、工艺模块等),本处调用。工艺模块下填写的数据,可以在填写完毕后自动调入数据表中。但涉及到仪表本体数据信息(诸如表体尺寸、安装方式、测量元件等)则需仪表专业工程师自行填写。由于项目较大,仪表数量较多,录入信息量大,难免造成错误填写。为避免此类错误的发生,在二次开发中,已将几乎全部的SPI数据表填写部分设置为下拉选单与手填相结合的模块,减少了工作劳动强度和输入错误的发生。

通过设置下拉选单,既可以避免仪表工程师繁琐的信息录入,也可以避免不必要的打字拼写错误。此外,各个选单为仪表工程师填写信息起到了参考与指导作用,避免了因个人经验与理解不同而造成的填写偏差与遗漏。

根据工程设计经验,少量的仪表数据信息同样需要填入数据表。SPI软件所提供的数据表不能满足全部要求。在差压流量变送器中,浪涌保护器、防护等级、密封材料及电缆接口等信息需要录入。因此,二次开发中,特别针对部分仪表设备增加了信息项。

数据表除了原有各项的填写外,往往根据具体工程不同,需要附加说明页。由于SPI软件并未提供相关符合要求的数据表说明页。二次开发中,完善了这一部分的内容。增加了符合公司质量体系文件中规定的数据表说明页,并附加在相关的仪表数据表中。

4.2.2 Form部分。

Form是SPI软件数据表部分的重要内容,Form部分由一个或者多个Page组成,并直接关联具体仪表或阀门。仪表或阀门的数据表内容均由Form展开,具体涉及内容的多少,取决于Page数量。

数据表信息与内容由Page直接传递给阅读者,但Form本身的设置,也会影响数据信息的传递。以差压流量变送器为例,其工作原理为测量孔板前后压差,从而计算流量数据。在使用变送器时,需上传流量数据信息。SPI软件所提供的部分数据表具有孔板流量计和差压变送器。但将两者结合使用时,尽管既可以获取孔板本身参数信息,也具有差压变送器的相关数据。但两张Page的Function不同,孔板的Function为Flow,而差压变送器的Function为Pressure。Function不同的Page无法组成同一个Form。通常将两者分开使用,孔板关联流量数据表,差压变送器关联差压数据表。但Function的不同直接导致流量信息无法通过压力变送器进行传递,如此配置将导致重要数据遗漏。通过二次开发,将差压变送器的Function更改为Flow。数据表本身内容不做调整,名称定为差压流量变送器。修订Function后,实现流量数据表的Page与差压流量变送器的Page同属一个Form。孔板的相关流量信息也可通过流量属性的变送器上传,确保了信息的完整。

4.3 火气仪表数据表的二次开发

火气仪表是油田地面工程中重要的仪表组成部分。由于国际规范ISA对此未作统一要求的数据表模板,本次二次开发,根据以往工程经验,结合ISA其他数据表模版格式,编制了火气仪表数据表。包括可燃气体探测、有毒气体探测、火焰探头、感温电缆、光报警器、声报警器等等。

5 结语

本次SPI软件二次开发,将SPI软件自身提供的ISA数据表进行了有针对性的修改。重新编辑完成57份Page,并制作完成了74个Form,完全满足现有工程仪表阀门数据表的应用,使数据表文件模版符合我公司质量体系文件相关要求,并满足国内业主对文件编制的相关需求。通过二次开发,SPI软件数据表部分得以顺利在北京分公司开展使用,现已应用于多个海外项目,取得了良好效果。

二次开发的成果文件不仅可以应用于现有的工程设计文件,而且可以作为未来开发的平台,为未来继续开发、完善工作提供了文件的基础和技术储备。

参考文献

[1] ISA-TR20.00.01-2006 Specification Forms for Process Measurement and Control Instruments.

[2] 项飞.INtools软件综述及其二次开发[J].石油化工自动化,2006,(4).

篇4:前端开发面试题

本文由我收集总结了一些优质的前端面试题,初学者阅后也要用心钻研其中的原理,重要知识需要系统学习、透彻学习,形成自己的知识链。万不可投机取巧,只求面试过关是错误的!

前端还是一个年轻的行业,新的行业标准, 框架, 库都不断在更新和新增,正如赫门在2015深JS大会上的《前端服务化之路》主题演讲中说的一句话:“每18至24个月,前端都会难一倍”,这些变化使前端的能力更加丰富、创造的应用也会更加完美。所以关注各种前端技术, 跟上快速变化的节奏, 也是身为一个前端程序员必备的技能之一。

最近也收到许多微博私信的鼓励和更正题目信息,后面会经常更新题目和答案到github博客,但其他旧版本的分支和其他网站出现的拷贝版本上面的错误回答我也管不了嘞。希望更多的前端开发可以达到既能使用也会表达,对理论知识有自己的理解,也可根据下面的知识点一个一个去进阶学习,形成自己的职业技能链。

面试有几点需注意:

1、面试题目:根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。

2、题目类型:理论知识,算法,项目细节、技术视野、开放性题,工作案例。

3、细节追问:可以确保问到你开始不懂或面试官开始不懂为止,这样可以大大延展题目的区分度和深度,知道你的实际能力。因为这种知识关联是长时期的学习,临时抱佛脚绝对是记不住的。

4、回答问题再棒,面试官(可能是你面试职位的直接领导),会考虑我要不要这个人做我的同事?所以态度很重要、除了能做事,还要会做人。(感觉更像是相亲( ))

5、资深的前端开发能把absolute和relative弄混,这样的人不要也罢,因为团队需要的是:你这个人具有可以依靠的才能(靠谱)。

前端开发面试知识点大纲:

作为一名前端工程师,无论工作年头长短都应该必须掌握的知识点:

HTML

Doctype作用?标准模式与兼容模式各有什么区别?

HTML5 为什么只需要写 ?

行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

首先:CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,如div的display默认值为“block”,则为“块级”元素;span默认display属性值为“inline”,是“行内”元素。

(1)行内元素有:a b span img input select strong(强调的语气)

(2)块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p

(3)常见的空元素:

鲜为人知的是:

页面导入样式时,使用link和@import有什么区别?

(1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;

(2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

(3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

介绍一下你对浏览器内核的理解?

主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。

渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。

JS引擎则:解析和执行javascript来实现网页的动态效果。

最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。

常见的浏览器内核有哪些?

Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等。[又称MSHTML]

Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等

Presto内核:Opera7及以上。 [Opera内核原为:Presto,现为:Blink;]

Webkit内核:Safari,Chrome等。 [ Chrome的:Blink(WebKit的分支)]

详细文章:浏览器内核的解析和对比 - 依水间

html5有哪些新特性、移除了那些元素?如何处理HTML5新标签的浏览器兼容问题?如何区分 HTML 和 HTML5?

* HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加。

绘画 canvas;

用于媒介回放的 video 和 audio 元素;

本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失;

sessionStorage 的数据在浏览器关闭后自动删除;

语意化更好的内容元素,比如 article、footer、header、nav、section;

表单控件,calendar、date、time、email、url、search;

新的技术webworker, websockt, Geolocation;

移除的元素:

纯表现的元素:basefont,big,center,font, s,strike,tt,u;

对可用性产生负面影响的元素:frame,frameset,noframes;

* 支持HTML5新标签:

IE8/IE7/IE6支持通过document.createElement方法产生的标签,

可以利用这一特性让这些浏览器支持HTML5新标签,

浏览器支持新标签后,还需要添加标签默认的样式。

当然最好的方式是直接使用成熟的框架、使用最多的是html5shim框架

* 如何区分: DOCTYPE声明新增的结构元素功能元素

简述一下你对HTML语义化的理解?

用正确的标签做正确的事情。

html语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析;

及时在没有样式CCS情况下也以一种文档格式显示,并且是容易阅读的;

搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;

使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

HTML5的离线储存怎么使用,工作原理能不能解释一下?

在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件。

原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示。

如何使用:

1、页面头部像下面一样加入一个manifest的属性;

2、在cache.manifest文件的编写离线存储的资源;

CACHE MANIFEST

#v0.11

CACHE:

js/app.js

css/style.css

NETWORK:

resourse/logo.png

FALLBACK:

/ /offline.html

3、在离线状态时,操作window.applicationCache进行需求实现。

详细的使用请参考:有趣的HTML5:离线存储

浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?

在线的情况下,浏览器发现html头部有manifest属性,它会请求manifest文件,如果是第一次访问app,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过app并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。

离线的情况下,浏览器就直接使用离线存储的资源。

详细的使用请参考:有趣的HTML5:离线存储

请描述一下 cookies,sessionStorage 和 localStorage 的区别?

localStorage 长期存储数据,浏览器关闭后数据不丢失;

sessionStorage 数据在浏览器关闭后自动删除。

iframe有那些缺点?

*iframe会阻塞主页面的Onload事件;

*iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。

使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript

动态给iframe添加src属性值,这样可以可以绕开以上两个问题。

Label的作用是什么?是怎么用的?

label标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。

Number:

Date:

HTML5的form如何关闭自动完成功能?

给不想要提示的 form 或下某个input 设置为autocomplete=off。

请描述一下 cookies,sessionStorage 和 localStorage 的区别?

cookie在浏览器和服务器间来回传递。 sessionStorage和localStorage不会

sessionStorage和localStorage的存储空间更大;

sessionStorage和localStorage有更多丰富易用的接口;

sessionStorage和localStorage各自独立的存储空间;

如何实现浏览器内多个标签页之间的通信? (阿里)

调用localstorge、cookies等本地存储方式

webSocket如何兼容低浏览器?(阿里)

Adobe Flash Socket 、ActiveX HTMLFile (IE) 、基于 multipart 编码发送 XHR 、基于长轮询的 XHR

CSS

介绍一下CSS的盒子模型?

(1)有两种, IE 盒子模型、标准 W3C 盒子模型;IE的content部分包含了 border 和 pading;

(2)盒模型: 内容(content)、填充(padding)、边界(margin)、边框(border).

CSS 选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?

* 1.id选择器( # myid)

2.类选择器(.myclassname)

3.标签选择器(div, h1, p)

4.相邻选择器(h1 + p)

5.子选择器(ul >li)

6.后代选择器(li a)

7.通配符选择器( * )

8.属性选择器(a[rel = “external”])

9.伪类选择器(a: hover, li: nth - child)

* 可继承的样式: font-size font-family color, UL LI DL DD DT;

* 不可继承的样式:border padding margin width height ;

* 优先级就近原则,同权重情况下样式定义最近者为准;

* 载入样式以最后载入的定位为准;

优先级为:

!important >id >class >tag

important 比 内联优先级高

CSS3新增伪类举例:

p:first-of-type 选择属于其父元素的首个

元素的每个

元素。

p:last-of-type 选择属于其父元素的最后

元素的每个

元素。

p:only-of-type 选择属于其父元素唯一的

元素的每个

元素。

p:only-child 选择属于其父元素的唯一子元素的每个

元素。

p:nth-child(2) 选择属于其父元素的第二个子元素的每个

元素。

:enabled :disabled 控制表单控件的禁用状态。

:checked 单选框或复选框被选中。

如何居中div?如何居中一个浮动元素?

给div设置一个宽度,然后添加margin:0 auto属性

div{

width:200px;

margin:0 auto;

}

居中一个浮动元素

确定容器的宽高 宽500 高 300 的层

设置层的外边距

.div {

Width:500px ; height:300px;//高度可以不设

Margin: -150px 0 0 -250px;

position:relative;相对定位

background-color:pink;//方便看效果

left:50%;

top:50%;

}

列出display的值,说明他们的作用。position的值, relative和absolute定位原点是?

1、block 象块类型元素一样显示。

none 缺省值。象行内元素类型一样显示。

inline-block 象行内元素一样显示,但其内容象块类型元素一样显示。list-item 象块类型元素一样显示,并添加样式列表标记。

2、*absolute

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。

*fixed (老IE不支持)

篇5:数据库面试题

答:

→ 解1: select top 10 * from A where id not in (select top 30 id from A)

演变步骤:

1)select top 30 id from T_FilterWordsC取前条

2)select * from T_FilterWords where id not in (select top 30 id from T_FilterWords)C取id不等于前三十条的C也就是把前条排除在外

3)select top 10 * from T_FilterWords where id not in (select top 30 id from T_FilterWords)

C取把前条排除在外的前条,也就是-40条

→ 解2: select top 10 * from A where id > (select max(id) from (select top 30 id from A )as A)

→ 解3:用ROW_NUMBER实现

/―――――――――――――――C+―――――――――――――――C

下面的SQL题是常考题中的常考题,必须重视!!!!!!!!

2,横表、纵表转换(常考!!!)

1)纵表结构 TableA

Name Course Grade

张三 语文 75

张三 数学 80

张三 英语 90

李四 语文 95

李四 数学 55

横表结构 TableB

Name 语文 数学 英语

张三 75 80 90

李四 95 55 0

先理解:

select Name,

(case Course when ‘语文‘ then Grade else 0 end) as 语文,

(case Course when ‘数学‘ then Grade else 0 end) as 数学,

(case Course when ‘英语‘ then Grade else 0 end) as 英语

from TableA

然后理解标准答案:

select Name,

sum(case Course when ‘语文‘ then Grade else 0 end) as 语文,

sum(case Course when ‘数学‘ then Grade else 0 end) as 数学,

sum(case Course when ‘英语‘ then Grade else 0 end) as 英语

from TableA

group by Name

2)、横表转纵表的”SQL”示例

横表结构: TEST_H2Z

ID 姓名 语文 数学 英语

1 张三 80 90 70

2 李四 90 85 95

3 王五 88 75 90

转换后的表结构:

ID 姓名 科目 成绩

1 张三 语文 80

2 张三 数学 90

3 张三 英语 70

4 李四 语文 90

5 李四 数学 80

6 李四 英语 99

7 王五 语文 85

8 王五 数学 96

9 王五 英语 88

横表转纵表SQL示例:

SELECT 姓名,’语文’ AS 科目,语文 AS 成绩 FROM TEST_H2Z UNION ALL

SELECT 姓名,’数学’ AS 科目,数学 AS 成绩 FROM TEST_H2Z UNION ALL

SELECT 姓名,’英语’ AS 科目,英语 AS 成绩 FROM TEST_H2Z

ORDER BY 姓名,科目 DESC;

3,删除姓名、年龄重复的记录(只保留Id最大的一条)(常考!!!)

Id name age salary

1 yzk 80 1000

2 yzk 80

3 tom 20 20000

4 tom 20 20000

5 im 20 20000

//取得不重复的数据

select * from Persons

where Id in

(

SELECT MAX(Id) AS Expr1

FROM Persons

GROUP BY Name, Age

)

→ 根据姓名、年龄分组,取出每组的Id最大值,然后将Id最大值之外的排除。

删除重复的数据:

delete from Persons

where Id not in

(

SELECT MAX(Id) AS Expr1

FROM Persons

GROUP BY Name, Age

)

4,下面是一个由*号组成的4行倒三角形图案。

→ 要求:1、输入倒三角形的行数,行数的取值3-21之间,对于非法的行数,要求抛出提示“非法行数!”;2、在屏幕上打印这个指定了行数的倒三角形。

*******

*****

***

*

5,一个文本文件含有如下内容:

4580616022644994|3000|赵涛

4580616022645017|6000|张屹

4580616022645090|3200|郑欣夏

→ 上述文件每行为一个转账记录,第一列表示帐号,第二列表示金额,第三列表示开户人姓名。

篇6:web前端开发面试题

1. Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

2. 行内元素有哪些?块级元素有哪些?CSS的盒模型?

3. CSS引入的方式有哪些? link和@import的区别是?

4. CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?

5. 前端页面有哪三层构成,分别是什么?作用是什么?

6. css的基本语句构成是?

7. 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?

8. 如何居中一个浮动元素?

9. 有没有关注HTML5和CSS3?如有请简单说一些您对它们的了解情况!

10. 你怎么来实现下面这个设计图,主要讲述思路 (效果图省略)

11. 如果让你来制作一个访问量很高的大型网站,你会如何来管理所有CSS文件、JS与图片?

12. 你对前端界面工程师这个职位是怎么样理解的?它的前景会怎么样?

【Javascript】

1. js是什么,js和html 的开发如何结合?

2. 怎样添加、移除、移动、复制、创建和查找节点

3. 怎样使用事件以及IE和DOM事件模型之间存在哪些主要差别

4. 面向对象编程:b怎么继承a

5. 看看下面alert的结果是什么

view sourceprint?1.function b(x, y, a) {

.arguments[2] = 10;

.alert(a);

}

b(1, 2, 3);

如果函数体改成下面,结果又会是什么?

a = 10;

alert(arguments[2] );

6. 请编写一个JavaScript函数 parseQueryString,它的用途是把URL参数解析为一个对象

var obj = parseQueryString(url);

alert(obj.key0) // 输出0

7. ajax是什么? ajax的交互模型? 同步和异步的区别? 如何解决跨域问题?

8. 什么是闭包?下面这个ul,如何点击每一列的时候alert其index?

这是第一条

这是第二条

这是第三条

9. 最近看的一篇Javascript的文章是?

10. 常使用的库有哪些?常用的前端开发工具?开发过什么应用或组件?

11.说说YSlow(可以详细一点)

[web前端开发面试题]

篇7:“天才”面试题

1房里有三盏灯,房外有三个开关,在房外看不见房内的情况。但可以任意扳动开关。你只能进门观察一次,你用什么方法来区分哪个开关控制哪一盏灯?

2有两根粗细不均匀的香,燃烧时快时慢,但每根香烧完的时间确定是一小时。你能用什么方法来确定45分钟的时间?

3村子里有50个人,每个人都有一条狗,在这50条狗中有病狗(这种病不传染),人们要找出病狗。每个人可以观察其他49条狗,以判断它们是否生病,但只有自己的狗不能看,观察后得到的结果不能交流,也不能通知病狗的主人。主人一旦推算出自己的狗有病时,就必须在一天内将其枪毙,而且只有权力枪毙自己的狗,没有权力打死其他人的狗。第一天大家全看完了,但枪没响,第二天枪也没响,第三天才传来枪响。问:村里共有几条病狗?如何推算出来的?

4在太平洋的一个小岛上生活着土著人,他们不愿意被外人打扰。一天,一位探险家到了岛上,被土著人捉住,土著人的首领告诉他:“你临死前可以有个机会留下一句话,如果这句话是真的,你将被烧死;如果是假的。你将被五马分尸。”可怜的探险家说什么才能活下来?

5一个老师为了测试一下A、B两个学生哪一个反应速度更快,就把他们带到一个伸手不见五指的黑房子里。老师打开灯说:“这张桌子上有五顶帽子,两顶是红色的,三顶是黑色的。现在,我把灯关掉,并把帽子的顺序搞乱,然后,我们三人每人摸一顶戴在头上。当我把灯打开时,请你们尽快说出,自己头上戴的是什么颜色的帽子。”然后老师把灯关掉了,三个人都摸了一顶帽子戴在头上,同时,老师把另外两顶藏起来了。电灯打开后,那两个同学看到老师头上戴着的是顶红色的帽子,过了一会儿,A喊道:“我戴的是黑帽子。”请问A是如何推理的?

答案(仅供参考):

1先打开两个开关,等一段时间再关上其中一个,马上进里观察。打开的灯对应打开的开关,因此用手摸到热的灯对应刚刚关闭的开关,凉的对应始终投打开的开关。

2点燃其中一根。并把另一根两头点燃。第二根烧完恰好过去30分钟,第一根剩下部分应该能支撑30分钟的燃烧。然后把第一根剩下的部分两头点燃,15分钟即可燃尽,此过程一共耗时45分钟。

3若只有一条病狗,病狗的主人看到其他的狗都沒有病,那么就知道自己的狗有病,所以第一天晚上就会枪响。因为没有枪响,就说明病狗数量大于1。若有两条病狗,病狗的主人会看到有一条病狗,而第一天没听到枪响,说明病狗数大于1,所以病狗主人也会知道自己的狗有病,因而第二天会听枪响,既然第二天枪也没响,说明病狗数大于2。依此类推,如果第三天听到枪响。说明有三条病狗。

4这是一个悖论问题,探险家只能描述一种非真非假的状况,比如:我将被五马分尸。如果土著判定这话是真的,那么他将被烧死——这样“五马分尸”就成假的了。如果土著判定这话是假的,那他将被五马分尸的话就变成了真的。

5如果A戴的是红帽子,那么B马上就可以猜出自己戴的是黑帽子(因为红帽子只有两顶);而B并没有立刻猜到,所以A马上推断出自己戴的是黑帽子!

汪新才摘自《狗眼看世界》

篇8:JS开发人员面试题

面试题(JavaScript部分)

填空

1.如果一个分为左右两个框架的框架组,要想使左侧的框架宽度不变,应该用 ___________单位来定制其宽度,而右侧框架则使用___________单位来定制。

2.表单对象的名称由_____________属性设定;提交方法由_____________属性指定;若要提交大数据量的数据,则应采用_____________方法;表单提交后的数据处理程序由_____________属性指定。

3.请写出在网页中设定表格边框的厚度的属性___________;设定表格单元格之间宽度属性___________;设定表格资料与单元格线的距离属性__________。

4.设定图片边框的属性是_____________;设定图片高度及宽度的属性是_____________和_____________。

5.在页面中实现滚动文字的标记是_____________。

6.当表单以电子邮件的形式发送,表单信息不以附件的形式发送,应将【MIME类型】设置为_____________。

7.设定图片上下留空的属性是_________;设定图片左右留空的属性是________。

8.在网页中嵌入多媒体,如电影,声音等用到的标记是____________。

9.用来在视频窗口下附加 MS-WINDOWS 的 AVI 播放控制条的属性是__________________。

简答

10.JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?

11.网页中声明CSS有几种方式,并写出使用方式?

12.你认为网页中三种最基本的页面组成元素是

13.在HTML中,有一个城市的下拉列表框的代码为:

请用javascript分别写出如何得到当前选中城市的value和名称(名称是广东和海南):

14.编写两个表格,表格的高宽用两种不同的单位来设置。

15.编写一个用来输入密码的表单域。

16.RGB方式表示的颜色都是由哪3种基色调和而成。

17.在网页中插入背景图案(文件的路径及名称为/img/bg.jpg)的语句是

18.预格式化文本标记

的功能是什么?

19.在一个CSS文件中如何定义各种样式,比如根据id,根据name等。

(1)直接标签名作为CSS类名称:

(2)以元素ID作为CSS类声明:

(3)自定义CSS类名称 :

20.在JavaScript中实现定时1秒调用功能

21.请在下面写出你知道的在javascript中获取一个html element对象的方法,如 这个element;

22.要设置一条1象素粗的水平线,应使用的HTML语句是?

23.请写出HTML中打开一个模式窗口和非模式窗口的javascript代码。

24.在页面中添加背景音乐bg.mid,循环播放3次的语句

篇9:大数据技术Hadoop面试题

15. Nagios 不可以监控 Hadoop 集群,因为它不提供 Hadoop 支持。(错误 )

分析:Nagios是集群监控工具,而且是云计算三大利器之一

16. 如果 NameNode 意外终止,SecondaryNameNode 会接替它使集群继续工作。(错误 )

分析:SecondaryNameNode是帮助恢复,而不是替代,如何恢复,可以查看

17. Cloudera CDH 是需要付费使用的。(错误 )

分析:第一套付费产品是Cloudera Enterpris,Cloudera Enterprise在美国加州举行的 Hadoop 大会 (Hadoop Summit) 上公开,以若干私有管理、监控、运作工具加强 Hadoop 的功能。收费采取合约订购方式,价格随用的 Hadoop 布大小变动。

18. Hadoop 是 Java 开发的,所以 MapReduce 只支持 Java 语言编写。(错误 )

分析:rhadoop是用R语言开发的,MapReduce是一个框架,可以理解是一种思想,可以使用其他语言开发。

19. Hadoop 支持数据的随机读写。(错 )

分析:lucene是支持随机读写的,而hdfs只支持随机读。但是HBase可以来补救。HBase提供随机读写,来解决Hadoop不能处理的问题。HBase自底层设计开始即聚焦于各种可伸缩性问题:表可以很“高”,有数十亿个数据行;也可以很“宽”,有数百万个列;水平分区并在上千个普通商用机节点上自动复制。表的模式是物理存储的直接反映,使系统有可能提高高效的数据结构的序列化、存储和检索。

20. NameNode 负责管理 metadata,client 端每次读写请求,它都会从磁盘中读取或则会写入 metadata 信息并反馈 client 端。(错误)

此题分析:

NameNode 不需要从磁盘读取 metadata,所有数据都在内存中,硬盘上的只是序列化的结果,只有每次 namenode 启动的时候才会读取。

1)文件写入

Client向NameNode发起文件写入的请求。

NameNode根据文件大小和文件块配置情况,返回给Client它所管理部分DataNode的信息。

Client将文件划分为多个Block,根据DataNode的地址信息,按顺序写入到每一个DataNode块中。

2)文件读取

Client向NameNode发起文件读取的请求。

21. NameNode 本地磁盘保存了 Block 的位置信息。( 个人认为正确,欢迎提出其它意见)

分析:DataNode是文件存储的基本单元,它将Block存储在本地文件系统中,保存了Block的Meta-data,同时周期性地将所有存在的Block信息发送给NameNode。NameNode返回文件存储的DataNode的信息。

Client读取文件信息。

22. DataNode 通过长连接与 NameNode 保持通信。( )

这个有分歧:具体正在找这方面的有利资料。下面提供资料可参考。

首先明确一下概念:

(1).长连接

Client方与Server方先建立通讯连接,连接建立后不断开,然后再进行报文发送和接收。这种方式下由于通讯连接一直存在,此种方式常用于点对点通讯。

(2).短连接

Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此种方式常用于一点对多点通讯,比如多个Client连接一个Server.

23. Hadoop 自身具有严格的权限管理和安全措施保障集群正常运行。(错误 )

hadoop只能阻止好人犯错,但是不能阻止坏人干坏事

24. Slave 节点要存储数据,所以它的磁盘越大越好。( 错误)

分析:一旦Slave节点宕机,数据恢复是一个难题

25. hadoop dfsadmin Creport 命令用于检测 HDFS 损坏块。(错误 )

26. Hadoop 默认调度器策略为 FIFO(正确 )

27. 集群内每个节点都应该配 RAID,这样避免单磁盘损坏,影响整个节点运行。(错误 )

分析:首先明白什么是RAID,可以参考百科磁盘阵列。这句话错误的地方在于太绝对,具体情况具体分析。题目不是重点,知识才是最重要的。因为hadoop本身就具有冗余能力,所以如果不是很严格不需要都配备RAID。具体参考第二题。

28. 因为 HDFS 有多个副本,所以 NameNode 是不存在单点问题的。(错误 )

29. 每个 map 槽就是一个线程。(错误 )

分析:首先我们知道什么是map 槽,map 槽->map slotmap slot 只是一个逻辑值 ( org.apache.hadoop.mapred.TaskTracker.TaskLauncher.numFreeSlots ),而不是对应着一个线程或者进程

30. Mapreduce 的 input split 就是一个 block。(错误 )

31. NameNode 的 Web UI 端口是 50030,它通过 jetty 启动的 Web 服务。(错误 )

32. Hadoop 环境变量中的 HADOOP_HEAPSIZE 用于设置所有 Hadoop 守护线程的内存。它默认是 200 GB。( 错误)

hadoop为各个守护进程(namenode,secondarynamenode,jobtracker,datanode,tasktracker)统一分配的内存在hadoop-env.sh中设置,参数为HADOOP_HEAPSIZE,默认为1000M。

33. DataNode 首次加入 cluster 的时候,如果 log 中报告不兼容文件版本,那需要 NameNode执行“Hadoop namenode -format”操作格式化磁盘。(错误 )

分析:

首先明白介绍,什么ClusterID

ClusterID

添加了一个新的标识符ClusterID用于标识集群中所有的节点。当格式化一个Namenode,需要提供这个标识符或者自动生成。这个ID可以被用来格式化加入集群的其他Namenode。

二次整理

有的同学问题的重点不是上面分析内容:内容如下:

上一篇:《编辑选定的图形块》教学设计下一篇:罗湖区机关事务局2009年工作计划