java、sql、oracle面试题汇总_第1页
java、sql、oracle面试题汇总_第2页
java、sql、oracle面试题汇总_第3页
java、sql、oracle面试题汇总_第4页
java、sql、oracle面试题汇总_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、java 、sql、 oracle 面试题汇总 讲明:A想来B家做客,然而遭到了 B的总管NAT B的拒绝,理由是: 我从来没有听我家B提过你的名 字这时A找到了 A,B都认识的朋友serve r,要求server给B报一个信,让B去跟总管讲A是我的朋友,因此,B跟总管N AT B讲,A是我认识 的朋友,如此A的访咨询要求就可不能再被总管 NA T B所拒绝了 .简而言之,UDP打洞确实是一个通过server储存下来的地址 使得彼此之间能够直截了当通信的过 程server只管关心建立连接,在建立 间接之后就不再介入了 . 2爱护数据库的完整性、 一致性、你喜爱用触发器依旧自写业务逻辑? 什么缘

2、故 讲明:尽可能用约束(包括 CHECK 、主键、唯独键、外键、非空字段) 实现,这种方式的效率最好;其次用触发器,这种方式能够保证不管何种 业务系统访咨询数据库都能坚持数据库的完整性、一致性;最后再考虑用 自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。 3A=10,b=20 在不使用第三变量 使两值互换 讲明 : a=10,b=8 a=a-b b=b+a a=b-a 4. override 与重载的区不 讲明:override是把继承于父类的方法给覆盖掉 重载是同一个函数名同意不同类型、个数的参数,完成不同的功能,调用 起来方便 5抽象类跟接口的区不 讲明:抽象类能够有非抽

3、象方法,接口中只能有抽象方法。接口能够 实现多继承。 6try 里有一个 return 语句,那么紧跟在那个 try 后的 finally 里的 code会可不能被执行,什么时候被执行,在return前依旧后? 讲明: inally 里的代码会执行,在 return 之前执行 7实现一个冒泡排序 讲明: ArrayList list=new ArrayList(); list.add(76); list.add(4); list.add(786); list.add(43); list.add(21); list.add(432); list.add(10); for(int i=0;ilis

4、t.size()-1;i+) for(int j=1;j100 ) Where在分组之前过滤数据,条件不能包含聚组函数,having在分组之 后过滤数据,条件中经常包含聚组函数。带聚合函数的select中只能有聚合 函数和分组列。 9. 有一个学生表,有学生姓名,语文成绩,数学成绩。请写出查询语 文成绩和数学成绩在60分以上的学生信息,并能查出语文成绩和数学成绩 之和大于130分的学生信息,请用一句 SQL拼写出来。 讲明:select * from table where yuwen60 and shuxue60 and yuwen+s huxue130 10. 若pl为 false则不再运

5、算P2 11. 什么是事务?什么是锁? 讲明:事务是指一个工作单元,它包含了一组数据操作命令,同时所 有的命令作为一个整体一起向系统提交或撤消要求操作,即这组命令要么 都执行,要么都不执行。 锁是在多用户环境中对数据的访咨询的限制。SqlServer自动锁定特定记录、 字段或文件,防止用户访咨询,以爱护数据安全或防止并发数据操作咨询 题,锁能够保证事务的完整性和并发性。 12. 什么是索引,有什么优点? 讲明:索引象书的名目类似,索引使数据库程序无需扫描整个表,就 能够在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中 包含了各个值的行所储备的位置,索引能够是单个或一组列,索引提供的

6、 表中数据的逻辑位置,合理划分索引能够大大提升数据库性能。 13视图是什么?游标是什么? 讲明:视图是一种虚拟表,虚拟表具有和物理表相同的功能,能够对 虚拟表进行增该查操作,视图通常是一个或多个表的行或列的子集,视图 的结果更容易明白得(修改视图对基表不阻碍) ,猎取数据更容易(相比多 表查询更方便),限制数据检索(例如需要隐藏某些行或列) ,爱护更方便。 游标对查询出来的结果集作为一个单元来有效的处理,游标能够定位在结 果集的特定行、从结果集的当前位置检索一行或多行、能够对结果集中当 前位置进行修改、 15什么是储备过程?有什么优点? 讲明:储备过程是一组予编译的 SQL 语句,它的优点有

