java面试题大全-代码与编程题

上传人:hjk****65 文档编号:178019644 上传时间:2022-12-27 格式:DOC 页数:38 大小:118KB
收藏 版权申诉 举报 下载
java面试题大全-代码与编程题_第1页
第1页 / 共38页
java面试题大全-代码与编程题_第2页
第2页 / 共38页
java面试题大全-代码与编程题_第3页
第3页 / 共38页
资源描述:

《java面试题大全-代码与编程题》由会员分享,可在线阅读,更多相关《java面试题大全-代码与编程题(38页珍藏版)》请在装配图网上搜索。

1、 java面试题大全-代码与编程题代码与编程题135、写一个Singleton出来Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。publicclassSingletonprivateSingleton()/在自己内部定义自己一个实例,是不是很奇怪?/注意这是private只供内部调用privatest

2、aticSingletoninstance=newSingleton();/这里提供了一个供外部访问本class的静态方法,可以直接访问publicstaticSingletongetInstance()returninstance;第二种形式:publicclassSingletonprivatestaticSingletoninstance=null;publicstaticsynchronizedSingletongetInstance()/这个方法比上面有所改进,不用每次都进行生成对象,只是第一次/使用时生成实例,提高了效率!if(instance=null)instancenewSi

3、ngleton();returninstance;其他形式:定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些136、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?答:父类:packagetest;publicclassFatherClasspublicFatherClass()System.out.println(FatherClassCreate);子类:packagetest;importtest.FatherClass;publicclassChildClassextendsFatherClasspublicChildC

4、lass()System.out.println(ChildClassCreate);publicstaticvoidmain(Stringargs)FatherClassfc=newFatherClass();ChildClasscc=newChildClass();输出结果:C:javatest.ChildClassFatherClassCreateFatherClassCreateChildClassCreate137、内部类的实现方式?答:示例代码如下:packagetest;publicclassOuterClassprivateclassInterClasspublicInterC

5、lass()System.out.println(InterClassCreate);publicOuterClass()InterClassic=newInterClass();System.out.println(OuterClassCreate);publicstaticvoidmain(Stringargs)OuterClassoc=newOuterClass();输出结果:C:javatest/OuterClassInterClassCreateOuterClassCreate再一个例题:publicclassOuterClassprivatedoubled1=1.0;/insert

6、codehereYouneedtoinsertaninnerclassdeclarationatline3.Whichtwoinnerclassdeclarationsarevalid?(Choosetwo.)A.classInnerOnepublicstaticdoublemethoda()returnd1;B.publicclassInnerOnestaticdoublemethoda()returnd1;C.privateclassInnerOnedoublemethoda()returnd1;D.staticclassInnerOneprotecteddoublemethoda()re

7、turnd1;E.abstractclassInnerOnepublicabstractdoublemethoda();说明如下:一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。故A、B错二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;returnd1出错。故D错三.非静态内部类的非静态成员可以访问外部类的非静态变量。故C正确四.答案为C、E138、Java的通信编程,编程题(或问答),用JAVASOCKET编程,读服务器几个字符,再写入本地显示?答:Server端程序:packagetest;import.*;importjava.io.*;p

8、ublicclassServerprivateServerSocketss;privateSocketsocket;privateBufferedReaderin;privatePrintWriterout;publicServer()tryss=newServerSocket(10000);while(true)socket=ss.accept();StringRemoteIP=socket.getInetAddress().getHostAddress();StringRemotePort=:+socket.getLocalPort();System.out.println(Aclient

9、comein!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(IOExceptio

10、ne)out.println(wrong);publicstaticvoidmain(Stringargs)newServer();Client端程序:packagetest;importjava.io.*;import.*;publicclassClientSocketsocket;BufferedReaderin;PrintWriterout;publicClient()trySystem.out.println(TrytoConnectto127.0.0.1:10000);socket=newSocket(127.0.0.1,10000);System.out.println(TheSe

11、rverConnected!);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.rea

12、dLine();out.close();in.close();socket.close();catch(IOExceptione)out.println(Wrong);publicstaticvoidmain(Stringargs)newClient();139、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)?如在COLLECTION框架中,实现比较要实现什么样的接口?答:用插入法进行排序代码如下packagetest;importjava.util.*;classInsertSortArrayListal;publicInsertSort(intnum,intmod)al=new

