java笔试题大集合及答案(306)代码与编程题

上传人:pia****nwu 文档编号:144549504 上传时间:2022-08-27 格式:DOC 页数:22 大小:63.51KB
返回 下载 相关 举报
java笔试题大集合及答案(306)代码与编程题_第1页
第1页 / 共22页
java笔试题大集合及答案(306)代码与编程题_第2页
第2页 / 共22页
java笔试题大集合及答案(306)代码与编程题_第3页
第3页 / 共22页
点击查看更多>>
资源描述
代码与编程题135、写一个Singleton出来Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。一般Singleton模式通常有几种种形式:第一种形式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。publicclassSingletonprivateSingleton()/在自己内部定义自己一个实例,是不是很奇怪?/注意这是private只供内部调用privatestaticSingletoninstance=newSingleton();/这里提供了一个供外部访问本class的静态方法,可以直接访问publicstaticSingletongetInstance()returninstance;第二种形式:publicclassSingletonprivatestaticSingletoninstance=null;publicstaticsynchronizedSingletongetInstance()/这个方法比上面有所改进,不用每次都进行生成对象,只是第一次/使用时生成实例,提高了效率!if(instance=null)instancenewSingleton();returninstance;其他形式:定义一个类,它的构造函数为private的,所有方法为static的。一般认为第一种形式要更加安全些136、继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?答:父类:package test;public class FatherClass public FatherClass()System.out.println(FatherClass Create);子类:package test;import test.FatherClass;public class ChildClass extends FatherClasspublic ChildClass()System.out.println(ChildClass Create);public static void main(String args) FatherClass fc = new FatherClass();ChildClass cc = new ChildClass();输出结果:C:java test.ChildClassFatherClass CreateFatherClass CreateChildClass Create 137、内部类的实现方式?答:示例代码如下:package test;public class OuterClassprivate class InterClasspublic InterClass()System.out.println(InterClass Create);public OuterClass()InterClass ic = new InterClass();System.out.println(OuterClass Create);public static void main(String args) OuterClass oc = new OuterClass();输出结果:C:java test/OuterClassInterClass CreateOuterClass Create再一个例题:public class OuterClass private double d1 = 1.0; /insert code here You need to insert an inner class declaration at line 3. Which two inner class declarations are valid?(Choose two.) A. class InnerOne public static double methoda() return d1; B. public class InnerOne static double methoda() return d1; C. private class InnerOne double methoda() return d1; D. static class InnerOne protected double methoda() return d1; E. abstract class InnerOne public abstract double methoda(); 说明如下:一.静态内部类可以有静态成员,而非静态内部类则不能有静态成员。 故 A、B 错二.静态内部类的非静态成员可以访问外部类的静态变量,而不可访问外部类的非静态变量;return d1 出错。 故 D 错三.非静态内部类的非静态成员可以访问外部类的非静态变量。 故 C 正确四.答案为C、E 138、Java 的通信编程,编程题(或问答),用JAVA SOCKET编程,读服务器几个字符,再写入本地显示? 答:Server端程序:package test;import .*;import java.io.*; public class Serverprivate ServerSocket ss;private Socket socket;private BufferedReader in;private PrintWriter out;public Server()tryss=new ServerSocket(10000);while(true)socket = ss.accept();String RemoteIP = socket.getInetAddress().getHostAddress();String RemotePort = :+socket.getLocalPort();System.out.println(A client come in!IP:+RemoteIP+RemotePort);in = new BufferedReader(new InputStreamReader(socket.getInputStream();String line = in.readLine();System.out.println(Cleint send is : + line);out = new PrintWriter(socket.getOutputStream(),true);out.println(Your Message Received!);out.close();in.close();socket.close();catch (IOException e)out.println(wrong);public static void main(String args)new Server();Client端程序:package test;import java.io.*;import .*; public class ClientSocket socket;BufferedReader in;PrintWriter out;public Client()trySystem.out.println(Try to Connect to 127.0.0.1:10000);socket = new Socket(127.0.0.1,10000);System.out.println(The Server Connected!);System.out.println(Please enter some Character:);BufferedReader line = new BufferedReader(new InputStreamReader(System.in);out = new PrintWriter(socket.getOutputStream(),true);out.println(line.readLine();in = new BufferedReader(new InputStreamReader(socket.getInputStream();System.out.println(in.readLine();out.close();in.close();socket.close();catch(IOException e)out.println(Wrong);public static void main(String args)new Client(); 139、用JAVA实现一种排序,JAVA类实现序列化的方法(二种)? 如在COLLECTION框架中,实现比较要实现什么样的接口?答:用插入法进行排序代码如下package test;import java.util.*;class InsertSortArrayList al;public InsertSort(int num,int mod)al = new ArrayList(num);Random rand = new Random();System.out.println(The ArrayList Sort Before:);for (int i=0;inum ;i+ )al.add(new Integer(Math.abs(rand.nextInt() % mod + 1);System.out.println(al+i+=+al.get(i);public void SortIt()Integer tempInt;int MaxSize=1;for(int i=1;i=(Integer)al.get(MaxSize-1).intValue()al.add(MaxSize,tempInt);MaxSize+;System.out.println(al.toString(); else for (int j=0;j=tempInt.intValue()al.add(j,tempInt);MaxSize+;System.out.println(al.toString();break;System.out.println(The ArrayList Sort After:);for(int i=0;ial.size();i+)System.out.println(al+i+=+al.get(i);public static void main(String args) InsertSort is = new InsertSort(10,100);is.SortIt();140、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 答:代码如下:package test; class SplitStringString SplitStr;int SplitByte;public SplitString(String str,int bytes)SplitStr=str;SplitByte=bytes;System.out.println(The String is:+SplitStr+;SplitBytes=+SplitByte);public void SplitIt()int loopCount; loopCount=(SplitStr.length()%SplitByte=0)?(SplitStr.length()/SplitByte):(SplitStr.length()/Split Byte+1);System.out.println(Will Split into +loopCount);for (int i=1;i=loopCount ;i+ )if (i=loopCount) System.out.println(SplitStr.substring(i-1)*SplitByte,SplitStr.length(); else System.out.println(SplitStr.substring(i-1)*SplitByte,(i*SplitByte);public static void main(String args) SplitString ss = new SplitString(test中dd文dsaf中男大3443n中国43中国人 0ewldfls=103,4);ss.SplitIt(); 141、JAVA多线程编程。 用JAVA写一个多线程程序,如写四个线程,二个加1,二个对一个变量减一,输出。 希望大家补上,谢谢 142、可能会让你写一段Jdbc连Oracle的程序,并实现数据查询.答:程序如下:package hello.ant;import java.sql.*;public class jdbcString dbUrl=jdbc:oracle:thin:127.0.0.1:1521:orcl;String theUser=admin;String thePw=manager;Connection c=null;Statement conn;ResultSet rs=null;public jdbc() try Class.forName(oracle.jdbc.driver.OracleDriver).newInstance(); c = DriverManager.getConnection(dbUrl,theUser,thePw); conn=c.createStatement();catch(Exception e)e.printStackTrace();public boolean executeUpdate(String sql)tryconn.executeUpdate(sql);return true;catch (SQLException e)e.printStackTrace();return false;public ResultSet executeQuery(String sql)rs=null;tryrs=conn.executeQuery(sql);catch (SQLException e)e.printStackTrace();return rs;public void close()tryconn.close();c.close();catch (Exception e)e.printStackTrace();public static void main(String args)ResultSet rs;jdbc conn = new jdbc();rs=conn.executeQuery(select * from test);trywhile (rs.next()System.out.println(rs.getString(id);System.out.println(rs.getString(name);catch(Exception e)e.printStackTrace(); 143、ORACLE大数据量下的分页解决方法。一般用截取ID方法,还有是三层嵌套方法。 答:一种分页方法=intPageCount) nextPage=intPageCount; upPage = currentPage-1; if (upPage=1) upPage=1; rs.close(); sql=select * from tables; rs=DBLink.executeQuery(sql); i=0; while(i/输出内容/输出翻页连接合计:/第一页a href=List.jsp?page=上一页% for(int j=1;j a href=list.jsp?page= a href=List.jsp?page=下一页a href=List.jsp?page=最后页 144、用jdom解析xml文件时如何解决中文问题?如何解析?答:看如下代码,用编码方式加以解决package test;import java.io.*;public class DOMTestprivate String inFile = c:people.xml;private String outFile = c:people.xml;public static void main(String args) new DOMTest(); public DOMTest()try javax.xml.parsers.DocumentBuilder builder = javax.xml.parsers.DocumentBuilderFactory.newInstance().newDocumentBuilder(); org.w3c.dom.Document doc = builder.newDocument(); org.w3c.dom.Element root = doc.createElement(老师); org.w3c.dom.Element wang = doc.createElement(王);org.w3c.dom.Element liu = doc.createElement(刘); wang.appendChild(doc.createTextNode(我是王老师); root.appendChild(wang); doc.appendChild(root); javax.xml.transform.Transformer transformer = javax.xml.transform.TransformerFactory.newInstance().newTransformer(); transformer.setOutputProperty(javax.xml.transform.OutputKeys.ENCODING, gb2312); transformer.setOutputProperty(javax.xml.transform.OutputKeys.INDENT, yes); transformer.transform(new javax.xml.transform.dom.DOMSource(doc), new javax.xml.transform.stream.StreamResult(outFile); catch (Exception e) System.out.println (e.getMessage(); 145、编程用JAVA解析XML的方式.答:用SAX方式解析XML,XML文件如下: 王小明 信息学院 6258113 男,1955年生,博士,95年调入海南大学 事件回调类SAXHandler.javaimport java.io.*; import java.util.Hashtable; import org.xml.sax.*; public class SAXHandler extends HandlerBase private Hashtable table = new Hashtable(); private String currentElement = null; private String currentValue = null; public void setTable(Hashtable table) this.table = table; public Hashtable getTable() return table; public void startElement(String tag, AttributeList attrs) throws SAXException currentElement = tag; public void characters(char ch, int start, int length) throws SAXException currentValue = new String(ch, start, length); public void endElement(String name) throws SAXException if (currentElement.equals(name) table.put(currentElement, currentValue); JSP内容显示源码,SaxXml.jsp: 剖析XML文件people.xml % File file = new File(c:people.xml); FileReader reader = new FileReader(file); Parser parser; SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); SAXHandler handler = new SAXHandler(); sp.parse(new InputSource(reader), handler); Hashtable hashTable = handler.getTable(); out.println(教师信息表); out.println(姓名 + + (String)hashTable.get(new String(name) + ); out.println(学院 + + (String)hashTable.get(new String(college)+); out.println(电话 + + (String)hashTable.get(new String(telephone) + ); out.println(备注 + + (String)hashTable.get(new String(notes) + ); out.println(); % 146、EJB的基本架构答:一个EJB包括三个部分: Remote Interface 接口的代码 package Beans; import javax.ejb.EJBObject; import java.rmi.RemoteException; public interface Add extends EJBObject /some method declare Home Interface 接口的代码 package Beans; import java.rmi.RemoteException; import jaax.ejb.CreateException; import javax.ejb.EJBHome; public interface AddHome extends EJBHome /some method declare EJB类的代码 package Beans; import java.rmi.RemoteException; import javax.ejb.SessionBean; import javx.ejb.SessionContext; public class AddBean Implements SessionBean /some method declare 147、如何校验数字型?var re=/d1,8$|.d1,2$/;var str=document.form1.all(i).value;var r=str.match(re);if (r=null) sign=-4; break;else document.form1.all(i).value=parseFloat(str); 148、将一个键盘输入的数字转化成中文输出(例如:输入:1234567输出:一百二拾三万四千五百六拾七)用java语言实现,请编一段程序实现! publicclassReaderprivateStringstrNum;privateStringstrNumChFormat;privateStringstrNumTemp;privateintintNumLen;privateStringstrBegin;publicReader(StringstrNum)this.strNum=strNum;publicbooleancheck(StringstrNum)booleanvalid=false;if(strNum.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=strNumTemp.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,零);strNumTemp=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.charAt(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&iintNumLen)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(strNumChFormat.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.printStackTrace();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(number);System.out.println(OutputString:+reader.readNum();catch(Exceptionex)System.out.println(Pleaseinputlikethat:javacReader); 149、JAVA代码查错1.abstractclassNameprivateStringname;publicabstractbooleanisStupidName(Stringname)大侠们,这有何错误?答案:错。abstractmethod必须以分号结尾,且不带花括号。2.publicclassSomethingvoiddoSomething()privateStrings=;intl=s.length();有错吗?答案:错。局部变量前不能放置任何访问修饰符(private,public,和protected)。final可以用来修饰局部变量(final如同abstract和strictfp,都是非访问修饰符,strictfp只能修饰class和method而非variable)。3.abstractclassSomethingprivateabstractStringdoSomething();这好像没什么错吧?答案:错。abstract的methods不能以private修饰。abstract的methods就是让子类implement(实现)具体细节的,怎么可以用private把abstractmethod封锁起来呢?(同理,abstractmethod前不能加final)。4.publicclassSomethingpublicintaddOne(finalintx)return+x;这个比较明显。答案:错。intx被修饰成final,意味着x不能在addOnemethod中被修改。5.publicclassSomethingpublicstaticvoidmain(Stringargs)Othero=newOther();newSomething().addOne(o);publicvoidaddOne(finalOthero)o.i+;classOtherpublicinti;和上面的很相似,都是关于final的问题,这有错吗?答案:正确。在addOnemethod中,参数o被修饰成final。如果在addOnemethod里我们修改了o的reference(比如:o=newOther();),那么如同上例这题也是错的。但这里修改的是o的membervairab
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 考试试卷


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

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


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