《java、sql、oracle面试题汇总13858.docx》由会员分享,可在线阅读,更多相关《java、sql、oracle面试题汇总13858.docx(24页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 (口述题)请简述迅雷、BT等p2p下载软件的实现原理。如何资源分布。解释:A想想来B家做做客,但是是遭到了BB的管家NNATBB的拒绝,理由是:我从来没没有听我家家B提过你你的名 字字,这时AA找到了AA,B都认认识的朋友友servver,要要求serrver给给B报一个个信,让BB去跟管家家说A是我我的朋友,于是,BB跟管家NNATBB说,A是是我认识 的朋友,这样A的的访问请求求就不会再再被管家NNATBB所拒绝了了.简而言言之,UDDP打洞就就是一个通通过serrver保保存下来的的地址使得得彼此之间间能够直接接通信的过过 程,sserveer只管帮帮助建立连连接,在建建立间接之之后
2、就不再再介入了.2维护数数据库的完完整性、一一致性、你你喜欢用触触发器还是是自写业务务逻辑?为为什么解释:尽可可能用约束束(包括CCHECKK、主键、唯唯一键、外外键、非空空字段)实实现,这种种方式的效效率最好;其次用触触发器,这这种方式可可以保证无无论何种业业务系统访访问数据库库都能维持持数据库的的完整性、一一致性;最最后再考虑虑用自写业业务逻辑实实现,但这这种方式效效率最低、编编程最复杂杂,当为下下下之策。3A=110,b=20在不不使用第三三变量 使使两值互换换解释: aa=10,b=8a=a-bbb=b+aaa=b-aa4. ovverriide与重重载的区别别解释:ovverriid
3、e是把把继承于父父类的方法法给覆盖掉掉 重载是是同一个函函数名接受受不同类型型、个数的的参数,完完成不同的的功能,调调用起来方方便5抽象类类跟接口的的区别解释:抽象象类可以有有非抽象方方法,接口口中只能有有抽象方法法。接口可可以实现多多继承。6tryy 里里有一个rreturrn语句,那那么紧跟在在这个trry后的ffinallly 里的ccode会会不会被执执行,什么么时候被执执行,在rreturrn前还是是后?解释:innallyy里的代码码会执行,在在retuurn之前前执行7实现一一个冒泡排排序解释:ArrayyListt liist=nnew AArrayyListt(); liss
4、t.addd(766); lisst.addd(4); lisst.addd(7886); lisst.addd(433); lisst.addd(211); lisst.addd(4332); lisst.addd(100); forr(intt i=00;illist.sizee()-11;i+) foor(innt j=1;j0) /比较较两个整数数的大小 a=liist.gget(jj-1); listt.sett(j-1),llist.get(j); listt.sett(j,aa); forr(Inttegerr s:llist) Syystemm.outt.priintlnn(s
5、.iintVaalue(); 8 查出总成绩绩大于1000分的学学生信息1ZhanggSql602liC#503wangJava704zhanggJava555liSql606liJava65解释:seelectt * ffrom tablle whhere id iin (sselecct naame,ssum(ggade) as totaal frrom ttablee grooup bby naame hhavinng tootal100 )Wheree在分组之之前过滤数数据,条件件不能包含含聚组函数数,havving在在分组之后后过滤数据据,条件中中经常包含含聚组函数数。带聚合合函数的
6、sselecct中只能能有聚合函函数和分组组列。9. 有一一个学生表表,有学生生姓名,语语文成绩,数数学成绩。请请写出查询询语文成绩绩和数学成成绩在600分以上的的学生信息息,并能查查出语文成成绩和数学学成绩之和和大于1330分的学学生信息,请请用一句SSQL拼写写出来。 解释:sselecct * fromm tabble wwheree yuuwen60 aand sshuxuue600 andd yuwwen+sshuxuue133010. &和&的的区别?解释:计算算p1&p2时,Javaa先计算pp1,若pp1为trrue再计计算p2;若p1为为falsse,则不不再计算PP211.
7、 什什么是事务务?什么是是锁?解释:事务务是指一个个工作单元元,它包含含了一组数数据操作命命令,并且且所有的命命令作为一一个整体一一起向系统统提交或撤撤消请求操操作,即这这组命令要要么都执行行,要么都都不执行。锁是在多用户环境中对数据的访问的限制。SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。12什么么是索引,有有什么优点点?解释:索引引象书的目目录类似,索索引使数据据库程序无无需扫描整整个表,就就可以在其其中找到所所需要的数数据,索引引包含了一一个表中包包含值的列列表,其中中包含了各各个值的行行所存储的的位
8、置,索索引可以是是单个或一一组列,索索引提供的的表中数据据的逻辑位位置,合理理划分索引引能够大大大提高数据据库性能。13视图图是什么?游标是什什么?解释:视图图是一种虚虚拟表,虚虚拟表具有有和物理表表相同的功功能,可以以对虚拟表表进行增该该查操作,视视图通常是是一个或多多个表的行行或列的子子集,视图图的结果更更容易理解解(修改视视图对基表表不影响),获获取数据更更容易(相相比多表查查询更方便便),限制制数据检索索(比如需需要隐藏某某些行或列列),维护护更方便。游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进
9、行修改、15什么么是存储过过程?有什什么优点?解释:存储储过程是一一组予编译译的SQLL语句,它它的优点有有1.允许许模块化程程序设计,就就是说只需需要创建一一次过程,以以后在程序序中就可以以调用该过过程任意次次。2.允允许更快执执 行,如如果某操作作需要执行行大量SQQL语句或或重复执行行,存储过过程比SQQL语句执执行的要快快。3.减减少网络流流量,例如如一个需要要数百行的的SQL代代码的操作作有一条执执行 语句句完成,不不需要在网网络中发送送数百行代代码。4.更好的安安全机制,对对于没有权权限执行存存储过程的的用户,也也可授权他他们执行存存储过程。16什么么是触发器器?解释:触发发器是一
10、种种特殊类型型的存储过过程,出发发器主要通通过事件触触发而被执执行的,触触发器的优优点:1.强化约束束,触发器器能够提供供比CHEECK约束束。2.跟跟踪变化,触触发 器可可以跟踪数数据库内的的操作,从从而不允许许未经允许许许可的更更新和变化化。3.联联级运算,比比如某个表表上的触发发器中包含含对另一个个表的数据据操作,而而该操作又又导致该表表上 的触触发器被触触发。17销售售主表(订订单号 ,业业务员 , 客户名称称 , 合合同日期)销售子表(订订单号 ,产产品编号 ,销售数数量 ,销销售金额)产品表(产产品编号 , 产品品名称)请根据以下下条件,写写出分别ssql语句句1.统计合合同日期为
11、为20066年10月月的各业务务员的销售售数量和销销售金额2.统计合合同日期为为20066年10月月的各产品品的销售数数量和销售售金额3.计算业业务员张三销售的产产品为 维生素bb的平均价价格18什么么叫做sqql注入,如如何防止?请那个举举例说明。解释:sqql注入,就就是利用程程序员对用用户输入数数据的合法法性检测不不严或不检检测的特点点,故意从从客户端提提交特殊代代码,获取取服务端信信息。例如:“sselecct * fromm useers wwheree useernamme=”+v_namee+“ annd pwwd=”+v_pwd+“”;If(obbj!=nnull)验证通过用户
12、名随便便输入,密密码输入:aaaa orr 1=1如何防止:PreppareddStattemennt19请写写出javvascrript弹弹出确认框框的函数。解释:coonfirrm(是否删除除)20你以以为大数据据量下的列列表显示分分页应该如如何处理?请叙述一一下你的方方法解释:type refCCursoorTyppe iss REFF CURRSOR; -游标类型型定义,用用于返回数数据集proceeduree sp_Pagee(p_PPageSSize int, -每页记录录数 p_PPageNNo innt, -当前页码码,从 11 开始 p_SSqlSeelectt varrch
13、arr2, -查询语句句,含排序序部分 p_OOutReecorddCounnt ouut innt,-返回总记记录数 p_OOutCuursorr outt reffCurssorTyype)as vv_sqll varrcharr2(30000); vv_couunt iint; vv_heiiRownnum iint; vv_lowwRownnum iint;beginn -取记录录总数 v_ssql := sselecct coount(*) ffrom ( | p_SqlSSelecct | ); exeecutee immmediaate vv_sqll intto v_counn
14、t; p_OOutReecorddCounnt := v_ccountt; -执行分分页查询 v_hheiRoownumm := p_PaageNoo * pp_PaggeSizze; v_llowRoownumm := v_heeiRowwnum - p_PageeSizee + 11; v_ssql := SSELECCT * FFROM ( SELLECT A.*, rowwnum rn FROOM (| p_SqqlSellect |) A WHEERE rrownuum = | to_cchar(v_loowRowwnum) ; -注意对对rownnum别名名的使用,第一次直直接用r
15、oownumm,第二次次一定要用用别名rnn OPEEN p_OutCCursoor FOOR vv_sqll;end ssp_Paage;/*功能描描述: 大大数据量分分页通用存存储过程(重载1,推推荐使用)*创 建建 人: 夏春涛*创建时时间: 22005-07-001*/proceeduree sp_Pagee(p_PPageSSize int, -每页记录录数 p_PPageNNo innt, -当前页码码,从 11 开始 p_SSqlSeelectt varrcharr2, -查询语句句,含排序序部分 p_SSqlCoount varcchar22, -获取记录录总数的查查询语句 p
16、_OOutReecorddCounnt ouut innt,-返回总记记录数 p_OOutCuursorr outt reffCurssorTyype)as vv_sqll varrcharr2(30000); vv_couunt iint; vv_heiiRownnum iint; vv_lowwRownnum iint;beginn -取记录录总数 exeecutee immmediaate pp_SqllCounnt innto vv_couunt; p_OOutReecorddCounnt := v_ccountt; -执行分分页查询 v_hheiRoownumm := p_Paage
17、Noo * pp_PaggeSizze; v_llowRoownumm := v_heeiRowwnum - p_PageeSizee + 11; v_ssql := SSELECCT * FFROM ( SELLECT A.*, rowwnum rn FROOM (| p_SqqlSellect |) A WHEERE rrownuum = | to_cchar(v_loowRowwnum) ; -注意对对rownnum别名名的使用,第一次直直接用roownumm,第二次次一定要用用别名rnn OPEEN p_OutCCursoor FOOR vv_sqll;end ssp_Paage;/*
18、功能描描述: 大大数据量分分页通用存存储过程(重载2)*创 建建 人: 夏春涛*创建时时间: 22005-07-001*/proceeduree sp_Pagee(p_PPageSSize int, -每页页记录数 p_PPageNNo innt, -当前前页码,从从 1 开开始 p_SSqlSeelectt varrcharr2, -查询询语句,含含排序部分分 p_OOutCuursorr outt reffCurssorTyype)as vv_sqll varrcharr2(30000); -v_ccountt intt; vv_heiiRownnum iint; vv_lowwRownn
19、um iint;beginn/* -取记录录总数 v_ssql := sselecct coount(*) ffrom ( | p_SqlSSelecct | ); exeecutee immmediaate vv_sqll intto v_counnt; p_OOutReecorddCounnt := v_ccountt;*/ -执行分分页查询 v_hheiRoownumm := p_PaageNoo * pp_PaggeSizze; v_llowRoownumm := v_heeiRowwnum - p_PageeSizee + 11; v_ssql := SSELECCT * FFROM
20、 ( SELLECT A.*, rowwnum rn FROOM (| p_SqqlSellect |) A WHEERE rrownuum = | to_cchar(v_loowRowwnum) ; -注意对对rownnum别名名的使用,第一次直直接用roownumm,第二次次一定要用用别名rnn OPEEN p_OutCCursoor FOOR vv_sqll;end ssp_Paage21shhort s1 = 1; s1 = s1 + 1;有什么错错?shoort ss1 = 1; ss1 += 1;有有什么错?解释:第一一句,编译译期出错,第第二句正确确,属于方方法重载。22简述述s
21、priing的AAOP和IIOC解释:iooc(控制制反转)是是一种设计计模式,由由传统的在在程序中控控制依赖转转移到由容容器控制,将将相互依赖赖的对象分分离,在ssprinng文件中中描述依赖赖,依赖只只在使用时时建立。Aop(面面向切面)是是一种编程程思想,ooop的延延伸,将系系统中非核核心业务提提取出来,单单独处理。23Toomcatt的开启在在哪个文件件夹,改端端口号的是是哪个文件件?解释:toomcatt/binn tommcat/conff serrver.xml24Jddk配置环环境变量解释:JAAVA_HHOME C:JJDK1.6.025Jaava 中中访问数据据库的步骤骤
22、?Staatemeent 和和PreppareddStattemennt 之间间的区别?解释:1。注注册驱动22。取得连连接对象33。取得SStateementt 4。调调用sqll 5。处处理RessultSSet 66。关闭资资源26在控控制台输入入ip(2202.1168.223.455),然后后,用.分分割开并且且每组数据据不能超过过255,最后,在在控制台输输出分割后后的ip。27编程程题: 写写一个Siingleeton 出来。解释:cllass Texttprivaate sstatiic Teext tt=neww Texxt();privaate TText()publiic
23、 sttaticc Texxt geetInsstancce()if(t=nulll)t=neww Texxt();returrn t;classs Texxtprivaate sstatiic Teext tt=neww Texxt();publiic sttaticc synnchroonizeed Teext ggetInnstannce()if(t=nulll)t=neww Texxt();returrn t;28. ssleepp() 和和waitt() 有有什么区别别?解释:slleep不不释放锁,可可实现同步步,waiit释放资资源,无法法同步。29. 启动一个线线程是用rrun
24、()还是sttart()?解释:30. 在在控制台输输入ip(202.168.23.445),然然后,用.分割开并并且每组数数据不能超超过2555,最后,在控制台台输出分割割后的ipp。31. SSet 里里的元素是是不能重复复的,那么么用什么方方法来区分分重复与否否呢? 是是用=还还是equuals()? 它它们有何区区别?32.trry 里有一个个retuurn 语语句,那么么紧跟在这这个tryy 后的ffinallly 里的ccode会会不会被执执行,什么么时候被执执行,在rreturrn 前还还是后?33. Colleectioon 和CColleectioons 的的区别?34. H
25、ashMMap 和和Hashhtablle 的区区别?35. Arrayylistt 与Veectorr 区别?解释:ArrrayLList不不能同步,但但性能更高高,Vecctor提提供了同步步机制。36. 集合二分法法解释:使用用范围:在在一个有序序的集合里里查找指定定数字。Int sstartt,endd,inddex;Stratt = 00;End = lisst.siize()-1;Indexx = (starrt-ennd)/22;If(liist(iindexx)指定定数字)End = inddex;elsee ifStartt = iindexx;elseeBreakk;37.
26、 写出一个排排序算法38. Jndi是是什么?解释:为开开发人员提提供了查找找和访问各各种命名和和目录服务务的通用,统统一的接口口。目前可可访问的目目录及服务务:dnss,xnaam,noovelll目录服务务,ldaap,coorba对对象服务,文文件系统,注注册表,rrmi,ssdml,nnis39. Java序序列化是怎怎么实现的的?解释:1。将将对象实例例相关的类类元数据输输出2。递递归的输出出类的超类类直到不再再有超类。33。开始从从最顶层的的超类输出出对象实例例的实际数数据值。44。递归输输出实例数数据40. Servllet是否否线程安全全?41. 如何读取EExcell文件的数
27、数据,填充充到数据库库中,实习习思路是什什么?42. 如果有重复复的数据怎怎么办?以前的数数据我想保保留不可以以删除,如如何实 习习?43.写一一个方法 传参(iint aage1)方方法实现的的功能是 查找peersonn 类 如如果存在 age大大于agee1 返回回truee 否则返返回fallse44.写一一个coppy 方法法 将已知知的类 赋赋给另一个个类45.根据据某个字段段 经过排排序 查询询前几条数数据46.查询询性别男的的数据,并并以ID从从小到大排排序47.用模模糊查询姓姓王的人员员解释:seelectt * ffrom tablle whhere namee likke
28、 王%48.删除除生日在一一段时间的的数据解释:seelectt * ffrom tablle whhere to_cchar(shenngri,YYYYY-mm-dd) beetweeen riiqi1 and riqii249.查询询全部数据据,有相同同就返回一一条解释:seelectt * ffrom tablle grroup by nnameId naameiddnamee1a1a2b2b3c3c4b50.在项项目中那些些地方使用用到了XMML技术?如何实现现的。51 定义函数和和存储过程程的区别是是什么,什什么情况下下只能用自自定义函数数,什么情情况下只能能用存储过过程52.suu
29、bStrring的的用法,llenghht的用法法,repplacee的用法53. 写写出一条SSql语句句:取出表表A中第331到第440记录(SSQLSeerverr,以自动动增长的IID作为主主键,注意意:ID可可能不是连连续的。54.SqqlConnnecttion,SqlCCommaand,SSqldaataReeaderr,SqllDataaAdappter的的用法55 SSQL :请取出出tb_ssend表表中日期(SenddTimee字段)为为当天的所所有记录?(SenndTimme字段为为dateetimee型,包含含日期与时时间)。56 SSQL中中更新触发发器中如果果有更
30、新该该表语句是是否会造成成死循环以以及原因。57. 递递归法求110!58.sttrutss 2运行行的全流程程,解释:游浏浏览器发来来的请求会会被调度给给struuts2,这这时strruts22清理环境境上下文(ActiionCoontexxt ClleanUUp)做好好相应的准准备,与此此如果Weeb框架配配置了其他他的框架过过滤器(如如siteeMeshh),那么么struuts2同同时将用户户的请求先先通过此过过滤器,该该过滤器完完成处理以以后,sttrutss2再通过过ActiionMaapperr等控制器器调度,查查找配置文文件strruts.xml,调度相应应URL控控制器,准
31、准备调相应应的acttion,如如果此acctionn配置了相相关的拦截截器,则依依照拦截器器的性质分分别在acctionn执行前后后执行这些些拦截器,AActioon与业务务模型相互互协作处理理完成对应应的用户逻逻辑后,将将进一步唤唤醒视图模模块以产生生应答用户户请求的页页面。同时时,如果在在此应用配配置中配置置了其他的的框架过滤滤器,那么么struuts2将将控制权转转交给此过过滤器并完完成整个应应答。strutts2采用用的是puull-mmvc模式式,拉出式是指视图图组件根据据要求从控控制器中将将模型信息息拉出来作作为响应。这这与传统的的Modeel2 的的方式不同同,传统的的Mode
32、el2 没没有使用模模型来管理理信息,而而是直接使使用视图来来访问信息息。“分级”是指对视视图数据在在存放,在在struuts2中中,“值堆栈”用来为视视图提供信信息。strutts2 MMVC是一一个javva轻量级级Web应应用程序开开发框架,它它支持多视视图,允许许用户使用用不同的视视图技术而而不需要改改变数据的的生成逻辑辑。它同时时也包含了了一个强有有力的表达达式语言来来遍历其环环境栈,一一个小而实实用的标签签库,59用ffor ,whille,swwitchh 将ssdfdsshellloWweerorlld 输出出hellloWorrd ,每每次只能输输出一个字字符解释:1.Str
33、ring a=”hellloWorrd”;Strinng b=” sdffdsheelloWWweroorld”;for(iint ii=0;iia.llengtth;i+)Strinng c=a.suubStrring(i,i+1);for(iint jj=0;jjb.llengtth;j+)Strinng d=b.suubStrring(j,j+1);if(c.equaals(dd)Systeem.ouut.prrint(c);breakk;2. Striing aa=”hellloWorrd”;Strinng b=” sdffdsheelloWWweroorld”;int ii=0;wh
34、ilee(iaa.lenngth)Strinng c=a.suubStrring(i,i+1);int jj=0;whilee(jbb.lenngth()Strinng d=b.suubStrring(j,j+1);if(c.equaals(dd)Systeem.ouut.prrint(c);breakk;3. Sttringg a=”hellloWorrd”;Strinng b=” sdffdsheelloWWweroorld”;switcch(a)case h:Sysstem.out.prinntln(a);60找出出下面语句句的错误,并并进行改正正,使其能能正常运行行。如何只修改改mai
35、nn函数,输输出abcc, 能不不能输出bbacClasss TexxtSysteem.ouut.prrintlln(“b”);statiicSysteem.ouut.prrintlln(“a”);publiic Teest()Systeem.ouut.prrintlln(“c”);publiic Sttringg gettOut() /要想让程程序正常运运行,必须须加staatic,可可能是因为为是本类调调用,所以以要加,如如果用neew 关键键字了就行行了tryreturrn “1”;catcch()returrn “2”;finaallyreturrn “3”;publiic sttat
36、icc voiid maain(SStrinng arrgs)Systeem.ouut.prrintlln(geetOutt(); /在这这里neww 一个TText 对象就可可以了/要想想输出baac在那个个输出b的的方法里,加加上staatic61. 查查询出员工工的 员员工姓名,员员工性别,员员工上司的的姓名,如如果此人无无上司,显显示无表名:t_tabllet_Idnamesexup01ding男02丁的男0103的的男01解释:declaare tt_cussor ccursoor reead_oonly for sselecct t11.naame,t1.ssex,tt2.nnam
37、e froom t_tablle t11 lefft jooin tt_tabble tt2 onn t1.t_Idd=t2.up oorderr by t1.nameedeclaare namee varrcharr(20),sex varcchar(2), upNaame vvarchhar(220)open t_cuusor ffetchh nexxt frrom tt_cussor iinto namme,ssex,upNaamewhilee FFetchh_staatus=0 beeginif(uupnamme iss nulll)beginn sset upnaame=无 sele
38、ect namee,seex,uupNamme eend feetch nextt froom t_cusoor innto namee,seex,uupNamme enndclosee t_ccusorrdealllocatte t_cusoor62说有有两个路口口,路口站站着两个人人,说谎人人站在说谎谎国路口,说说实话人站站在实话国国路口,说说谎人只说说谎话,实实话人只说说实话,你你如何问这这两个人,一一个同样的的问题,知知道那个人人站的路口口是说谎国国,知道那那个人站的的路口是实实话国。答:说一个个大家都知知道的事务务,问他们们你自己的的性别是男男的是女的的,说话的的人肯定假假话,你要要
39、是男的他他会说是女女的,说实实话的人会会说你是男男的,你自自己知道答答案,根据据他们说的的你就知道道谁是说谎谎的人了,谁谁不是说慌慌的人 。63有一一个表单(name=”form1”)一个文本框(name=”text1”)用不同的方式取得,尽量用不同的方法实现。64实现现一个将鼠鼠标放在单单元格上,显显示背景色色为#000fffff,鼠标离离开显示#0000000,补补充函数。Functtion a()Functtion b()65定义义一个坐标为为(1000,1000)鼠标单单击一下左左移10像素,下下移10像素。解释:doocumeent.aall.iid.sttyle.pixeelTopp = 1100;Documment.all.id.sstylee.pixxelLeeft = 1000;Documment.all.buttton.ooncliick = funnctioon()Documment.all.id.sstylee.pixxelToop +=10;Documment.all.id.sstylee.pixxelLeeft -=10;66自已已写一个表表格,设置置为70%透明,1像素宽度度,单元格格左测为蓝蓝色,右测测为红色,上上下为绿色色,鼠标在在与不在单单元格上,显显示不同的的颜色。