代碼與編程題_第1頁(yè)
代碼與編程題_第2頁(yè)
代碼與編程題_第3頁(yè)
代碼與編程題_第4頁(yè)
代碼與編程題_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、代碼與編程題135、寫一個(gè)Singleton出來(lái)Singleton模式主要作用是保證在Java應(yīng)用程序中,一個(gè)類Class只有一個(gè)實(shí)例存在。一般Singleton模式通常有幾種種形式:第一種形式:定義一個(gè)類,它的構(gòu)造函數(shù)為private的,它有一個(gè)static的private的該類變量,在類初始化時(shí)實(shí)例話,通過(guò)一個(gè)public的getInstance方法獲取對(duì)它的引用,繼而調(diào)用其中的方法。publicclassSingletonprivateSingleton()/在自己內(nèi)部定義自己一個(gè)實(shí)例,是不是很奇怪?/注意這是private只供內(nèi)部調(diào)用privatestaticSingletoninst

2、ance=newSingleton();/這里提供了一個(gè)供外部訪問(wèn)本class的靜態(tài)方法,可以直接訪問(wèn)publicstaticSingletongetInstance()returninstance;第二種形式:publicclassSingletonprivatestaticSingletoninstance=null;publicstaticsynchronizedSingletongetInstance()/這個(gè)方法比上面有所改進(jìn),不用每次都進(jìn)行生成對(duì)象,只是第一次/使用時(shí)生成實(shí)例,提高了效率!if(instance=null)instancenewSingleton();returni

3、nstance;其他形式:定義一個(gè)類,它的構(gòu)造函數(shù)為private的,所有方法為static的。一般認(rèn)為第一種形式要更加安全些136、繼承時(shí)候類的執(zhí)行順序問(wèn)題,一般都是選擇題,問(wèn)你將會(huì)打印出什么?答:父類:package test;public class FatherClass public FatherClass()System.out.println(FatherClass Create);子類:package test;import test.FatherClass;public class ChildClass extends FatherClasspublic ChildClass

4、()System.out.println(ChildClass Create);public static void main(String args) FatherClass fc = new FatherClass();ChildClass cc = new ChildClass();輸出結(jié)果:C:java test.ChildClassFatherClass CreateFatherClass CreateChildClass Create 137、內(nèi)部類的實(shí)現(xiàn)方式?答:示例代碼如下:package test;public class OuterClassprivate class In

5、terClasspublic 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();輸出結(jié)果:C:java test/OuterClassInterClass CreateOuterClass Create再一個(gè)例題:public c

6、lass 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. pr

7、ivate class InnerOne double methoda() return d1; D. static class InnerOne protected double methoda() return d1; E. abstract class InnerOne public abstract double methoda(); 說(shuō)明如下:一.靜態(tài)內(nèi)部類可以有靜態(tài)成員,而非靜態(tài)內(nèi)部類則不能有靜態(tài)成員。 故 A、B 錯(cuò)二.靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問(wèn)外部類的靜態(tài)變量,而不可訪問(wèn)外部類的非靜態(tài)變量;return d1 出錯(cuò)。 故 D 錯(cuò)三.非靜態(tài)內(nèi)部類的非靜態(tài)成員可以訪問(wèn)外部類的非

8、靜態(tài)變量。 故 C 正確四.答案為C、E 138、Java 的通信編程,編程題(或問(wèn)答),用JAVA SOCKET編程,讀服務(wù)器幾個(gè)字符,再寫入本地顯示? 答: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);w

