面试common.docx
- 文档编号:15917775
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:16
- 大小:25.17KB
面试common.docx
《面试common.docx》由会员分享,可在线阅读,更多相关《面试common.docx(16页珍藏版)》请在冰点文库上搜索。
面试common
面试
第1章数据库
1.请列举几个常用的数据库
MSSQLServer、Oracle、MySQL、Access
2.RDBMS是什么
relationaldatabasemanagementsystem关系型数据库管理系统
3.sqlserver、oracle中如何实现自增长
sqlserver:
字段属性设置成Id
Oracle:
创建序列sequance、通过sequance.nextVal()获得下一个值
4.如何防止Sql注入
永远不要信任用户的输入、不要使用动态拼装sql、永远不要使用管理员权限的数据库连接、不要把信息直接存放、异常信息应该给出尽可能少的提示。
5.如何实现sqlserver分页,用sql语句表示
selecttop页大小*
from表
whereidnotin(selecttop(页数-1)*页大小idfromtableorderbyid)
orderbyid
selecttop页大小*
from表
whereid>(selectmax(id)from(selecttop页大小*(页数-1)idfromtableorderbyid)asTorderbyid)
6.如何实现oracle分页,用sql语句表示
select*
from(selectt.*,rownumrnfrom(select*from表where条件orderby排序列)t)
wherern>(页码-1)*页大小andrn<=页码*页大小
7.如何往数据库中新增、修改、删除一条数据
insertintotablevalues(1,2,3)
updatetablesetid=2
deletefromtablewhereid=2
8.如何查询某表一共有多少条记录?
selectcount(*)fromtable
9.连接、外连接、左连接、右连接是什么
左连接:
fromaleftjoinbona.x=b.x;显示左边表的所有行;
右连接:
fromarightjoinbona.x=b.x;显示右边表的所有行;
外连接:
fulljoin显示所有表的所有行;
连接:
innerjoin显示能连接的所有行。
10.存储过程是什么,有什么优点
是一组为了完成特定功能的sql语句集,用来执行管理任务或应用复杂的业务规则;
优点:
执行速度快、允许模块化程序设计、提高系统安全性、减少网络流量;
11.在程序中如何调用存储过程(jdbc或)
创建CallableStatement对象
CallableStatementcstmt=con.prepareCall(“{callgetTestData(?
?
)}”);
{?
=call过程名[(?
?
...)]}
设置in、out参数
cstmt.registerOutParameter(1,java.sql.Types.TINYINT);
cstmt.registerOutParameter(2,java.sql.Types.DECIMAL);
cstmt.executeQuery();
bytex=cstmt.getByte
(1);
java.math.BigDecimaln=cstmt.getBigDecimal(2,3);
12.索引是什么,索引的种类包括哪些
是编排数据的部方法,提供一种方法来编排查询数据;大大提高数据库的检索速度,改善数据库性能;
唯一索引:
唯一
主键索引:
唯一、非空
聚集索引:
物理婿与键值的逻辑顺序相同,每个表只能有一个
非聚集索引:
指定表的逻辑顺序,数据存储在一个位置、索引存储在另一个位置,索引中包含指向数据存储位置的指针,最多249个。
13.哪些字段适合建索引,哪些字段不适合建索引,为什么
14.DDL、DML、DQL是什么,请分别举例说明
数据定义语言:
createtable/view/index/syn/cluster
数据操纵语言:
insert、update、delete
数据查询语言:
select子句、from子句、where子句组成的查询块
DCL:
数据控制语言:
grant/rollback/commit
15.事务是什么?
事务的特性(ACID)
是座位单个逻辑工作但愿执行的一系列操作,这些操作座位一个整体一起向系统提交,要么都执行,要么都不执行,事务是一个不可分割的工作逻辑单元;
A:
Atomicity原子性,事务是一个完整的操作,各步操作是不可分的,要么都执行,要么都不执行;
C:
Consistency一致性,当事务完成时,数据必须处于一致状态;
I:
Isolation隔离性,对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务;
D:
Durability永久性,事务完成后,它对数据库的修改被永久包吃,事务日志能够保持事务的永久性。
16.unionall和union区别
都是将两个结果集合并为一个,但两者从使用和效率上来说都有所不同。
union在进行表连接后会筛选掉重复的记录,所以在表连接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果;
而unionall只是简单的将两个结果合并后就返回,那么返回的结果集就会包含重复的数据了。
效率上,unionall要比union快多了。
17.varchar和char区别
char:
长度固定,填充空格,效率高,数据长度变化不大或字段长度不超过50的用char
varchar:
长度可变,截取空格
18.primarykey和uniquekey的区别
一个表只能有一个主键,一个表可以有多个唯一键;
主键不允许有null值,unique允许null值。
19.什么是主键?
什么是外键?
主键是能确定一条记录的唯一标识;
外键用于与另一表的关联,是能确定另一表记录的字段,用于包吃数据的一致性。
20.sql查询中in的用法
用作条件,表示在某个围,一般和子查询一起使用。
把某一字段中容与所列出的查询容列表匹配的记录查询出来
21.写出sql语句,将”person”表中的”name”列中的””改为””
updatepersonsetname=replace(name,’’,‘’)
22.写出sql语句,查询”person”表中”date”列,日期围为20100101—20101231的记录
select*frompersonwheredatebetweento_date(‘2010-01-01’,’yyyy-MM-dd’)andto_date(‘2010-12-31’,’yyyy-MM-dd’)
23.请解释以下查询语句的查询结果。
SELECT*FROM[user]WHEREu_nameLIKE'%三%'
从user表查询u_name中有’三’的记录查出来
SELECT*FROM[user]WHEREu_nameLIKE'%三%'ANDu_nameLIKE'%四%'
从user表中查询中有‘三‘或’四‘的记录
SELECT*FROM[user]WHEREu_nameLIKE'%三%四%'
从user表中查询中有“三”和“四”的记录
SELECT*FROM[user]WHEREu_nameLIKE'_三_'
从user表中查询出长度为3,且第二个字为‘三‘的记录
SELECT*FROM[user]WHEREu_nameLIKE'三__'
从user表冲查询出姓三且名字长度为3个字的记录
SELECT*FROM[user]WHEREu_nameLIKE'[王]三'
姓或者或者王,名三
SELECT*FROM[user]WHEREu_nameLIKE'老[1-9]'
姓老名1一个1到9的任意数
SELECT*FROM[user]WHEREu_nameLIKE'[^王]三'
姓不为王名三
SELECT*FROM[user]WHEREu_nameLIKE'老[^1-4]'
姓老,名不能为1-4
24.学生表,列名称为学号、、性别、年龄、所在系、出生城市:
Student(Sno,Sname,Ssex,Sage,Sdept,City)
a、请写出建表语句,Sno为主键,其他字段为长度20的字符串。
createtableStudent(
Snoidentityprimarykey,
Snamevarchar(20),
Ssexvarchar(20),
Sagevarchar(20),
Sdeptvarchar(20),
Cityvarchar(20)
)
b、向该表插入一条数据,学号:
001,:
三,性别:
男,年龄:
22,所在系:
计算机,出生城市:
。
insertintoStudentvalues(001,’三’,’男’,’22’,’计算机’,’’)
c、将学生表中学号为007的学生的修改为四。
updateStudentsetSname=’四’wheresno=007
d、删除学生表中为三的记录。
deletefromStudentwhereSname=’三’
e、删除该表中所有的记录。
deletefromStudent
f、删除该表。
droptableStudent
g、为该表增加一个字段出生年月,字段名birthday,长度10。
alerttableStudentaddbirthdayvarchar(10)
h、附加题:
修改表名称为Students。
execsp_rename‘Student’,’Students’
25.设有三表如下:
学生表,列名称为学号、、性别、年龄、所在系、出生城市:
Student(Sno,Sname,Ssex,Sage,Sdept,City)
课程表,列名称为课程编号、课程名称:
Course(Cno,Cname)
学生选修课表,列名称为学号、课程编号、成绩:
SC(Sno,Cno,Score)
请编写如下SQL语句:
A、查询每个学生的学号、、选修的课程名和成绩。
selectsno,sname,cname,score
fromstudent,course,sc
wherestudent.sno=sc.snoando=o
B、查询选修了课程名为“信息系统”的学生学号和。
selectsno,sname
fromstudent,course,sc
wherestudent.sno=sc.snoando=oandame=’信息系统’
C、查询同名的学生的。
select
fromstudent
groupby
havingcount(*)>1
第2章JavaScript
1.在项目中哪些地方用到了js?
表单验证、ajax、页面动画效果、日历控件等。
2.为什么要用js,js有什么优点、缺点
优点:
可以进行客户端验证、方便操纵浏览器对象、控制浏览器的外观、运行方式、多任务、客户端完成
缺点:
各种浏览器支持程度不一致
3.开发时遇到js报错一般是如何进行调试的?
根据报错信息找到报错的行,根据报错提示的错误信息找到报错原因
4.谈谈你对Div+css的理解
容与表现分离、速度比table稍快
5.表单验证如何处理,如输入、地址的合法性
通过正则表达式验证,在onsubmit时调用验证方法,不通过返回false
6.使用bottom如何实现表单提交
onclick=”submit”onclick=”fnCheck()”document.forms[0].submit();
7.form中的input有哪些类型?
各是做什么处理使用的?
text:
file:
hidden:
image:
password:
button:
radio:
checkbox:
reset:
submit:
8.form中的input可以设置readonly和disable,请问这两项属性有什么区别?
不可编辑,容不可更改;
readonly:
这个元素的值可以传递出去
disable:
提交时,这个元素的值不会被传递出去
9.如何进行表格的行、列合并
rowspan、colspan
10.innerHTML和innerText的区别
innerHTML:
是html标签的属性
innerText:
返回html标记的文本
11.某一个页面中有两个表格,要实现鼠标拖动可以使表格互换位置,讲思路
12.写出Js中三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)
信息输入窗口:
window.prompt(“提示信息”,”默认值”)
警告窗口:
window.confirm("确认?
");
确认窗口:
window.alert(“警告”);
13.如何获得表单中的某个元素、某一组元素
document.getElementById(“id”);
document.getElementsByName(“name”);
document.forms[0];
document.getElementsByTags(“tag”);
14.如何获取表单
alert(obj.options[0].text)
15.Select的multiple属性有什么作用
允许多选
16.简述DIV元素和SPAN元素的区别
div:
块级元素,可以包含段落、标题、表格乃至章节、摘要和备注等。
span:
行元素,span的前后是不会换行的,它没有结构的意思
17.如何理解Js中的数据类型
js本身是弱类型语言,其变量本身是没有类型的,但数据是有类型的,也就是变量的类型是由所包含的数据决定而不是变量本身所以统一变量类型是可变的。
18.Js中常用的事件有哪些
onblur失去焦点
onchange容改变
oncopy复制对象或选中区时
onfinish当字母循环完后触发
onfocus当获得焦点时
onkeypressonkeyuponkeydown
onload
onmousedown
onsubmit
onselect
19.如何调用js函数
onclick=”javascript:
welcome()”
20.用JavaScript编程,提交显示成绩信息,要求:
a)在html页面定义学生对象student:
对象属性含【学生name,数学成绩math,语文成绩chinese,英语成绩english,自然成绩science,体育成绩gym】,对象方法含【得到总成绩sum,得到平均成绩ave,得到所有信息toString】;
b)用页面实现学生成绩信息输入;
c)按提交按扭后弹出一个对话框,显示该学生的,提示信息:
“是否查看‘xxx’同学学生信息?
”,点确定后弹出一个新页面显示学生详细信息。
21.使用JavaScript完成foo()函数的容,要求能够弹出对话框提示当前选中的是第几个单选框。
同时编写一个方法用于将字符串进行反转。
22.用JavaScript脚本语言在一个文本框中做以下判断:
如果输入非数字,在文本框失去焦点时则弹出对话框“对不起,您输入的数字有误!
请输入非数字。
”以提醒用户。
第3章体系结构
23.BS与CS的联系与区别
B/S:
Brower/Server,客户机上只要安装一个浏览器,用户界面完全通过www浏览器实现,一部分事务逻辑在前端实现,但主要事务逻辑在服务器端实现。
C/S:
client/server,服务器通常采用高性能pc、工作站或小型机,并采用大型数据库系统,客户端需要安装专用的客户端软件。
区别:
1.硬件环境不同:
cs一般建立在专用的网络上,小围里的网络环境;bs简历在广域网之上,不必是专门的网络硬件环境,有比cs更强的适应围,一般只有操作系统和浏览器就行;
2.对安全要求不同:
cs一般面向相对固定的用户群,对信息安全的控制能力很强,一般的控制能力很强,一般高度的信息系统采用cs结构适宜,bs对安全的控制能力相对弱,可能面向不可知的用户。
3.对程序架构不同
cs程序可以更加注重流程,可以对权限多层次效验,对系统运行速度可以较少考虑,bs对安全及访问速度的多重考虑,简历在需要更加优化的基础上;
4.软件重用不同,cs可以不可避免的整体姓考虑,构建的冲永兴步入在bs要求下的构建重用性好,bs对的多重结构,要求构建相对独立的功能,能够相对比较好的重用;
5.系统维护不同,cs程序由于整体性,必须整体考察,处理出现的问题以及系统的升级。
bs构建组成,方面构建个别的换,实现系统的无缝升级。
6.处理问题不同
7.用户接口不同
8.信息流不同
24.三层结构是什么
表示层、业务逻辑层、数据访问层
在客户端与数据库之间加入了一个中间层,也叫组件层。
把业务规则、数据访问、合法性效验等工作放到了中间层进行处理。
第4章XML
1.Xml是什么
ExtensibleMarkupLanguage可扩展标记语言
2.Xml在项目中可以运用在哪些地方
用做配置和数据存储
第5章UML
统模语言,为面向对象开发系统的产品进行说明、可视化和编制文档的一种标准
第6章协议
HTTP
超文本传输协议,是互联网上应用最为广泛的一种网络协议,所有www文件都必须遵守这个标准,设计http最初的目的是为了提供一种发布和接收html页面的方法。
HTTP是有状态的还是无状态的,如何理解。
无状态的,http服务器并不保存关于客户机的任何信息
HTTP404,HTTP500代表什么含义
HTTP404:
请求的页面不存在或错误;
HTTP500:
服务器部错误
TCP
传输控制协议,面向连接、基于字节流的运输层。
提供可靠的通信连接,使一台计算机发出的字节流无差错地发往网络上的其他计算机。
UDP
用户数据包协议,面向非连接,在正式通信前不必与对方先简历连接,不管对方状态就直接发送。
第7章项目
1.简要介绍你的项目经验
做了哪几个系统;
每个项目的规模、周期、对项目做一个简单的介绍;
项目中你所做的事情:
设计、编码、文档撰写等。
2.简要介绍你在项目中的职责
需求设计得等2年经验后才有机会接触到。
主要负责编码、文档、其他的工作(评审)。
3.项目中使用了哪些技术体系?
三层的结构:
视图层:
jsp、Ajax
控制层:
Struts
数据访问层:
Hibernate
数据库:
Oracle10g
把分页、业务控制、数据访问封装进去了。
4.简要介绍你参与的项目是如何做权限控制的?
5.你开发的业务相对复杂的模块会涉及几表的操作?
6左右。
。
。
6.项目大概用到了多少表?
20多左右。
。
。
7.数据量大的表一般会有多少条数据?
10万
8.你和团队成员怎么进行沟通合作?
项目例会、、知识库
9.软件项目的开发流程是什么?
瀑布模型
10.你们项目组有多少人?
6-8个人
11.项目组的人员组织结构是什么?
项目经理、4个组长、每个组长管3-4、6个人
12.你们项目的任务是如何分配的?
13.你们项目是如何管理的
14.你们项目经理如何进行进度的控制,如何确定是否按计划进行?
通过日报记录,每天记录项目进展、用excel图标形式来记录;项目例会,是否延期、调整计划、加班;
15.你是如何获取需求,熟悉需求的?
首先把需求分析文档仔细看一遍,理解业务流程,记录不理解和不太明白的业务,向编写需求分析文档的组员咨询和了解。
还要了解相关行业背景,最后达到明确、熟悉需求。
16.在做项目时是否遇到过数据库变更的情况?
是如何处理的?
数据库变更的来源:
开发人员发现问题,需要变更数据库;需求改变,需要改变数据库。
部的:
变更申请,上报项目经理,判断是否要变、怎么变;
实施变更;
记录变更;
外部的:
记录数据库变更列表;
到配置库修改变更代码;
17.你们项目测试是如何做的?
黑盒测试、白盒测试;
单元测试:
模块完成时做,组交叉测试,根据计划项目经理会安排划出具体时间来做。
获取对应模块的需求和设计,根据模板、设计编写测试用例。
执行脚本,标准的操作。
到配置库获取别人的代码,根据测试用例,一步步运行程序。
根据项目特点、业务特点尽可能多的隐藏的问题和BUG,录入bug跟踪系统(bug列表文档),通过告诉相关责任人,测试报告。
集成测试:
没做过,没关系。
。
。
18.你们会使用什么工具进行bug的管理?
BugFree、Excel表格:
bug状态、严重程度、发现人、
19.项目常会提取一些公共的功能或业务进行封装,请问你们做了哪些?
生成编号、分页组件、日历、搜索、弹出提示
20.你们项目用什么做配置库?
你们项目用什么做版本控制?
SVN做版本控制
每个人分配一个账号、别人的模块是没权限操作的,提交的代码要保证正确没错误;
所有的东西都在配置库里面
21.你在做项目的过程中遇到过什么样的问题,是如何解决的?
现金流不够、设计质量问题、bug爆发、
需求不明确:
取得客户配合和充分的介入,邀请业务专家参与;
22.你了解敏捷开发吗?
不太了解
原则:
个体和交互胜过过程和工具;
可以工作的软件胜过面面俱到的文档;
客户合作胜过合同谈判;
响应变化胜过计划。
常见敏捷开发:
极限编程;
23.项目上线后是否进行过维护?
24.如何管理好一个团队?
了解团队每个成员的情况;
威信、强势的管理;
有效的沟通、协调。
25.项目的模块有哪些?
功能模块、自己做的模块和具体业务
26.为什么项目要做这么久?
项目的规模不是很小、包括了需求25%,设计20%,编码35%,测试20%,发布、维护
27.你做的模块中,哪个模块实现得最难?
28.在项目中用到了哪些技术?
为什么要用这些技术?
Hibernate:
简化数据库访问,方便持久化开发
Spring:
解耦、AOP、IOC
Ajax:
实现无刷新,提高用户体验
29.项目怎么分工的?
根据组员能力和经验不同,分配不同的任务;要充分考虑是否能完成。
30.说说你最熟悉的项目
我最熟悉的是XX采购系统,该项目属于中项目,6个人开发了4个月。
我负责了XX模块和XX模块,在项目中参与了系统设计、编码、文档的撰写等工作。
31.你以前的公司是什么性质的?
私营企业
32.主要做哪一类产品?
企业电子商务平台,企业管理系统类的。
33.你在以前的工作怎么样工作的?
周二、周五开项目例会、每天进行项目设计、编码、测试、下班前交日报;
34.你能单挑一个项目么?
项目是团队合作的事情。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面试 common