java和sql和oracle面试题汇总--__--.doc_第1页
java和sql和oracle面试题汇总--__--.doc_第2页
java和sql和oracle面试题汇总--__--.doc_第3页
java和sql和oracle面试题汇总--__--.doc_第4页
java和sql和oracle面试题汇总--__--.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1 (口述题)请简述迅雷、BT等p2p下载软件的实现原理。如何资源分布。解释:A想来B家做客,但是遭到了B的管家NATB的拒绝,理由是:我从来没有听我家B提过你的名 字,这时A找到了A,B都认识的朋友server,要求server给B报一个信,让B去跟管家说A是我的朋友,于是,B跟管家NATB说,A是我认识 的朋友,这样A的访问请求就不会再被管家NATB所拒绝了.简而言之,UDP打洞就是一个通过server保存下来的地址使得彼此之间能够直接通信的过 程,server只管帮助建立连接,在建立间接之后就不再介入了.2维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么解释:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。3A=10,b=20在不使用第三变量 使两值互换解释: a=10,b=8a=a-bb=b+aa=b-a4. override与重载的区别解释:override是把继承于父类的方法给覆盖掉 重载是同一个函数名接受不同类型、个数的参数,完成不同的功能,调用起来方便5抽象类跟接口的区别解释:抽象类可以有非抽象方法,接口中只能有抽象方法。接口可以实现多继承。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;ilist.size()-1;i+) for(int j=1;j0) /比较两个整数的大小 a=list.get(j-1); list.set(j-1),list.get(j); list.set(j,a); for(Integer s:list) System.out.println(Value(); 8 查出总成绩大于100分的学生信息1ZhangSql602liC#503wangJava704zhangJava555liSql606liJava65解释:select * from table where id in (select name,sum(gade) as total from table group by name having total100 )Where在分组之前过滤数据,条件不能包含聚组函数,having在分组之后过滤数据,条件中经常包含聚组函数。带聚合函数的select中只能有聚合函数和分组列。9. 有一个学生表,有学生姓名,语文成绩,数学成绩。请写出查询语文成绩和数学成绩在60分以上的学生信息,并能查且语文成绩和数学成绩之和大于130分的学生信息,请用一句SQL拼写出来。 解释:select * from table where yuwen60 and shuxue60 and yuwen+shuxue13010. &和&的区别?解释:计算p1&p2时,Java先计算p1,若p1为true再计算p2;若p1为false,则不再计算P211. 什么是事务?什么是锁?解释:事务是指一个工作单元,它包含了一组数据操作命令,并且所有的命令作为一个整体一起向系统提交或撤消请求操作,即这组命令要么都执行,要么都不执行。锁是在多用户环境中对数据的访问的限制。SqlServer自动锁定特定记录、字段或文件,防止用户访问,以维护数据安全或防止并发数据操作问题,锁可以保证事务的完整性和并发性。12什么是索引,有什么优点?解释:索引象书的目录类似,索引使数据库程序无需扫描整个表,就可以在其中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。13视图是什么?游标是什么?解释:视图是一种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进行增该查操作,视图通常是一个或多个表的行或列的子集,视图的结果更容易理解(修改视图对基表不影响),获取数据更容易(相比多表查询更方便),限制数据检索(比如需要隐藏某些行或列),维护更方便。游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进行修改、15什么是存储过程?有什么优点?解释:存储过程是一组予编译的SQL语句,它的优点有1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。2.允许更快执 行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行 语句完成,不需要在网络中发送数百行代码。4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。16什么是触发器?解释:触发器是一种特殊类型的存储过程,出发器主要通过事件触发而被执行的,触发器的优点:1.强化约束,触发器能够提供比CHECK约束。2.跟踪变化,触发 器可以跟踪数据库内的操作,从而不允许未经允许许可的更新和变化。3.联级运算,比如某个表上的触发器中包含对另一个表的数据操作,而该操作又导致该表上 的触发器被触发。17销售主表(订单号 ,业务员 , 客户名称 , 合同日期) 销售子表(订单号 ,产品编号 ,销售数量 ,销售金额) 产品表(产品编号 , 产品名称) 请根据以下条件,写出分别sql语句 1.统计合同日期为2006年10月的各业务员的销售数量和销售金额 2.统计合同日期为2006年10月的各产品的销售数量和销售金额 3.计算业务员张三销售的产品为 维生素b的平均价格18什么叫做sql注入,如何防止?请那个举例说明。解释:sql注入,就是利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊代码,获取服务端信息。例如:“select * from users where username=”+v_name+“ and pwd=”+v_pwd+“”;If(obj!=null)验证通过用户名随便输入,密码输入:aaa or 1=1如何防止:PreparedStatement19请写出javascript弹出确认框的函数。解释:confirm(是否删除)20你以为大数据量下的列表显示分页应该如何处理?请叙述一下你的方法解释:type refCursorType is REF CURSOR; -游标类型定义,用于返回数据集procedure sp_Page(p_PageSize int, -每页记录数 p_PageNo int, -当前页码,从 1 开始 p_SqlSelect varchar2, -查询语句,含排序部分 p_OutRecordCount out int,-返回总记录数 p_OutCursor out refCursorType)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; 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) ; -注意对rownum别名的使用,第一次直接用rownum,第二次一定要用别名rn OPEN p_OutCursor FOR v_sql;end sp_Page;/*功能描述: 大数据量分页通用存储过程(重载1,推荐使用)*创 建 人: 夏春涛*创建时间: 2005-07-01*/procedure sp_Page(p_PageSize int, -每页记录数 p_PageNo int, -当前页码,从 1 开始 p_SqlSelect varchar2, -查询语句,含排序部分 p_SqlCount varchar2, -获取记录总数的查询语句 p_OutRecordCount out int,-返回总记录数 p_OutCursor out refCursorType)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_heiRownum - 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 sp_Page(p_PageSize int, -每页记录数 p_PageNo int, -当前页码,从 1 开始 p_SqlSelect varchar2, -查询语句,含排序部分 p_OutCursor out refCursorType)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; 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) ; -注意对rownum别名的使用,第一次直接用rownum,第二次一定要用别名rn OPEN p_OutCursor FOR v_sql;end sp_Page21short s1 = 1; s1 = s1 + 1;有什么错?short s1 = 1; s1 += 1;有什么错?解释:第一句,编译期出错,第二句正确,属于方法重载。22简述spring的AOP和IOC解释:ioc(控制反转)是一种设计模式,由传统的在程序中控制依赖转移到由容器控制,将相互依赖的对象分离,在spring文件中描述依赖,依赖只在使用时建立。Aop(面向切面)是一种编程思想,oop的延伸,将系统中非核心业务提取出来,单独处理。23Tomcat的开启在哪个文件夹,改端口号的是哪个文件?解释:tomcat/bin tomcat/conf server.xml24Jdk配置环境变量解释:JAVA_HOME C:JDK1.6.025Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?解释:1。注册驱动2。取得连接对象3。取得Statement 4。调用sql 5。处理ResultSet 6。关闭资源26在控制台输入ip(5),然后,用.分割开并且每组数据不能超过255,最后,在控制台输出分割后的ip。27编程题: 写一个Singleton 出来。解释:class Textprivate static Text t=new Text();private Text()public static Text getInstance()if(t=null)t=new Text();return t;class Textprivate static Text t=new Text();public static synchronized Text getInstance()if(t=null)t=new Text();return t;28. sleep() 和wait() 有什么区别?解释:sleep不释放锁,可实现同步,wait释放资源,无法同步。29. 启动一个线程是用run()还是start()?解释:30. 在控制台输入ip(5),然后,用.分割开并且每组数据不能超过255,最后,在控制台输出分割后的ip。31. Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用=还是equals()? 它们有何区别?32.try 里有一个return 语句,那么紧跟在这个try 后的finally 里的code会不会被执行,什么时候被执行,在return 前还是后?33. Collection 和Collections 的区别?34. HashMap 和Hashtable 的区别?35. Arraylist 与Vector 区别?解释:ArrayList不能同步,但性能更高,Vector提供了同步机制。36. 集合二分法解释:使用范围:在一个有序的集合里查找指定数字。Int start,end,index;Strat = 0;End = list.size()-1;Index = (start-end)/2;If(list(index)指定数字)End = index;else ifStart = index;elseBreak;37. 写出一个排序算法38. Jndi是什么?解释:为开发人员提供了查找和访问各种命名和目录服务的通用,统一的接口。目前可访问的目录及服务:dns,xnam,novell目录服务,ldap,corba对象服务,文件系统,注册表,rmi,sdml,nis39. Java序列化是怎么实现的?解释:1。将对象实例相关的类元数据输出2。递归的输出类的超类直到不再有超类。3。开始从最顶层的超类输出对象实例的实际数据值。4。递归输出实例数据40. Servlet是否线程安全?41. 如何读取Excel文件的数据,填充到数据库中,实习思路是什么?42. 如果有重复的数据怎么办?以前的数据我想保留不可以删除,如何实 习?43.写一个方法 传参(int age1)方法实现的功能是 查找person 类 如果存在 age大于age1 返回true 否则返回false44.写一个copy 方法 将已知的类 赋给另一个类45.根据某个字段 经过排序 查询前几条数据46.查询性别男的数据,并以ID从小到大排序47.用模糊查询姓王的人员解释:select * from table where name like 王%48.删除生日在一段时间的数据解释:select * from table where to_char(shengri,YYYY-mm-dd) between riqi1 and riqi249.查询全部数据,有相同就返回一条解释:select * from table group by nameId nameidname1a1a2b2b3c3c4b50.在项目中那些地方使用到了XML技术?如何实现的。51 定义函数和存储过程的区别是什么,什么情况下只能用自定义函数,什么情况下只能用存储过程52.subString的用法,lenght的用法,replace的用法53. 写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。54.SqlConnection,SqlCommand,SqldataReader,SqlDataAdapter的用法55 SSQL :请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间)。56 SSQL中更新触发器中如果有更新该表语句是否会造成死循环以及原因。57. 递归法求10!58.struts 2运行的全流程,解释:游浏览器发来的请求会被调度给struts2,这时struts2清理环境上下文(ActionContext CleanUp)做好相应的准备,与此如果Web框架配置了其他的框架过滤器(如siteMesh),那么struts2同时将用户的请求先通过此过滤器,该过滤器完成处理以后,struts2再通过ActionMapper等控制器调度,查找配置文件struts.xml,调度相应URL控制器,准备调相应的action,如果此action配置了相关的拦截器,则依照拦截器的性质分别在action执行前后执行这些拦截器,Action与业务模型相互协作处理完成对应的用户逻辑后,将进一步唤醒视图模块以产生应答用户请求的页面。同时,如果在此应用配置中配置了其他的框架过滤器,那么struts2将控制权转交给此过滤器并完成整个应答。struts2采用的是pull-mvc模式,拉出式是指视图组件根据要求从控制器中将模型信息拉出来作为响应。这与传统的Model2 的方式不同,传统的Model2 没有使用模型来管理信息,而是直接使用视图来访问信息。“分级”是指对视图数据在存放,在struts2中,“值堆栈”用来为视图提供信息。struts2 MVC是一个java轻量级Web应用程序开发框架,它支持多视图,允许用户使用不同的视图技术而不需要改变数据的生成逻辑。它同时也包含了一个强有力的表达式语言来遍历其环境栈,一个小而实用的标签库,59用for ,while,switch 将sdfdshelloWwerorld 输出helloWord ,每次只能输出一个字符解释:1.String a=”helloWord”;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,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, 能不能输出bacClass TextSystem.out.println(“b”);staticSystem.out.println(“a”);public Test()System.out.println(“c”);public String getOut() /要想让程序正常运行,必须加static,可能是因为是本类调用,所以要加,如果用new 关键字了就行了tryreturn “1”;catch()return “2”;finallyreturn “3”;public static void main(String args)System.out.println(getOut(); /在这里new 一个Text 对象就可以了/要想输出bac在那个输出b的方法里,加上static61. 查询出员工的 员工姓名,员工性别,员工上司的姓名,如果此人无上司,显示无 并且按员工姓名排序表名:t_tablet_Idnamesexup01ding男02丁的男0103的的男01解释:declare t_cusor cursor read_only for select ,t1.sex, from t_table t1 left join t_table t2 on t1.t_Id=t2.up order by declare name varchar(20),sex varchar(2), upName varchar(20)open t_cusor fetch next from t_cusor into name,sex,upNamewhile Fetch_status=0 beginif(upname is null)begin set upname=无 select name,sex,upName end fetch next from t_cusor into name,sex,upName endclose t_cusordeallocate t_cusor62说有两个路口,路口站着两个人,说谎人站在说谎国路口,说实话人站在实话国路口,说谎人只说谎话,实话人只说实话,你如何问这两个人,一个同样的问题,知道那个人站的路口是说谎国,知道那个人站的路口是实话国。答:说一个大家都知道的事务,问他们你自己的性别是男的是女的,说话的人肯定假话,你要是男的他会说是女的,说实话的人会说你是男的,你自己知道答案,根据他们说的你就知道谁是说谎的人了,谁不是说慌的人 。63有一个表单(name=”form1”)一个文本框(name=”text1”)用不同的方式取得,尽量用不同的方法实现。64实现一个将鼠标放在单元格上,显示背景色为#00ffff,鼠标离开显示#000000,补充函数。Function a()Function b()65定义一个坐标为(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自已写一个表格,设置为70%透明,1像素宽度,单元格左测为蓝色,右测为红色,上下为绿色,鼠标在与不在单元格上,显示不同的颜色。解释:border:1pxfilter:alpha(opacity=70);67String str=abcde; 反序输出此字符串 不准用reverse函数解释:for(int i=str.length();i0;i-)System.out.println(str.substr(I-1,i);68List list1=new ArrayList(); list1.add(1); list1.add(2); l ist1.add(3); list1.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.contains(list2.get(j)list3.add(list2.get(j); 69一张表 字段 Id int sex int mobile varchar 对此表进行增删改查操作70spring以及hibernate的存在意义和查询模式71多表连接查询(三个表)解释:72查询表中有重复的某列解释:73char型变量中能不能存贮一个中文汉字?为什么?答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的74抽象类与接口的区别?答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。75 HashMap和Hashtable的区别?答:都属于Map接口的类,实现了将惟一键映射到特定的值上。HashMap 类没有分类或者排序。它允许一个 null 键和多个 null 值。Hashtable 类似于 HashMap,但是不允许 null 键和 null 值。它也比 HashMap 慢,因为它是同步的。76String s = new String(xyz);创建了几个String Object?答:两个对象,一个是“xyx”,一个是指向“xyx”的引用对象s。77数组有没有length()这个方法? String有没有length()这个方法?答:数组没有length()这个方法,有length的属性。String有有length()这个方法。78Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的 一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方 法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。79接口是否可继承接口? 抽象类是否可实现接口? 抽象类是否可继承实体类?答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。80构造器Constructor是否可被override?答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。81是否可以继承String类?答:String类是final类故不可以继承。82当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?答:是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。83JSP的内置对象及方法。答:request request表示HttpServletRequest对象。它包含了有关浏览器请求的信息,并且提供了几个用于获取cookie, header, 和session数据的有用的方法。response response表示HttpServletResponse对象,并提供了几个用于设置送回 浏览器的响应的方法(如cookies,头信息等)out out 对象是javax.jsp.JspWriter的一个实例,并提供了几个方法使你能用于向浏览器回送输出结果。pageContext pageContext表示一个jav

温馨提示

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

评论

0/150

提交评论