7、1.承诺模块化 程序设计,确实是讲只需要创建一次过程,以后在程序中就能够调用该过 程任意次。 2.承诺更快执 行,如果某操作需要执行大量 SQL 语句或重复执 行,储备过程比 SQL 语句执行的要快。 3.减少网络流量,例如一个需要数 百行的 SQL 代码的操作有一条执行 语句完成,不需要在网络中发送数百行 代码。 4.更好的安全机制,关于没有权限执行储备过程的用户,也可授权他 们执行储备过程。 16什么是触发器? 讲明:触发器是一种专门类型的储备过程,动身器要紧通过事件触发 而被执行的,触发器的优点: 1.强化约束,触发器能够提供比 CHECK 约束。 2.跟踪变化,触发 器能够跟踪数据库内

8、的操作,从而不承诺未经承诺许可 的更新和变化。 3.联级运算, 例如某个表上的触发器中包含对另一个表的数 据操作,而该操作又导致该表上 的触发器被触发。 17销售主表(订单号 ,业务员 , 客户名称 , 合同日期) 销售子表(订单号 ,产品编号 ,销售数量 ,销售金额) 产品表(产品编号 , 产品名称) 请按照以下条件,写出分不 sql 语句 1.统计合同日期为 2006年 10 月的各业务员的销售数量和销售金额 2.统计合同日期为 2006年 10 月的各产品的销售数量和销售金额 3运算业务员张三销售的产品为维生素b 的平均价格 18什么叫做 sql 注入,如何防止?请那个举例讲明。 讲明:

9、sql注入,确实是利用程序员对用户输入数据的合法性检测不严 或不检测的特点,有意从客户端提交专门代码,猎取服务端信息。 例如: “select * from users where username=” +v_name+“ and pwd= ” +v_pwd+“ ”; If(obj!=null) 验证通过 用户名随便输入,密码输入: aaa or 1=1 如何防止: PreparedStatement 19请写出 javascript 弹出确认框的函数。 讲明: confirm( 是否删除 ) 20你以为大数据量下的列表显示分页应该如何处理?请叙述一下你 的方法 讲明: type refCur

10、sorType is REF CURSOR;-游标类型定义,用于返回数 据集 procedure sp_Page(p_PageSizeint,-每页记录数 p_PageNo in t,-当前页码 ,从 1 开始 p_SqlSelect varchar2, -查询语句 ,含排序部分 p_OutRecordCount out int,- 返回总记录数 p_OutCursor out refCursorTyp e) as v_sql varchar2(3000); v_count int; v_heiRownum int; v_lowRownum int; begin 取记录总数 v_sql :=

