java 笔试题

来源:互联网 发布:出题软件 编辑:程序博客网 时间:2024/06/07 03:51

笔试题

一、选择题(每题2分,共16分)

1、以下程序运行结果是(A
public class Test extends Father{
private String name=”test”;
public static void main(String[] args){
Test test = new Test();
System.out.println(test.getName());
}
}
class Father{
private String name=”father”;
public String getName() {
return name;
}
}
A) father
B) test
C) 编译出错
D) 运行出错,无输出

2、根据下面的代码,
String s = null;
会抛出NullPointerException异常的有(A,C)。[两项]
A) if( (s!=null) & (s.length()>0) )
B) if( (s!=null) & & (s.length()>0) )
C) if( (s==null) | (s.length()==0) )
D) if( (s==null) || (s.length()==0) )

3、使用JDBC连接数据库的顺序是(B,A,D,C,E)(多选)
A) 加载驱动
B) 导入驱动包
C) 发送并处理SQL语句
D) 建立于数据库的连接
E 关闭连接

4、下列变量声明在(  )范围内有效。(C)。

<%! Date dateTime;

int countNum;

%>

A)从定义开始处有效,客户之间不共享

B)在整个页面内有效,客户之间不共享

C)在整个页面内有效,被多个客户共享

D)从定义开始处有效,被多个客户共享

5、能在浏览器的地址栏中看到提交数据的表单提交方式是( B )

A)submit      B)get

C)post         D)out

6、可以利用JSP动态改变客户端的响应,使用的语法是(A

A)response.setHeader()    B)response.outHeader()

C)response.writeHeader()  D)response.handlerHeader()

7、使用<jsp:setProperty>动作标记可以在JSP页面中设置Bean的属性,但必须保证Bean有对应的什么方法。(B

A)SetXxx方法            B)setXxx方法

C)getXxx方法            D)GetXxx方法

8、out对象是一个输出流,其输出不换行的方法是(A

A)out.print(  )      B)out.newLine(  )

C)out.println(  )     D)out.write(  )

二、问答题

1、简述superstaticfinal的功能和作用

如果子类中发生了方法重写,那么子类对象能调用父类中重写前的方法,Java语言允许在子类中使用关键字super来引用父类的方法。

Java类中声明属性和方法时,可使用关键字static做为修饰符。static标记的变量或方法由整个类共享,如访问控制权限允许,可不必创建该类对象而直接用类名加.调用。

Java中声明类、属性和方法时,可使用关键字final来修饰。final所标记的成分具有终态的特征,其具体规定如下:

l final标记的类不能被继承。

l final标记的方法不能被子类重写。

l final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次。

2谈谈你对mvc的理解

 MVCModelViewControler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。     MVC中的模型、视图、控制器它们分别担负着不同的任务。     视图视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。     模型模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性     控制器当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。             然后根据处理的结果调用相应的视图来显示处理的结果。     MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。

3、 JAVA SERVLET APIforward() redirect()的区别?

 答:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用

4JSP中如何设置COOKIE?

COOKIE是作为HTTP HEADER的一部分被发送的,如下方法即可设置:

<%

Cookie mycookie = new Cookie("aName","aValue");

response.addCookie(mycookie);

%>

5、ServletJsp的区别?

答:Servlet是直接执行的文件Jsp是要被通过编译形成Servlet后才执行。

6、什么是Web Service?列举你知道优点和缺点。

Web Service就是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。

Web Service所使用的是Internet上统一、开放的标准,如HTTPXMLSOAP(简单对象访问协议)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。

优势:

  (1).跨平台。

  (2).SOAP协议是基于XMLHTTP这些业界的标准的,得到了所有的重要公司的支持。

  (3).由于使用了SOAP,数据是以ASCII文本的方式而非二进制传输,调试很方便;并且由于这样,它的数据容易通过防火墙,不需要防火墙为了程序而单独开一个“漏洞”。

  (4).此外,WebService实现的技术难度要比CORBADCOM小得多。

  (5).要实现B2B集成,EDI比较完善与比较复杂;而用WebService则可以低成本的实现,小公司也可以用上。

  (6).C/S的程序中,WebService可以实现网页无整体刷新的与服务器打交道并取数。

  缺点:

  (1).WebService使用了XML对数据封装,会造成大量的数据要在网络中传输。

  (2).WebService规范没有规定任何与实现相关的细节,包括对象模型、编程语言,这一点,它不如CORBA

7、 servlet生命周期

Servlet 的生命周期始于将它装入 Web 服务器的内存时,并在终止或重新装入 Servlet 时结束。包括加载和实例化、初始化、处理请求以及服务结束。这个生存期由 javax.servlet.Servlet 接口的 init,  service 和 destroy 方法表达。