9、hile(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.

10、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

11、.*; public class ClientSocket socket;BufferedReader in;PrintWriter out;public Client()trySystem.out.println(Try to Connect to :10000);socket = new Socket(,10000);System.out.println(The Server Connected!);System.out.println(Please enter some Character:);BufferedReader line =

12、 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.p

13、rintln(Wrong);public static void main(String args)new Client(); 139、用JAVA實(shí)現(xiàn)一種排序,JAVA類實(shí)現(xiàn)序列化的方法(二種)? 如在COLLECTION框架中,實(shí)現(xiàn)比較要實(shí)現(xiàn)什么樣的接口?答:用插入法進(jìn)行排序代碼如下package test;import java.util.*;class InsertSortArrayList al;public InsertSort(int num,int mod)al = new ArrayList(num);Random rand = new Random();System.out.

14、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.printl

15、n(al.toString(); else for (int j=0;j=tempIValue()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,

16、100);is.SortIt();140、編程:編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。 但是要保證漢字不被截半個(gè),如“我ABC”4,應(yīng)該截為“我AB”,輸入“我ABC漢DEF”,6,應(yīng)該輸出為“我ABC”而不是“我ABC+漢的半個(gè)”。 答:代碼如下:package test; class SplitStringString SplitStr;int SplitByte;public SplitString(String str,int bytes)SplitStr=str;SplitByte=bytes;System.out.println(The St

17、ring 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(Spli

18、tStr.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中國(guó)43中國(guó)人 0ewldfls=103,4);ss.SplitIt(); 141、JAVA多線程編程。 用JAVA寫一個(gè)多線程程序,如寫四個(gè)線程,二個(gè)加1,二個(gè)對(duì)一個(gè)變量減一,

19、輸出。 希望大家補(bǔ)上,謝謝 142、可能會(huì)讓你寫一段Jdbc連Oracle的程序,并實(shí)現(xiàn)數(shù)據(jù)查詢.答:程序如下:package hello.ant;import java.sql.*;public class jdbcString dbUrl=jdbc:oracle:thin::1521:orcl;String theUser=admin;String thePw=manager;Connection c=null;Statement conn;ResultSet rs=null;public jdbc() try Class.forName(oracle.jdbc.driv

20、er.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

21、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 * f

22、rom test);trywhile (rs.next()System.out.println(rs.getString(id);System.out.println(rs.getString(name);catch(Exception e)e.printStackTrace(); 143、ORACLE大數(shù)據(jù)量下的分頁(yè)解決方法。一般用截取ID方法,還有是三層嵌套方法。 答:一種分頁(yè)方法=intPageCount) nextPage=intPageCount; upPage = currentPage-1; if (upPage=1) upPage=1; rs.close(); sql=sele

23、ct * from tables; rs=DBLink.executeQuery(sql); i=0; while(i/輸出內(nèi)容/輸出翻頁(yè)連接合計(jì):/第一頁(yè)a href=List.jsp?page=上一頁(yè)% for(int j=1;j a href=list.jsp?page= a href=List.jsp?page=下一頁(yè)a href=List.jsp?page=最后頁(yè) 144、用jdom解析xml文件時(shí)如何解決中文問(wèn)題?如何解析?答:看如下代碼,用編碼方式加以解決package test;import java.io.*;public class DOMTestprivate Strin

24、g 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.newDocumen

25、t(); 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.tr

26、ansform.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.transf

27、orm.stream.StreamResult(outFile); catch (Exception e) System.out.println (e.getMessage(); 145、編程用JAVA解析XML的方式.答:用SAX方式解析XML,XML文件如下: 王小明 信息學(xué)院 6258113 男,1955年生,博士,95年調(diào)入海南大學(xué) 事件回調(diào)類SAXHandler.javaimport java.io.*; import java.util.Hashtable; import org.xml.sax.*; public class SAXHandler extends HandlerB

28、ase 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 c

29、urrentElement = 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內(nèi)容顯示源碼,SaxXml.jsp: 剖析XML文件

30、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 =

31、 handler.getTable(); out.println(教師信息表); out.println(姓名 + + (String)hashTable.get(new String(name) + ); out.println(學(xué)院 + + (String)hashTable.get(new String(college)+); out.println(電話 + + (String)hashTable.get(new String(telephone) + ); out.println(備注 + + (String)hashTable.get(new String(notes) + );

32、out.println(); % 146、EJB的基本架構(gòu)答:一個(gè)EJB包括三個(gè)部分: 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.CreateExcept

33、ion; 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、如何校驗(yàn)數(shù)字型?var re=/d1,8

34、$|.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、將一個(gè)鍵盤輸入的數(shù)字轉(zhuǎn)化成中文輸出(例如:輸入:1234567輸出:一百二拾三萬(wàn)四千五百六拾七)用java語(yǔ)言實(shí)現(xiàn),請(qǐng)編一段程序?qū)崿F(xiàn)! publicclassReaderprivateStringstrNum;privateStringstrNumChFormat;privateStringstrNumT

35、emp;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(Badnumberfo

36、rmat!);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(

37、6,六);strNumTemp=strNumTemp.replace(7,七);strNumTemp=strNumTemp.replace(8,八);strNumTemp=strNumTemp.replace(9,九);strNumTemp=strNumTemp.replace(0,零);strNumTemp=strNumTemp.replace(.,點(diǎn));strBegin=strNumTemp.substring(0,1);publicStringreadNum()if(check(strNum)init();tryfor(inti=1,j=1,k=1;iintNumLen;i+)if(st

38、rNumTemp.charAt(intNumLen-1)=零&i=1)strNumChFormat=位;elseif(strNumTemp.charAt(intNumLen-i)=零&j=1)strNumChFormat=位+strNumChFormat;elseif(strNumTemp.charAt(intNumLen-i)=點(diǎn))j=1;k=1;strNumChFormat=strNumTemp.charAt(intNumLen-i)+strNumChFormat;continue;elsestrNumChFormat=strNumTemp.charAt(intNumLen-i)+strN

39、umChFormat;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=萬(wàn)

40、+strNumChFormat;elseif(k=8&i=0)Stringrebegin=strNumChFormat.substring(0,strNumChFormat.indexOf(點(diǎn));Stringrelast=strNumChFormat.substring(strNumChFormat.indexOf(點(diǎn)),strNumChFormat.length();for(inti=1;i=relast.length();i+)relast=relast.replaceAll(拾,);relast=relast.replaceAll(百,);relast=relast.replaceAll(千,);relast=relast.replaceAll(萬(wàn),);relast=relast.replaceAll(億,);strNumChFormat=rebegin+relast;catch(ArrayIndexOutOfBoundsExceptionex)ex.printStackTrace();catch(Exceptionex)ex.printS

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論