11、select count(*) from ( | p_SqlSelect | ); execute immediate v_sql into v_count; p_OutRecordCount := v_count; 执行分页查询 v_heiRownum := p_PageNo * p_PageSize; v_lowRownum := v_heiRownum - p_PageSize + 1; v_sql := SELECT * FROM ( SELECT A.*, rownum rn FROM (| p_SqlSelect |) A WHERE rownum = | to_char(v_lo

12、wRownum) -注意对 rownum 不名的使用 ,第一次直截了 当用rownum,第二次一定要用不名rn OPEN p_OutCursor FOR v_sql; end sp_Page; /* * *功能描述: 大数据量分页通用储备过程 (重载1,举荐使用 ) * 创 建 人: 夏春涛 * 创建时刻 : 2005-07-01 * */ procedure sp_Page(p_PageSizeint,-每页记录数 p_PageNo in t,-当前页码 ,从 1 开始 p_SqlSelect varchar2, - -查询语句 ,含排序部分 p_SqlCount varchar 2,-猎取

13、记录总数的查询语句 p_OutRecordCount out int,- 返回总记录数 p_OutCursor out refCursorTyp e) as v_sql varchar2(3000); v_count int; v_heiRownum int; v_lowRownum int; begin 取记录总数 execute immediate p_SqlCount into v_count; p_OutRecordCount := v_count; 执行分页查询 v_heiRownum := p_PageNo * p_PageSize; v_lowRownum := v_heiRow

14、num - p_PageSize + 1; v_sql := SELECT * FROM ( SELECT A.*, rownum rn FROM (| p_SqlSelect |) A WHERE rownum = | to_char(v_lowRownum) -注意对 rownum 不名的使用 ,第一次直截了 当用rownum,第二次一定要用不名rn OPEN p_OutCursor FOR v_sql; end sp_Page; /* * *功能描述: 大数据量分页通用储备过程 (重载 2) * 创 建 人: 夏春涛 * 创建时刻 : 2005-07-01 * */ procedure

15、sp_Page(p_PageSizeint,-每页记录数 p_PageNo in t,-当前页码 ,从 1 开始 p_SqlSelect varchar2,-查 询语句 ,含排序部分 p_OutCursor out refCursorTyp e) as v_sql varchar2(3000); -v_count int; v_heiRownum int; v_lowRownum int; begin /* 取记录总数 v_sql := select count(*) from ( | p_SqlSelect | ); execute immediate v_sql into v_count;

16、 p_OutRecordCount := v_count; */ 执行分页查询 v_heiRownum := p_PageNo * p_PageSize; v_lowRownum := v_heiRownum - p_PageSize + 1; v_sql := SELECT * FROM ( SELECT A.*, rownum rn FROM (| p_SqlSelect |) A WHERE rownum = | to_char(v_lowRownum) 5 -注意对 rownum 不名的使用 ,第一次直截了 当用rownum,第二次一定要用不名rn OPEN p_OutCursor F

17、OR v_sql; end sp_Page 21short s1 = 1; s1 = s1 + 1; 有什么错 ?short s1 = 1; s1 += 1;有什 么错? 讲明:第一句,编译期出错,第二句正确,属于方法重载。 22 .简述 spring 的 AOP 和 IOC 讲明:ioc (操纵反转)是一种设计模式,由传统的在程序中操纵依靠 转移到由容器操纵,将相互依靠的对象分离,在 spring文件中描述依靠, 依靠只在使用时建立。 Aop (面向切面)是一种编程思想,oop的延伸,将系统中非核心业务 提取出来,单独处理。 23. Tomcat的开启在哪个文件夹,改端口号的是哪个文件? 讲

18、明: tomcat/bin tomcat/conf server.xml 24. Jdk 配置环境变量 讲明: JAVA_HOME C:JDK1.6.0 25. Java中访咨询数据库的步骤? Statement和PreparedStatement之 间的区不? 讲明: 1。注册驱动 2。取得连接对象 3。取得 Statement 4。调用 sql 5。处理 ResultSet 6。关闭资源 26. 在操纵台输入ip(5)然后,用分割开同时每组数据不能 超过 255,最后,在操纵台输出分割后的 ip。 27. 编程题 : 写一个 Singleton 出来。 讲明: cl

19、ass Text private static Text t=new Text(); private Text() public static Text getInstance() if(t=null) t=new Text(); return t; class Text private static Text t=new Text(); public static synchronized Text getInstance() if(t=null) t=new Text(); return t; 28. sleep() 和 wait() 有什么区不 ? 讲明:sleep不开释锁,可实现同步,

20、wait开释资源,无法同步。 启动一个线程是用run()依旧start()? 讲明: 30. 在操纵台输入ip(5)然后,用分割开同时每组数据不能 超过 255,最后,在操纵台输出分割后的 ip。 31. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢 ? 是用 =依旧 equals()? 它们有何区不 ? 32. try 里有一个 return 语句,那么紧跟在那个 try 后的 finally 里的code会可不能被执行,什么时候被执行,在return前依旧后? Collection 和 Collections 的区不? HashMap 和 Hasht

21、able 的区不? Arraylist 与 Vector 区不? 讲明:ArrayList不能同步,但性能更高,Vector提供了同步机制。 集合二分法 讲明:使用范畴:在一个有序的集合里查找指定数字。 Int start, end, index; Strat = 0; End = list.size() -1; Index = (start-end)/2; If (list (index) 指定数字) End = index; else if Start = index; else Break; 写出一个排序算法 Jndi 是什么? 讲明:为开发人员提供了查找和访咨询各种命名和名目服务的通用

22、, 统一的接口。目前可访咨询的名目及服务: dns,xnam,novell 名目服务, l dap, corba对象服务,文件系统,注册表,rmi, sdml, nis Java序列化是如何实现的? 讲明: 1。将对象实例有关的类元数据输出 2。递归的输出类的超类直 到不再有超类。 3。开始从最顶层的超类输出对象实例的实际数据值。 4。 递归输出实例数据 Servlet 是否线程安全? 如何读取 Excel 文件的数据,填充到数据库中,实习思路是什么? 如果有重复的数据如何办?往常的数据我想保留不能够删除,如何 实 习? 43. 写一个方法 传参(int agel)方法实现的功能是 查找per

23、son类 如果存在 age大于age1返回true否则返回false 44. 写一个 copy 方法 将已知的类 赋给另一个类 45. 按照某个字段 通过排序 查询前几条数据 46. 查询性不男的数据,并以 ID 从小到大排序 47. 用模糊查询姓王的人员 讲明: select * from table where name like 王 % 48. 删除生日在一段时刻的数据 讲明: select * from table where to_char(shengri,YYYY-mm-dd ) b etween riqi1 and riqi2 49. 查询全部数据,有相同就返回一条 讲明: se

24、lect * from table group by name Id name id name 1 a 1 a 2 b 2 b 3 c 3 c 4 b 50. 在项目中那些地点使用到了 XML 技术?如何实现的 定义函数和储备过程的区不是什么,什么情形下只能用自定义函数, 什么情形下只能用储备过程 52. subString的用法,lenght的用法,replace的用法 53. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer以 自动增长的 ID 作为主键 ,注意: ID 可能不是连续的。 54. SqlConnection,SqlCommand,SqldataReade

25、r SqlDataAdapter的用 法 SSQL :请取出tb_send表中日期(SendTime字段)为当天的所有记录?(Se ndTime字段为datetime型,包含日期与时刻)。 SSQL中更新触发器中如果有更新该表语句是否会造成死循环以及缘 故。 57. 递归法求 10! 58. struts 2 运行的全流程, 讲明:游扫瞄器发来的要求会被调度给 struts2,这时struts2清理环境 上下文(ActionContext CleanUp)做好相应的预备,与此如果 Web框架配置 了其他的框架过滤器(如siteMesh),那么struts2同时将用户的要求先通过 此过滤器,该过

26、滤器完成处理以后,struts2再通过ActionMapper等操纵器 调度,查找配置文件struts.xml,调度相应URL操纵器,预备调相应的actio n,如果此action配置了有关的拦截器,则按照拦截器的性质分不在action 执行前后执行这些拦截器, Action 与业务模型相互协作处理完成对应的用 户逻辑后,将进一步唤醒视图模块以产生应答用户要求的页面。同时,如 果在此应用配置中配置了其他的框架过滤器,那么struts2将操纵权转交给 此过滤器并完成整个应答。 struts2采纳的是pull-mvc模式,拉出式是指视图组件按照要求从操 纵器中将模型信息拉出来作为响应。 这与传统的

27、 Model2 的方式不同, 传统 的 Model2 没有使用模型来治理信息,而是直截了当使用视图来访咨询信 息。“分级”是指对视图数据在存放,在struts2中,“值堆栈”用来为视图 提供信息。 struts2 MVC是一个java轻量级 Web应用程序开发框架,它支持多视 图,承诺用户使用不同的视图技术而不需要改变数据的生成逻辑。它同时 也包含了一个强有力的表达式语言来遍历其环境栈,一个小而有用的标签 库, 59用 for ,while,switch 将 sdfdshelloWwerorld 输出 helloWord ,每 次只能输出一个字符 讲明: 1. String a=” hello

28、Word” ; String b=” sdfdshelloWwerorld” ; for(int i=0;ia.length;i+) String c=a.subString(i,i+1); for(int j=0;jb.length;j+) String d=b.subString(j,j+1); if(c.equals(d) System.out.print(c); break; 2. String a=”helloWord”; String b=” sdfdshelloWwerorld ”; int i=0; while(ia.length) String c=a.subString(i

29、,i+1); int j=0; while(jb.length() String d=b.subString(j,j+1); if(c.equals(d) System.out.print(c); break; 3. String a=” helloWord” ; String b=” sdfdshelloWwerorld ”; switch(a) case h :System.out.println(a); 60找出下面语句的错误,并进行改正,使其能正常运行 如何只修改 main 函数,输出 abc, 能不能输出 bac Class Text System.out.println( “b”

30、); static System.out.println( “a” ); public Test() System.out.println( “c” ); public String getOut()/要想让程序正常运行,必须加st atic,可能是因为是本类调用,因此要加,如果用 new关键字了就行了 try return “ 1” ; catch() return “ 2” ; fin ally return “ 3” ; public static void main(String args) System.out.println(getOut();在那个地点 new 个 Text 对象

31、就 能够了 要想输出bac在那个输出b的方法里,加 上 static 61.查询出职员的职员姓名,职员性不,职员上司的姓名,如果此人 无上司,显示无 表名:t table t Id n ame sex up 01 ding 男 02 丁的 男 01 03 的的 男 01 讲明: declare t_cusor cursor read_ only for select ,t1.sex, from t_table t1 left join t_table t 2 on t1.t_ld=t2.up order by declare n ame varcha

32、r(20), sex varchar(2), upName varchar(20) ope n t_cusor fetch next from t_cusor in to n ame,sex,upName while Fetch_status=O begi n if(up name is nu II) beg in set up name二无 select n ame,sex,upName end fetch n ext from t_cusor in to n ame,sex,upName end close t_cusor deallocate t_cusor 62 .讲有两个路口,路口站

33、着两个人,讲谎人站在讲谎国路口,讲实 话人站在实话国路口,讲谎人只讲谎话,实话人只讲实话,你如何咨询这 两个人,一个同样的咨询题,明白那个人站的路口是讲谎国,明白那个人 站的路口是实话国。 答:讲一个大伙儿都明白的事务,咨询他们你自己的性不是男的是女 的,讲话的人确信假话,你要是男的他会讲是女的,讲实话的人会讲你是 男的,你自己明白答案,按照他们讲的你就明白谁是讲谎的人了,谁不是 讲慌的人 。 63. 有一个表单(name二” forml ”)一个文本框(name二” textl”)用 不同的方式取得,尽量用不同的方法实现。 64. 实现一个将鼠标放在单元格上, 显示背景色为 #00ffff

34、,鼠标离开显 示#000000,补充函数。 Function a() Function b() 65. 定义一个v/div坐标为(100,100)鼠标单击一下 左移 10 像素,下移 10 像素。 讲明: document.all.id.style.pixelTop = 100; Document.all.id.style.pixelLeft = 100; Document.all.button.onclick = function() Document.all.id.style.pixelTop +=10; Document.all.id.style.pixelLeft -=10; 66.

35、自已写一个表格,设置为 70%透亮,1 像素宽度,单元格左测为蓝 色,右测为红色,上下为绿色,鼠标在与不在单元格上,显示不同的颜色 讲明: border:1px filter :alpha(opacity=70); 67. String str二abcde;反序输出此字符串 不准用reverse函数 讲明: for(int i=str.length();i0;i- ) System.out.println(str.substr(I-1,i); 68. List list1=new ArrayList(); list1.add(1); list1.add(2); l ist1.add(3); l

36、ist1.add(4); list1.add(5); list1.add(6); List list2=new ArrayList(); list2.add(2); list2.add(4); list2.add(6); list2.add(9); list2.add(0); 将 list1、list2 去除重复项,赋值给 List3 讲明: for(int i=0;ilist1.size();i+) if(!list3.contains(list1.get(i) list3.add(list1.get(i); for(int j=0;ilist2.size();j+) if(!list3.c

37、ontains(list2.get(j) list3.add(list2.get(j); 69一张表 字段 Id int sex int mobile varchar 对此表进行增删改查操作 70spring 以及 hibernate 的存在意义和查询模式 71多表连接查询(三个表) 讲明: 72查询表中有重复的某列 讲明: 73. char型变量中能不能存贮一个中文汉字?什么缘故? 答:是能够定义成为一个中文的,因为java中以unicode编码,一个c har占16个字节,因此放一个中文是没咨询题的 74. 抽象类与接口的区不? 答:抽象类与接口都用于抽象,然而抽象类 (JAVA 中)能够

38、有自己的部 分实现,而接口则完全是一个标识 (同时有多重继承的功能 )。 75. HashMap和 Hashtable的区不? 答:都属于 Map 接口的类,实现了将惟一键映射到特定的值上 HashMap 类没有分类或者排序。它承诺一个 null 键和多个 null 值。 Hashtable类似于 HashMap,然而不承诺null键和null值。它 也比 HashMap 慢,因为它是同步的。 76String s = new String(xyz); 创建了几个 String Object? 答:两个对象,一个是“ xyx” ,一个是指向“ xyx ”的引用对象 s。 77 .数组有没有le

39、ngth()那个方法? String有没有length()那个方法? 答:数组没有length()那个方法,有length的属性。 String有有length()那个方法。 78. Overload和Override的区不。Overloaded的方法是否能够改变返 回值的类型? 答:方法的重写Overriding和重载Overloading是Java多态性的不同表 现。重写 Overriding 是父类与子类之间多态性的 一种表现,重载 Overloadi ng 是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相 同的名称和参数,我们讲该方法被重写(Overriding)。子类的

40、对象使用那个 方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽” 了。如果在一个类中定义了多个同名的方 法,它们或有不同的参数个数或 有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是 能够改变返回值的类型。 79. 接口是否可继承接口 ? 抽象类是否可实现接口 ? 抽象类是否可继承 实体类 ? 答:接口能够继承接口。抽象类能够实现(impleme nts)接口,抽象类是 否可继承实体类,但前提是实体类必须有明确的构造函数。 80. 构造器 Constructor 是否可被 override? 答:构造器Constructor不能被继承,因

41、此不能重写Overriding ,但能够 被重载 Overloading。 81是否能够继承 String 类? 答: String 类是 final 类故不能够继承。 82当一个对象被当作参数传递到一个方法后,此方法可改变那个对 象的属性,并可返回变化后的结果,那么那个地点到底是值传递依旧引用 传递? 答:是值传递。 Java 编程语言只由值传递参数。当一个对象实例作为 一个参数被传递到方法中时,参数的值确实是对该对象的引用。对象的内 容能够在被调用的方法中改变,但对象的引用是永久可不能改变的。 83. JSP的内置对象及方法。 答:request request表示HttpServletRequest对象。它包含了有关扫瞄器 要求的信息,同时提供了几个用于猎取 cookie, header,和session数据的有 用的方法。 response response表示 HttpServletResponse对象,并提供了几个用于设 置送回 扫瞄器的响应的方法(如cookies,头信息等) out out对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你 能用于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论