13、ArrayList(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;i=(Integer)al.get(MaxSize-1).intValue()al.add(MaxSize,tem

14、pInt);MaxSize+;System.out.println(al.toString();elsefor(intj=0;j=tempInt.intValue()al.add(j,tempInt);MaxSize+;System.out.println(al.toString();break;System.out.println(TheArrayListSortAfter:);for(inti=0;ial.size();i+)System.out.println(al+i+=+al.get(i);publicstaticvoidmain(Stringargs)InsertSortis=ne

15、wInsertSort(10,100);is.SortIt();140、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。141、JAVA多线程编程。用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。希望大家补上,谢谢142、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.答:程序如下:packagehello.ant;importjava.sql.*;publicclass

16、jdbcStringdbUrl=jdbc:oracle:thin:127.0.0.1:1521:orcl;StringtheUser=admin;StringthePw=manager;Connectionc=null;Statementconn;ResultSetrs=null;publicjdbc()tryClass.forName(oracle.jdbc.driver.OracleDriver).newInstance();c=DriverManager.getConnection(dbUrl,theUser,thePw);conn=c.createStatement();catch(E

17、xceptione)e.printStackTrace();publicbooleanexecuteUpdate(Stringsql)tryconn.executeUpdate(sql);returntrue;catch(SQLExceptione)e.printStackTrace();returnfalse;publicResultSetexecuteQuery(Stringsql)rs=null;tryrs=conn.executeQuery(sql);catch(SQLExceptione)e.printStackTrace();returnrs;publicvoidclose()tr

18、yconn.close();c.close();catch(Exceptione)e.printStackTrace();publicstaticvoidmain(Stringargs)ResultSetrs;jdbcconn=newjdbc();rs=conn.executeQuery(select*fromtest);trywhile(rs.next()System.out.println(rs.getString(id);System.out.println(rs.getString(name);catch(Exceptione)e.printStackTrace();143、ORACL

19、E大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。答:一种分页方法=intPageCount)nextPage=intPageCount;upPage=currentPage-1;if(upPage=1)upPage=1;rs.close();sql=select*fromtables;rs=DBLink.executeQuery(sql);i=0;while(i/输出内容/输出翻页连接合计:/第一页ahref=List.jsp?page=上一页%for(intj=1;jahref=list.jsp?page=ahref=List.jsp?page=下一页ahref=List

20、.jsp?page=最后页144、用jdom解析xml文件时如何解决中文问题?如何解析?答:看如下代码,用编码方式加以解决packagetest;importjava.io.*;publicclassDOMTestprivateStringinFile=c:people.xml;privateStringoutFile=c:people.xml;publicstaticvoidmain(Stringargs)newDOMTest();publicDOMTest()tryjavax.xml.parsers.DocumentBuilderbuilder=javax.xml.parsers.Docu

21、mentBuilderFactory.newInstance().newDocumentBuilder();org.w3c.dom.Documentdoc=builder.newDocument();org.w3c.dom.Elementroot=doc.createElement(老师);org.w3c.dom.Elementwang=doc.createElement(王);org.w3c.dom.Elementliu=doc.createElement(刘);wang.appendChild(doc.createTextNode(我是王老师);root.appendChild(wang)

22、;doc.appendChild(root);javax.xml.transform.Transformertransformer=javax.xml.transform.TransformerFactory.newInstance().newTransformer();transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING,gb2312);transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT,yes);transformer.t

23、ransform(newjavax.xml.transform.dom.DOMSource(doc),newjavax.xml.transform.stream.StreamResult(outFile);catch(Exceptione)System.out.println(e.getMessage();145、编程用JAVA解析XML的方式.答:用SAX方式解析XML,XML文件如下:王小明信息学院6258113男,1955年生,博士,95年调入海南大学事件回调类SAXHandler.javaimportjava.io.*;importjava.util.Hashtable;importo

24、rg.xml.sax.*;publicclassSAXHandlerextendsHandlerBaseprivateHashtabletable=newHashtable();privateStringcurrentElement=null;privateStringcurrentValue=null;publicvoidsetTable(Hashtabletable)this.table=table;publicHashtablegetTable()returntable;publicvoidstartElement(Stringtag,AttributeListattrs)throwsS

25、AXExceptioncurrentElement=tag;publicvoidcharacters(charch,intstart,intlength)throwsSAXExceptioncurrentValue=newString(ch,start,length);publicvoidendElement(Stringname)throwsSAXExceptionif(currentElement.equals(name)table.put(currentElement,currentValue);JSP内容显示源码,SaxXml.jsp:剖析XML文件people.xml%Filefil

26、e=newFile(c:people.xml);FileReaderreader=newFileReader(file);Parserparser;SAXParserFactoryspf=SAXParserFactory.newInstance();SAXParsersp=spf.newSAXParser();SAXHandlerhandler=newSAXHandler();sp.parse(newInputSource(reader),handler);HashtablehashTable=handler.getTable();out.println(教师信息表);out.println(

27、姓名+(String)hashTable.get(newString(name)+);out.println(学院+(String)hashTable.get(newString(college)+);out.println(电话+(String)hashTable.get(newString(telephone)+);out.println(备注+(String)hashTable.get(newString(notes)+);out.println();%146、EJB的基本架构答:一个EJB包括三个部分:RemoteInterface接口的代码packageBeans;importjav

28、ax.ejb.EJBObject;importjava.rmi.RemoteException;publicinterfaceAddextendsEJBObject/somemethoddeclareHomeInterface接口的代码packageBeans;importjava.rmi.RemoteException;importjaax.ejb.CreateException;importjavax.ejb.EJBHome;publicinterfaceAddHomeextendsEJBHome/somemethoddeclareEJB类的代码packageBeans;importjav

29、a.rmi.RemoteException;importjavax.ejb.SessionBean;importjavx.ejb.SessionContext;publicclassAddBeanImplementsSessionBean/somemethoddeclare147、如何校验数字型?varre=/d1,8$|.d1,2$/;varstr=document.form1.all(i).value;varr=str.match(re);if(r=null)sign=-4;break;elsedocument.form1.all(i).value=parseFloat(str);148、

30、将一个键盘输入的数字转化成中文输出(例如:输入:1234567输出:一百二拾三万四千五百六拾七)用java语言实现,请编一段程序实现!publicclassReaderprivateStringstrNum;privateStringstrNumChFormat;privateStringstrNumTemp;privateintintNumLen;privateStringstrBegin;publicReader(StringstrNum)this.strNum=strNum;publicbooleancheck(StringstrNum)booleanvalid=false;if(str

31、Num.substring(0,1).equals(0)this.strNum=strNum.substring(1);trynewDouble(strNum);valid=true;catch(NumberFormatExceptionex)System.out.println(Badnumberformat!);returnvalid;publicvoidinit()strNumChFormat=;intNumLen=strNum.length();strNumTemp=strNum;strNumTemp=strNumTemp.replace(1,一);strNumTemp=strNumT

32、emp.replace(2,二);strNumTemp=strNumTemp.replace(3,三);strNumTemp=strNumTemp.replace(4,四);strNumTemp=strNumTemp.replace(5,五);strNumTemp=strNumTemp.replace(6,六);strNumTemp=strNumTemp.replace(7,七);strNumTemp=strNumTemp.replace(8,八);strNumTemp=strNumTemp.replace(9,九);strNumTemp=strNumTemp.replace(0,零);str

33、NumTemp=strNumTemp.replace(.,点);strBegin=strNumTemp.substring(0,1);publicStringreadNum()if(check(strNum)init();tryfor(inti=1,j=1,k=1;iintNumLen;i+)if(strNumTemp.charAt(intNumLen-1)=零&i=1)strNumChFormat=位;elseif(strNumTemp.charAt(intNumLen-i)=零&j=1)strNumChFormat=位+strNumChFormat;elseif(strNumTemp.ch

34、arAt(intNumLen-i)=点)j=1;k=1;strNumChFormat=strNumTemp.charAt(intNumLen-i)+strNumChFormat;continue;elsestrNumChFormat=strNumTemp.charAt(intNumLen-i)+strNumChFormat;if(strNumTemp.charAt(intNumLen-i-1)!=位&strNumTemp.charAt(intNumLen-i-1)!=零)if(j=1&iintNumLen)strNumChFormat=拾+strNumChFormat;elseif(j=2&i

35、intNumLen)strNumChFormat=百+strNumChFormat;elseif(j=3&iintNumLen)strNumChFormat=千+strNumChFormat;if(j=4&iintNumLen)j=0;if(k=4&iintNumLen)strNumChFormat=万+strNumChFormat;elseif(k=8&i=0)Stringrebegin=strNumChFormat.substring(0,strNumChFormat.indexOf(点);Stringrelast=strNumChFormat.substring(strNumChForm

36、at.indexOf(点),strNumChFormat.length();for(inti=1;i=relast.length();i+)relast=relast.replaceAll(拾,);relast=relast.replaceAll(百,);relast=relast.replaceAll(千,);relast=relast.replaceAll(万,);relast=relast.replaceAll(亿,);strNumChFormat=rebegin+relast;catch(ArrayIndexOutOfBoundsExceptionex)ex.printStackTra

37、ce();catch(Exceptionex)ex.printStackTrace();intoff=strNumChFormat.indexOf(点);strNumChFormat=strBegin+strNumChFormat.substring(0);elsestrNumChFormat=;returnstrNumChFormat;publicstaticvoidmain(Stringargs)tryStringnumber=args0.toString();System.out.println(Thenumberis:+number);Readerreader=newReader(nu

38、mber);System.out.println(OutputString:+reader.readNum();catch(Exceptionex)System.out.println(Pleaseinputlikethat:javacReader);149、JAVA代码查错1.abstractclassNameprivateStringname;publicabstractbooleanisStupidName(Stringname)大侠们,这有何错误?答案:错。abstractmethod必须以分号结尾,且不带花括号。2.publicclassSomethingvoiddoSomethin

39、g()privateStrings=;intl=s.length();有错吗?答案:错。局部变量前不能放置任何访问修饰符(private,public,和protected)。final可以用来修饰局部变量(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。3.abstractclassSomethingprivateabstractStringdoSomething();这好像没什么错吧?答案:错。abstract的methods不能以private修饰。abstract的methods就是让子类imp

40、lement(实现)具体细节的,怎么可以用private把abstractmethod封锁起来呢?(同理,abstractmethod前不能加final)。4.publicclassSomethingpublicintaddOne(finalintx)return+x;这个比较明显。答案:错。intx被修饰成final,意味着x不能在addOnemethod中被修改。5.publicclassSomethingpublicstaticvoidmain(Stringargs)Othero=newOther();newSomething().addOne(o);publicvoidaddOne(f

41、inalOthero)o.i+;classOtherpublicinti;和上面的很相似,都是关于final的问题,这有错吗?答案:正确。在addOnemethod中,参数o被修饰成final。如果在addOnemethod里我们修改了o的reference(比如:o=newOther();),那么如同上例这题也是错的。但这里修改的是o的membervairable(成员变量),而o的reference并没有改变。6.classSomethinginti;publicvoiddoSomething()System.out.println(i=+i);有什么错呢?看不出来啊。答案:正确。输出的是

42、i=0。inti属於instantvariable(实例变量,或叫成员变量)。instantvariable有defaultvalue。int的defaultvalue是0。7.classSomethingfinalinti;publicvoiddoSomething()System.out.println(i=+i);和上面一题只有一个地方不同,就是多了一个final。这难道就错了吗?答案:错。finalinti是个final的instantvariable(实例变量,或叫成员变量)。final的instantvariable没有defaultvalue,必须在constructor(构造器)结束之前被赋予一个明确的值。可以修改为finalinti=0;。8.publicclassSomethingpublicstaticvoidmain(Stringargs)Somethings=newSomething();System.out.println(s.doSomething()returns+doSomething();publicStringdoSomething()r

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!