8、Get请求和Post请求区别

a、Post是通过Http中的Post机制将表单中的数据提交道Action所制定的程序Get方法是通过Url请求来提交表单数据的。

b.Get适用于传输数据量小于1K数据,执行效率高。Post传输数据量较大,但也有限量。

三、智力题

1现有2个空水壶,容积分别为5升和6升。问题是如何只用这2个水壶从池塘里取得3升的水,  池塘里面有无穷多的水

①、用6升水壶往5升水壶中灌水,6升水壶剩1升水;

②、5升水壶中的水倒掉,灌入6升水壶剩的1升水。将6升水壶灌水倒入5升水壶,6升水壶中剩2升水;

③、5升水壶中的水倒掉,灌入6升水壶剩的2升水。将6升水壶灌水倒入5升水壶,6升水壶中即剩3升水

2、有两根粗细不均匀的香,燃烧时快时慢,但每根香烧完的时间确定是一小时,你能用什么方法来确定45分钟的时间?
答案:点燃其中一根,并把另一根两头点燃;第二根烧完恰好过去30分钟,第一根剩下部分应该支持30分钟的燃烧。然后把剩下的部分两头点燃,15分钟即可燃尽。

3请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。

面对这样的怪题,有些应聘者绞尽脑汁也无法分成;而有些应聘者却感到
此题实际很简单,把切成的8份蛋糕先拿出7份分给7人,剩下的1份连蛋糕盒一起分
给第8个人。

四、编程题

1、表:table1(FId,Fclass,Fscore),用最高效最简单的SQL列出各班成绩最高的列表,显示班级,成绩两个字段。

select fclass,max(fscore) from table1 group by fclass,fid

2、有一个表table1有两个字段FID,Fno,字都非空,写一个SQL语句列出该表中一个FID对应多个不同的Fno的纪录。
类如: 
101a1001 
101a1001 
102a1002 
102a1003 
103a1004 
104a1005 
104a1006 
105a1007 
105a1007 
105a1007 
结果: 
102a1002 
102a1003 
104a1005 
104a1006

select t2.* from table1 t1, table1 t2 where t1.fid = t2.fid and t1.fno <> t2.fno;

3、有员工表empinfo 

Fempno varchar2(10) not null pk, 
Fempname varchar2(20) not null, 
Fage number not null, 
Fsalary number not null 
); 
假如数据量很大约1000万条;写一个你认为最高效的SQL,用一个SQL计算以下四种人: 
fsalary>9999 and fage > 35 
fsalary>9999 and fage < 35 
fsalary <9999 and fage > 35 
fsalary <9999 and fage < 35 
每种员工的数量; 
select sum(case when fsalary > 9999 and fage > 35
then 1
else 0end) as "fsalary>9999_fage>35",
sum(case when fsalary > 9999 and fage < 35
then 1
else 0
end) as "fsalary>9999_fage<35",
sum(case when fsalary < 9999 and fage > 35
then 1
else 0
end) as "fsalary<9999_fage>35",
sum(case when fsalary < 9999 and fage < 35
then 1
else 0
end) as "fsalary<9999_fage<35"
from empinfo

4、请编写代码,能够体现多态

5625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。除了625,还有其它的3位数有这个特征吗?
请编写程序,寻找所有这样的3位数:它的平方的末3位是这个数字本身。
输出结果中,从小到大,每个找到的数字占一行。比如那个625就输出为:
625

代码如下:
public class test7 {

public static void main(String[] args){
String str1,str2;
for(int i=100;i<1000;i++){
str1=”"+i*i;
str2=”"+i;
if(str1.contains(str2))
System.out.println(i);
}
}
或者:
public class test7 {
public static void main(String as[])
{
int v,m,i,n,q;
for( i=100;i<1000;i++)//取所有的三位数
{
v=10;
q=i*i; //开平方
for(int k=0;k<3;k++)
{
m=q%v; //求余取当前数值的尾巴
n=i%v;
v=v*10;
if(m==n) //将尾巴三位数分别拿出来比较
{
if(k==2) //都后三位都相等的话就输出,并退出当前循环
{
System.out.println(i);
break;
}
continue;
}
else
{
break;
}

}
}
}
}
或者:
public static void main(String[] args) {
int i,mulRs,last3;
for(i=100;i<=999;i++){
mulRs=(int)Math.pow(i,2);
last3=mulRs%1000;
if(last3==i) System.out.println(i);
}
}

6、有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数, 
依次类推,推到第一人(10岁),再往回推。

附加题:

请描述你做过的、印象最深的并且参与最多的项目,可画流程图。

原创粉丝点击