java、sql、oracle面试题汇总

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.(口述题)请简述迅雷、BT等p2p下载软件的实现原理。如何资源分布。解释:A想来B家做客,但是遭到了B的管家NAT B的拒绝,理由是:我从来没有听我家B提过你的名字,这时A找到了A,B都认识的朋友server,要求server 给B报一个信,让B去跟管家说A是我的朋友,于是,B跟管家NAT B说,A是我认识的朋友,这样A的访问请求就不会再被管家NAT B所拒绝了.简而言之,UDP打洞就是一个通过server保存下来的地址使得彼此之间能够直接通信的过程,server只管帮助建立连接,在建立间接之后就不再介入了.

2.维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么解释:尽可能用约束(包括CHECK、主键、唯一键、外键、非空字段)实现,这种方式的效率最好;其次用触发器,这种方式可以保证无论何种业务系统访问数据库都能维持数据库的完整性、一致性;最后再考虑用自写业务逻辑实现,但这种方式效率最低、编程最复杂,当为下下之策。

3.A=10,b=20在不使用第三变量使两值互换

解释: a=10,b=8

a=a-b

b=b+a

a=b-a

4. override与重载的区别

解释:override是把继承于父类的方法给覆盖掉

重载是同一个函数名接受不同类型、个数的参数,完成不同的功能,调用起来方便

5.抽象类跟接口的区别

解释:抽象类可以有非抽象方法,接口中只能有抽象方法。接口可以实现多继承。

6.try {}里有一个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;i

for(int j=1;j

Integer a;

if((list.get(j-1))xpareTo(list.get(j))>0) { //比较两个整数的大小

a=list.get(j-1);

list.set((j-1),list.get(j));

list.set(j,a);

}

}

}

for(Integer s:list) {

System.out.println(s.intValue());

}

12.什么是索引,有什么优点?

解释:索引象书的目录类似,索引使数据库程序无需扫描整个表,就可以在其

中找到所需要的数据,索引包含了一个表中包含值的列表,其中包含了各个值的行所存储的位置,索引可以是单个或一组列,索引提供的表中数据的逻辑位置,合理划分索引能够大大提高数据库性能。

一三.视图是什么?游标是什么?

解释:视图是一种虚拟表,虚拟表具有和物理表相同的功能,可以对虚拟表进行增该查操作,视图通常是一个或多个表的行或列的子集,视图的结果更容易理解(修改视图对基表不影响),获取数据更容易(相比多表查询更方便),限制数据检索(比如需要隐藏某些行或列),维护更方便。

游标对查询出来的结果集作为一个单元来有效的处理,游标可以定位在结果集的特定行、从结果集的当前位置检索一行或多行、可以对结果集中当前位置进行修改、

一五.什么是存储过程?有什么优点?

解释:存储过程是一组予编译的SQL语句,它的优点有1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。2.允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。3.减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

16.什么是触发器?

解释:触发器是一种特殊类型的存储过程,出发器主要通过事件触发而被执行的,触发器的优点:1.强化约束,触发器能够提供比CHECK约束。2.跟踪变化,触发器可以跟踪数据库内的操作,从而不允许未经允许许可的更新和变化。3.联级运算,比如某个表上的触发器中包含对另一个表的数据操作,而该操作又导致该表上的触发器被触发。

17.销售主表(订单号,业务员,客户名称,合同日期)

销售子表(订单号,产品编号,销售数量,销售金额)

产品表(产品编号,产品名称)

请根据以下条件,写出分别sql语句

1.统计合同日期为2006年10月的各业务员的销售数量和销售金额

2.统计合同日期为2006年10月的各产品的销售数量和销售金额

3.计算业务员‘张三’销售的产品为’维生素b‘的平均价格

一八.什么叫做sql注入,如何防止?请那个举例说明。

解释:sql注入,就是利用程序员对用户输入数据的合法性检测不严或不检测的特点,故意从客户端提交特殊代码,获取服务端信息。

例如:“select * from users where username=‘”+v_name+“’ and pwd=‘”+v_pwd+“’”;

If(obj!=null){

验证通过

}

用户名随便输入,密码输入:"aaa' or '1'='1"

如何防止:PreparedStatement

相关文档
最新文档