JAVA应届生面试
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
库
题量:20道题,初级8道,中级12道,高级2道
范围:Java语言基础、数据结构、线程、JDBC、JSP/Servlet、EJB、Socket 10、文件10性
Rmi、WebService、Swing)
【题号】1
【级别】初级
【验证】正确
【题目】
class A{
void f(){System.out.println(”A.f”);}
}
class B extnds A {
void f (int i){System.out.println(”B.f”);}
}
class C extends B {
void f(){System.out.println(”C.f”);}
}
class D
{ public static void main(String arg[])
{ Aa=new A();
a.f():
Bb=new B();
b.f();
Cc=newc();
c.f();
}
} 。
JAVA D 运行结果是什么
【参考答案】
A.f
A.f
C.f
【题号】2
【级别】初级
【验证】正确
【题目】说出两种方法遍历一个HashMap,获取所有的Key和Value?
【参考答案】
1种方法:取出Key,根据每个Key逐个取出Value。
2种方法:取出Entry进行遍历获取键值对,取出其中的SetKey和Nalue
【题号】3
【级别】初级
【验证】正确
【题目】
请简述Ssrvlet的生命周期,以及各阶段Servlet容器所做的事。
【参考答案】
Sevlet引擎首先加载servlet类并调用其init()方法。完成init() 方法后,SERVLET处
于准备状态,可以响应请求,要从服务器中删除时,引擎调用servlet的d estroy()方法以
释放资源,d estroy()方法完成后,服务器回收内存。
【评分标准】
至少答出init、准备、destroy三个状态。
【题号】4
【级别】初级
【验证】正确
【题目】
请至少答出5个Jsp中的内置对象及其用途?
【参考答案】
request:封装来自用户的请求。
response:封装由JSP产生的响应,并被发送回客房端以响应请求
session:
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示为发出请求的客户端建立的会话。
application:表示JSP正在招待的上下文。
out:表示输出流。
config:表示servlet的配置。
page:页面对象,表示JSP本身,同this。
exception:指的是运行时的异常,只在错误页面(就是页面指令有 isErrorPage=true属性的页面)中才有。 pageContext:页面级的上下文对象。
【题号】5
【级别】初级
【验证】正确
【题目】中创建一个线程有哪两种方式:
【参考答案】
从类Thread继承和实Runnable现接口
【题号】6
【级别】初级
【验证】正确
【题目】说一Java下语言访问限定符在类、内部类、方法、属性中使用和作用域
例如:public用于:类、内部类、方法、属性、作用域:全局
【参考答案】
Private 用于:内部类、方法、属性,作用域 :类内部
Protected 用于:内部类、方法、属性,作用域 :类内部、子类、同一个包类
缺省 用于;类、内部类、方法、属性,作用域:类内部、同一个包的类
【题号】7
【级别】初级
【验证】正确
【题目】
名词解释
SOAP,UDDI,WSDL。
【参考答案】
SOAP:Simple Object Access Prtocol,简单对象访问协议,基于XML]语法定义
的对象远程调用协议,主要目标是提供类似PC的接口.
UDDI:Universal Description Disvery Integration,统一描述发现与集成,用 ;
于描述WebService组件的描述、发现、集成规范
WSDL:Web Service Description Language,基于XML语法定义的用于描述
WebService接口的描述语言。
【题号】8
【级别】初级
【验证】正确
【题目】在普通应用程序中用JDBC做一个数据库事务,程序片断如下请填空:
String driver=“com.informix.jdbc.ifxDriver”;
String url=
“jdbc:informix-sqli://11.6.6.11:9002/test:INFORMIXSERVER=ifx”;
String user=“informix”;
String password=“informic”;
String sql=“update TESTDB set status=‘2’ ”
1
Connection conn= 2
Statement stment=conn.createsStatement();
Try
{
3 ;
stment .executeUpdate(sql);
4
5
6
}
catch(SQLException e)
{
try
{
7
8
9
}
catch(SQLException el)
{ //do nothing}
}
[参考答案]
1、Clall.forName(driver);
2、DriverManager.getConnection();
3、conn.setAutoCommit(false)
4、conn.commit()
5、stment.close()
6、conn.close();
7、conn.rollback();
8、stment.close()
9、conn.close()
这个题
建议
关于小区增设电动车充电建议给教师的建议PDF智慧城市建议书pdf给教师的36条建议下载税则修订调整建议表下载
不要考这么多close(),因为实际应用的时候可能不是每次都要关闭的。至少CONNECTION对象是这样.Close()在一个地方考就可以了.
建议考下面的语句:
事务执行完毕之后要养成好习惯,把autoCommit设为true,避免影响这个 CONNECTION的后续使用。
【题号】9
【级别】初级
【验证】正确
【题目】
class Valhold{
public int i=10
}
public class Obparm{
public static void main(String argv{}){
Obparm o =new 0bparm();
o.amethod();
}
public void amethod (){
INT I=99
ValHold v =new ValHold();
v.i=30;
Another(v.i);
System.out.print(v.i);
}//End of amethod
public void another(ValHold v.int i){
i=0
v.i=20;
ValHold vh =new ValHold();
V = vh;
System.out.print(v.i);
System.out.print(v.i);
}//End of another;
}
运行结果是?
【参考答案】10020
【题号】10
【级别】中级
【验证】正确
【题目】下面是一段读取d盘下test.txt文件内容,并打印其内容指出下面
代码中的错误并改正。
import jav aio.*;
public class FileTest
{
public staticvoid main (String[]args)
{
File f=new File(“d:/test.txt”)
Byte[]b=new byte[1024;
Int point=0
While((poin=fi.read(b))!=-1)
{
for(inti=0;i《point;i++)
{
System.out.pnint(b[i]);
}
}
}
【参考答案】
1、文件输入流使用错误,不应该使用File,应该使用Filelnputstream。
2、文件名格式错误,应该是d://test.txt。
3、没有捕获I0异常。
4、输入流没有关闭。
修改后的代码为:
import java.io.*;
public class FileTest
{
public tatic void main (String{} args){
FileinputStream fi =null;
try{
fi =new FileinputStream(”d://test.txt“);
. byte[] b=new byte[1024];
int point = 0
while((point=fi.read(b))!=-1){
for(int i=0;i〈point:i++〉{
System.out.print(b[i]);
}
}
fi.close();
}catch(IOException e){}
finally{
try{
if (fi != null){
fi.close();
}
}catch(IOException ioe){}
}
}
这里不太好吧,文件后缀名为txt,但是直接打印字节不太好。建议把est.txt换成tet.dat。【题号】11
【级别】中级
【验证】正确
【题目】写一段代码建立一个直角在左下角的等腰直角三角形的二维数组,腰的长度是10,数组元素是String,需要赋初始值为(x,y),其中x,y为坐标的位置,从左下角为顶点(0,0),依次向上向右增加1。程序片断如下,请填空:
String[][]trg = 1
for(int i= 2 ; i)=0;i-)
{
trg[i]= 3 ;
for(int j=0; j〈 4 ; j++)
{
trg[i][j]= 5 ;
}
}
for(int i=9;i)0;i--){
for(int j=0;j《trg[i],length;j++){
System.out.print(trg[i][j]);
}
【参考答案】
1、new String[10][]
3、new STRING[10-I]
4、trg[i].length
5、“(”+|i+”.”+j+”) ”
【题号】12
【级别】中级
【验证】正确
【题目】描述一下LinkedList.MrrayList,Vector的区别,例如,
数据存储,特性,性能等。
【参考答案】
LinkedList 使用双链表来实现,插入性能好,方法不是同步的,查找比
ArrayList慢,适用于数据频繁改变的场合.
Vector实现方式同ArrayList,方法是同步的
【题号】13
【级别】中级
【验证】正确
【题目】写一段代码应用BorderLayout管理器,在东南西北中四个方位各加入
一个按钮。
【参考答案】
setLayout(new Borderlayout();
add(new Button(“东”),BorderLayout.EAST ;
add(new Button(“西”),BorderLayout.WEST ;
add(new Button(“中”),BorderLayout. CENTER;
add(new Button(“北”),BorderLayout.NORTH ;
add(new Button(“南”),BorderLayout. SOUTH;
【题号】14
【级别】中级
【验证】正确
【题目】考虑用自己的类实现StringBuffer的字符串相加功能,要求越接近StringBufferr的性能越好,请说出其中数据存储和扩充长度的思路。
【参考答案】
思路1:使用char[]来保存字符串,扩充长度的时候使用System.arraycopy()把老的数组中的数据自制到新的数组中。
思路2:使用List/Vector来保存字符串,自动扩充长充。
【题号】15
【级别】中级
【验证】正确
【题目】填空:实现一个Socket服务端,(10。76。149。158:1800)接收客户端发送的消息并显示。
MyServertest.java
import java.net*;
import java .io*
public class MyServerTest
{
public static void main(String[] args) throws IOException{
ServerSocket myserversocket=null
try{
myserversocket= 1
}catch(IOException e){
System.err.println(”Count not listen on port.”);
System.exit(1);
}
Soxket myclientSocket = null
try {
myclientSocket = 2
}catch(I0Execption e){
System.err.println(”Accept failed”);
System.exit(1)
}
DataInputStream myinstream =new DataInputStream(new
BufferedInputStream( 3 ))
; String inputline = myinstream.readling()EAST)
System.out.println(inputline)
4
myclientSocket.close()
myserversocket.close();
【评分标准:每题10分,多选题和多个填空题全对得满分,如果部分答对:填空题按照填对的个数得部分分数,多选题中的答案如果其中有选错的选项别不得分,选对了但是不全面得3分,总分为50分合格,80分优秀】。
一、填空题:
1、Java的基本数据类型:
【答案】int,long,char,byte,short,boolean,float
2、有一个类定议如下:
package com.huawei.test;
public clasxs Definition
{
proctected void test1()
{
System.out.println(”This is Definition.test1()”)
} void test2() {
System.out.println(“ThisisDefinitiontest2()”
}
}
请分别选择可以访问test1()和test2()两个方法的范围:
a.Definition类内部可以访问
b.com.huawei.test包中所有其它的类可以访问
c.该应用程序中所有的类可以访问
d.继承Definition的子类可以访问
【答案】test1:a b d test2:a b
二、单选题:
1、关于package和 import关键字下面说法错误的是:
a.如果一个类不指这package,就会被归类到默认的 package
b.package关键字必须放在 import关键字之前
c.import关键字必须放在 package关键字之前
d.虚拟机已经缺省引入了java.lang.*包,所以编写程序的时候不需要引主该包
[答案]C
2、关于java的集合下面说法错误的是:
a.Treeset、hashset set
b.为了达到最优算法放入到Hashset和hashmap的对象都要求定义合理的 hashcode值
c.从linkedlis中获取迭代器iterator,操作该iterator的同时可以修改原 来的linkedlist
d.Map用于存放键值对,HashMap使用哈希算法,TreeMap能够对存放的键进行排序。
[答案]C
3、关于数据库连接池下而详法错误的是:
1)数据库连接池可以提市并发访问数据库的性能
2)客户程序使用连接池访问数据库时,必须从连接池获取连接
3)客户程序从连接池获取的连接使用完之后必须关闭物理连接
4)连接池需要对可用的空闲连接进行维护
[答案]3
4、关于StringBuffer下面说法错误的是:
a.StringBuffer是从BufferedWriter继承,用作字符串输出
b.使用StringBuffer可以提高多个字符串相加的效率
c.多个字符串相加使用StringBuffer不会产生较少的内存碎片
d.StringBuffer和String的区别在于StringBuffer是可以修改的,string是只读的
[答案]a
三、多选题
1、关于类路径下面说法正确的是:
1)运行Java程序时如果用到了其它目录中的类必须指定类路径,或者在环境变量中设置类路径
2)class文件的类路径必须指定到文件名
3)class文件的类路径只需要指定到包的要目录
4)jar文件包的类路径只需要指定到该文件的目录
[答案]1 3
2、关于线程下面说法正确的是:
a.Java中的线程优先级分为10级
b.通过调用线程的run()方法启动一个线程
c.通过调用线程的start()方法启动一个线程
d.通过调用线程的stop()方法可以安全的停止一个线程
【答案】a c
3、下面哪种类型的程序是运行在浏览器上
a.JSP
b.JavaScript
c.Servlet
d.Applet
【答案】b d
四、应用题
1、下面程序建立一个服务器通过监听8080端口向客户端输出“Welcome!”字符串,请补充缺少的程序片断:
public class WelcomeServer
{
public static void main(String[]a)throws IOException
{
1
system.out.println(”WelcomServer started!”)
while(true)
{
Socket client = 2
system.out.println(”A client come!”)
try
{
printWriter = new printWriter(
new Bufferedwriter( 3 ( 4 )))
writer.println(”Welcome!)
}
catch(IOException ioe)
{
system..out.println(”something error!”)
}
finally
{
try
{