Int point = 0
While ((point = fi.read(b))!= -1)
{
for(int i=0;i〈point;i++)
{
System.out.print(b[i];
}
}
}
12、请实现一个双向链表类。
姓名: 开始时间: 面试人:
1、internet是基于什么协议的?哪个应用层的协议使用的最广泛?
[参考答案]internet是基于 tcp/ip协议的
http协议使用最广泛
[评分标准]
2、列举几个JDBCA中常用的类或接口
[参考答案]
1、DriverManager加载驱动并连接到数据库
2、Connection数据库连接对象
3、Statement用来建立和执行语句
4、ResultSet sql语句执行的结果
5、DatabaseMeta数据库和结果集的元信息
6、preparedStatement预编译的Statement
7、CallableStatement用来执行存储过程的Statement
8、SQLException所有jdbc类或接口抛出的异常
[评分标准]
至少答出前面4个
3、谈一谈Java中运行时间异常(RuntimeException及其子类)类和一般异常类的区别和联系?
[参考答案]
1)运行时间异常类和一般异常类的祖先是Exception;
2)运行时间异常类通常用于发现编程错误,而一般的异常类用于发现程序执行过程中;出现的一些异常情况;
3)运行时间异常类不用在throws子句中声明,而一般的异常类必须在throws子句中声明;
4)二者都可以使用catch捕获;
[评分标准]
4、说出下面程序的运行结果
class A {
voia f(){System.out.println(”A.f”);}
}
class C extends B{
void f(){System.out.printn(”c.f”)
}
class D
{ public static void main(String arg[])
{ Aa = new A()
a.f();
Bb = new B()
b.f()
Cc = new C()
c.f();
}
}
JAVA D运行结果是什么
[参考答案]
A.f
A.f
C.f
[评分标准]全部答对得10分
5、请说一说下面这个程序在不同平台下的表现,并说明你的理由
class printThread extends Thread
{
private String msg;
public printThread(String msg){this-〉msg = msg;}
public void run()
{
while (true)System.out.println(msg);
}
}
public class MainThread
{
printThread ptA = new printThread (”This is printThread A!”)
pringThread ptB = new printThread (”This is printThread B!”)
ptA.start();
ptB.start();
}
}
[参考答案]
1)如果是在Windows平台上,两个线程会交错地在终端上打印出各自的信息,原因是线程是分时调度的;
2)如果是在Solaris上,且线程实现方式为“绿色线程”(green thread),会发现只有线程A的信息会在打印在终端上,原因是这种方式下的线程调度导致线程A独占了整个系统;而如果线程实现方式为“本地线程” (native thread),则和Windows平台下的表现一样。
6、请举出JDK中运用了哪些设计模式?至少举出3种
[参考答案]
Factory Method : SocketFactor.createSocket()
SSLSocketFactory.createSocket(),DataSource.getConnection()
Collection.iterator()等
Iterator:集合类的Iterator接口
Adaptou:XMLReaderAdapter将SAX2 XMLReader接口适配成SAXI Parser接口,ParserAdaptor则反过来
Strategy:javax.swing.text.FlowView类的 FlowStrategy成员变量
Singleton:FlowStrategy 一般是所有FlowView实例共享的一个单件
Observer:javax.servlet. ServletContext和 javax.servlet.
SerletContextAttributelistener 就是 Observer模式。
等等
[评分标准]
答出3个给2分,多答一个给0.5分,满分为3分。
7、简述有哪几种状态,这三种状态分别在什么情况下从哪种状态转换到哪种状态。
[参考答案]
三种状态:不存在、池化、就绪
转换:
不存在→池化:
条件:容器需要创建实体Bean时
不存在←池化:
条件:容器要减小池的容量
池化→就绪
条件:客户端要创建一些新的数据库数据或需要同步底层数据库中的数据
池化←就绪
条件:客户端在Home上调用remove()方法或容器决定使用当前的实例为另外一个不同的用户服务或容器需要释放当前实例所占的资源
[评分标准]每点20%分
8、说出下面程序的运行结果
Son.java
Public clas Son extends Father{
Public static final int aaa = 555
Public Son(){
Super();
}
public int getAAA(){
return 666;
}
public static void main(String[]args){
Son son = new Son()
System.oukt.println(son.aaa);
System.out.println(son.gtAAA());
System.ut.println(((Father)son).aaa);
System.out.println(((Father)son).getAAA());
}
}
class Father{
public static final int aaa = 111
public Father(){
System.out.println(aaa);
System.out.println(getAAA());
}
public int getAAA(){
return 222
}
[参考答案]
111
666
555
666
111
666
[评分标准]
9、请列出Socket类的5个主要方法,不用写出参数,一组get/set方法算一个。
[参考答案]
bind,connect,setKeepAlive,setSendBufferSize,etSoTimeout,setTcpNoDelav,getInputStream,getOutputStream,getPort ,getRemoteSocketAddress,getReuseAddress,getChannel
[评分标准]答对5个的才可得分
10、请说出三种常用过滤输入流及其简单描述.
[参考答案]
1、BufferedinputStream:用来实现流数据得缓冲,提高访问速度。
2、CheckedinputStream:校验流,