有感:应聘Java笔试时可能出现问题及其答案huij前段时间因为要参加一个笔试,在准备期间在网上找到了两条关于笔试题目的文章,其中一篇为有感:应聘Java笔试时可能出现问题,还有一篇忘了名字,读后深受启发。在寻找这些答案的过程中,我将相关答案记录下来,就形成了以下这些东西。需要说明的是以下答案肯定有很多不完整甚至错误的地方,需要各位来更正与完善它,千万不要扔我的鸡蛋啊。希望本文能够给即将奔赴笔试考场的同仁些许帮助,更希望更多的人加入到收集整理笔试题与完善答案的这些工作中来,为大家更好的获得工作机会做一点贡献。在此感谢前面两文的作者的对笔试题目的收集与整理。如有任何意见与建议请通过QQ:6045306,Mail:huijunzi@21cn.com与我联系。Java基础方面:1、作用域public,private,protected,以及不写时的区别答:区别如下:作用域当前类同一package子孙类其他packagepublic√√√√protected√√√×friendly√√××private√×××不写时默认为friendly2、ArrayList和Vector的区别,HashMap和Hashtable的区别答:就ArrayList与Vector主要从二方面来说.一.同步性:Vector是线程安全的,也就是说是同步的,而ArrayList是线程序不安全的,不是同步的二.数据增长:当需要增长时,Vector默认增长为原来一培,而ArrayList却是原来的一半就HashMap与HashTable主要从三方面来说。一.历史原因:Hashtable是基于陈旧的Dictionary类的,HashMap是Java1.2引进的Map接口的一个实现二.同步性:Hashtable是线程安全的,也就是说是同步的,而HashMap是线程序不安全的,不是同步的三.值:只有HashMap可以让你将空值作为一个表的条目的key或value3、char型变量中能不能存贮一个中文汉字?为什么?答:是能够定义成为一个中文的,因为java中以unicode编码,一个char占16个字节,所以放一个中文是没问题的4、多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口同步的实现方面有两种,分别是synchronized,wait与notify5、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?答:父类:packagetest;publicclassFatherClass{publicFatherClass(){System.out.println(FatherClassCreate);}}子类:packagetest;importtest.FatherClass;publicclassChildClassextendsFatherClass{publicChildClass(){System.out.println(ChildClassCreate);}publicstaticvoidmain(String[]args){FatherClassfc=newFatherClass();ChildClasscc=newChildClass();}}输出结果:C:\javatest.ChildClassFatherClassCreateFatherClassCreateChildClassCreate6、内部类的实现方式?答:示例代码如下:packagetest;publicclassOuterClass{privateclassInterClass{publicInterClass(){System.out.println(InterClassCreate);}}publicOuterClass(){InterClassic=newInterClass();System.out.println(OuterClassCreate);}publicstaticvoidmain(String[]args){OuterClassoc=newOuterClass();}}输出结果:C:\javatest/OuterClassInterClassCreateOuterClassCreate再一个例题:publicclassOuterClass{privatedoubled1=1.0;//insertcodehere}Youneedtoinsertaninnerclassdeclarationatline3.Whichtwoinnerclassdeclarationsarevalid?(Choosetwo.)A.classInnerOne{publicstaticdoublemethoda(){returnd1;}}B.publicclassInnerOne{staticdoublemethoda(){returnd1;}}C.privateclassInnerOne{doublemethoda(){returnd1;}}D.staticclassInnerOne{protecteddoublemethoda(){returnd1;}}E.abstractclassInnerOne{publicabstractdoublemethoda();}说明如下:一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。故A、B错二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;returnd1出错。故D错三.非静态内部类的非静态成员可以访问外部类的非静态变量。故C正确四.答案为C、E7、垃圾回收机制,如何优化程序?希望大家补上,谢谢8、float型floatf=3.4是否正确?答:不正确。精度不准确,应该用强制类型转换,如下所示:floatf=(float)3.49、介绍JAVA中的CollectionFrameWork(包括如何写自己的数据结构)?答:CollectionFrameWork如下:Collection├List│├LinkedList│├ArrayList│└Vector│└Stack└SetMap├Hashtable├HashMap└WeakHashMapCollection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)Map提供key到value的映射10、Java中异常处理机制,事件机制?11、JAVA中的多形与继承?希望大家补上,谢谢12、抽象类与接口?答:抽象类与接口都用于抽象,但是抽象类(JAVA中)可以有自己的部分实现,而接口则完全是一个标识(同时有多重继承的功能)。13、Java的通信编程,编程题(或问答),用JAVASOCKET编程,读服务器几个字符,再写入本地显示?答:Server端程序:packagetest;importjava.net.*;importjava.io.*;publicclassServer{privateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer(){try{ss=newServerSocket(10000);while(true){socket=ss.accept();StringRemoteIP=socket.getInetAddress().getHostAddress();StringRemotePort=:+socket.getLocalPort();System.out.println(Aclientcomein!IP:+RemoteIP+RemotePort);in=newBufferedReader(newInputStreamReader(socket.getInputStream()));Stringline=in.readLine();System.out.println(Cleintsendis:+line);out=newPrintWriter(socket.getOutputStream(),true);out.println(YourMessageReceived!);out.close();in.close();socket.close();}}catch(IOExceptione){out.println(wrong);}}publicstaticvoidmain(String[]args){newServer();}};Client端程序:packagetest;importjava.io.*;importjava.net.*;publicclassClient{Socketsocket;BufferedReaderin;PrintWriterout;publicClient(){try{System.out.println(TrytoConnectto127.0.0.1:10000);socket=newSocket(127.0.0.1,10000);System.out.println(TheServerConnected!);System.out.println(PleaseentersomeCharacter:);BufferedReaderline=newBufferedReader(newInputStreamReader(System.in));out=newPrintWriter(socket.getOutputStream(),true);out.println(line.readLine());in=newBufferedReader(newInputStreamReader(socket.getInputStream()));System.out.println(in.readLine());out.close();in.close();socket.close();}catch(IOExceptione){out.println(Wrong);}}publicstaticvoidmain(String[]args){newClient();}};14、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?如在COLLECTION框架中,实现比较要实现什么样的接口?答:用插入法进行排序代码如下packagetest;importjava.util.*;classInsertSort{ArrayListal;publicInsertSort(intnum,intmod){al=newArrayList(num);Randomrand=newRandom();System.out.println(TheArrayListSortBefore:);for(inti=0;inum;i++){al.add(newInteger(Math.abs(rand.nextInt())%mod+1));System.out.println(al[+i+]=+al.get(i));}}publicvoidSortIt(){IntegertempInt;intMaxSize=1;for(inti=1;ial.size();i++){tempInt=(Integer)al.remove(i);if(tempInt.intValue()=((Integer)al.get(MaxSize-1)).intValue()){al.add(MaxSize,tempInt);MaxSize++;System.out.println(al.toString());}else{for(intj=0;jMaxSize;j++){if(((Integer)al.get(j)).intValue()=tempInt.intValu