JAVA開發(fā)基礎(習題卷77)_第1頁
JAVA開發(fā)基礎(習題卷77)_第2頁
JAVA開發(fā)基礎(習題卷77)_第3頁
JAVA開發(fā)基礎(習題卷77)_第4頁
JAVA開發(fā)基礎(習題卷77)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

試卷科目:JAVA開發(fā)基礎JAVA開發(fā)基礎(習題卷77)PAGE"pagenumber"pagenumber/SECTIONPAGES"numberofpages"numberofpagesJAVA開發(fā)基礎第1部分:單項選擇題,共57題,每題只有一個正確答案,多選或少選均不得分。[單選題]1.在CSS中,兩個或多個基礎選擇器可以通過不同的方式進行組合。下列寫法錯誤的是()。A)myDiv.mySpanB)myDiv.mySpanC)myDiv.mySpanD)myDiv#myDiv[單選題]2.Java中提供了的哪個類,它不但具有讀寫文件的功能,并且可以隨機地從文件的任何位置開始執(zhí)行讀寫數(shù)據(jù)的操作。A)RandomAccessFileB)SequenceInputStreamC)SerializableD)PipedInputStream[單選題]3.ServletContext對象被銷毀時,將會調(diào)用ServletContextListener接口中()方法A)contextInitialized()B)initializedContext()C)destroyedContext()D)contextDestroyed()[單選題]4.Themostsurprising()ofthehousewasalargeroomasbigasaswimmingpool.A)mistakeB)crashC)featureD)character[單選題]5.下列不是繼承Collection接口的是A)ListB)SetC)MapD)Queue[單選題]6.關(guān)于以下application的說明,正確的是()1.classStaticStuff2.{3.staticintx=10;4.static{x+=5;}5.publicstaticvoidmain(Stringargs[])6.{7.System.out.println(?x=?+x);8.}9.static{x/=3;}10.}A)4行與9行不能通過編譯,因為缺少方法名和返回類型B)9行不能通過編譯,因為只能有一個靜態(tài)初始化器C)編譯通過,執(zhí)行結(jié)果為:x=5D)編譯通過,執(zhí)行結(jié)果為:x=3[單選題]7.編輯XML時,關(guān)于屬性聲明錯誤的是A)標記中可以使用多個屬性B)屬性可以出現(xiàn)在起始標記或結(jié)束標記中C)屬性名是大小寫敏感的D)屬性值必須用引號引上[單選題]8.在Java中,一個類可同時定義許多同名方法,這些方法的形式參數(shù)的個數(shù)、類型或順序各不相同,傳回的值也可以不相同,這種面向?qū)ο蟪绦蛱匦苑Q為。A)隱藏B)重寫C)重載D)Java不支持此特性[單選題]9.break語句()A)只中斷最內(nèi)層的循環(huán)B)只中斷最外層的循環(huán)C)借助于標號,可以實現(xiàn)任何外層循環(huán)中斷D)只中斷某一層的循環(huán)[單選題]10.下面關(guān)于方法重載,描述錯誤的是()。A)所謂?方法簽名?就是用方法名、參數(shù)類型名中間用?_?隔開的一個串B)方法重載可以用同一方法名實現(xiàn)不同功能C)不同參數(shù)個數(shù)、不同參數(shù)類型、或者不同參數(shù)個數(shù)且不同參數(shù)類型,均可以實現(xiàn)方法重載D)相同參數(shù)個數(shù),無法實現(xiàn)方法重載[單選題]11.在Java中,能實現(xiàn)多重繼承效果的方式是()。A)內(nèi)部類B)適配器C)接口D)同步[單選題]12.要想集合中保存的元素沒有重復并且按照一定的順序排列,可以使用以下哪個集合?A)LinkedListB)ArrayListC)hashSetD)TreeSet[單選題]13.下列關(guān)于Java后臺線程的描述,錯誤的是()A)對Java程序來說,只要還有一個前臺線程在運行,這個進程就不會結(jié)束B)如果某個線程對象在啟動之前調(diào)用了setDaemon(false)語句,這個線程就變成一個后臺線程C)在start()方法執(zhí)行后,使用setDaemon(true)可以將線程設置為后臺線程D)只要進程中不存在前臺線程,整個進程就會結(jié)束[單選題]14.下列能夠正確創(chuàng)建線程的方法是:I.繼承java.lang.Thread類,并重寫run()方法II.繼承java.lang.Runnable類,并重寫start()方法III.實現(xiàn)java.lang.Thread接口,并實現(xiàn)run()方法IV.實現(xiàn)java.lang.Runnable接口,并實現(xiàn)run()方法A)I,IIIB)II,IVC)II,IIID)I,IV[單選題]15.在MySQL中,用來插入數(shù)據(jù)的命令是(),用于更新的命令是()A)INSERT,UPDATEB)CREATE,INSERTINTOC)DELETE,UPDATED)UPDATE,INSERT[單選題]16.公有成員變量MAX是int型,變量的值保持常數(shù)值100。在類Constants中,可以使用以下()聲明語句來定義這個變量。A)publicintMAX=100;B)finalintMAX=100;C)publicstaticintMAX=100;D)publicfinalintMAX=100;[單選題]17.下面服務中基于TCP協(xié)議的是A)HTTPB)FTPC)SMTPD)NEWS[單選題]18.關(guān)于main()方法說法正確的是()A)一個類中可以沒有main()B)所有對象都必須放在main()方法中C)main()必須放在公共類中D)main()方法頭的定義可以根據(jù)情況任意修改[單選題]19.如果需要使用其它類包中的public類,下列不正確的方法是A)使用包名、類名作前綴B)加載需要使用的類C)加載整個包D)直接使用[單選題]20.下面選項中,用于初始化過濾器的方法是()A)init(FilterConfigfilterConfig)B)doFilter(ServletRequestreq.ServletResponseresp,FilterChainchain)C)destroy()D)init(ServletConfigservletConfig)[單選題]21.若在某一個類定義中定義有如下的方法:abstractvoidperformDial();該方法屬于()。A)接口方法B)最終方法C)抽象方法D)空方法[單選題]22.線程生命周期中正確的狀態(tài)是A)新建狀態(tài)、運行狀態(tài)和終止狀態(tài)B)新建狀態(tài)、運行狀態(tài)、阻塞狀態(tài)和終止狀態(tài)C)新建狀態(tài)、可運行狀態(tài)、運行狀態(tài)、阻塞狀態(tài)和終止狀態(tài)D)新建狀態(tài)、可運行狀態(tài)、運行狀態(tài)、恢復狀態(tài)和終止狀態(tài)[單選題]23.下述for語句,正確的說法是()。inti,x;for(i=0,x=1;i<=9&&x!=8;i++)A)循環(huán)10次B)循環(huán)8次C)無限循環(huán)D)一次也不循環(huán)[單選題]24.以下關(guān)于布局的說法,錯誤的是()A)BorderLayout是邊框布局,它是窗體的默認布局B)null是空布局,它是面板的默認布局C)FlowLayout是流布局,這種布局將其中的組件按照加入的先后順序從左向右排列,D)GridLayout是網(wǎng)格布局,它以矩形網(wǎng)格形式對容器的組件進行布置。容器被分成大小相等的矩形,一個矩形中放置一個組件[單選題]25.關(guān)于線程的死鎖,下面的說法正確的是()A)若程序中存在線程的死鎖問題,編譯時不能通過B)線程的死鎖是一種邏輯運行錯誤,編譯器無法檢測C)實現(xiàn)多線程時死鎖不可避免D)為了避免死鎖,應解除對資源以互斥的方式進行訪問[單選題]26.下列類型的文件可以在Java虛擬機中運行的是A)javaB)jreC)exeD)class[單選題]27.在Java中,有關(guān)類的說法正確的是()A)類具有封裝性,所以類的數(shù)據(jù)是不能被訪問的B)類具有封裝性,但可以通過類的公共接口訪問類中的數(shù)據(jù)C)聲明一個類時,必須用public修飾符D)每個類中,必須有main方法,否則程序無法運行[單選題]28.Theoutputofthecodebelowis:()。PublicclassPass{Staticintj=20;Publicvoidamethod(intx){X=x*2;J=j*2;}Publicstaticvoidmain(Stringargs[]){Inti=10;Passp=newPass();P.amethod(i);System.out.println(i+"and"+j);}}A)CompileerrorB)20and40C)10and40D)10and20[單選題]29.當Strings=null;時,下列選項中會拋出空指針異常的是()A)if((s!=null)&(s.length()>0))B)if((s!=null)&&(s.length()>0))C)if((s!=null)&&(s.length()==0))D)if((s==null)||(s.length()==0))[單選題]30.Thead類中能運行線程任務代碼的方法是A)start()B)begin()C)init()D)run()[單選題]31.下面關(guān)于JSP作用域?qū)ο蟮拿枋?錯誤的是()A)request對象可以得到請求中的參數(shù)B)session對象可以保存用戶信息C)application對象可以被多個應用共享D)作用域范圍從小到大是request.session.application[單選題]32.可以將以下哪個值賦給類型char的變量?()A)'A'B)65C)12.5D)"A"[單選題]33.閱讀下列代碼PublicclassTestimplementsRunnable{publicvoidrun(Threadt){System.out.println("Running.");}publicstaticvoidmain(String[]args){Threadtt=newThread(newTest());tt.start();}}代碼運行結(jié)果是()A)將拋出一個異常B)沒有輸出并正常結(jié)束C)輸出"Running"并正常結(jié)束D)程序第2行將出現(xiàn)一個編譯錯誤[單選題]34.在Java中開發(fā)JDBC應用程序時,使用DriverManager類的getConnection()方法建立與數(shù)據(jù)源的連接語句為:Connectioncon=DriverManager.getConnection(?jdbc:odbc:news?);URL連接中的?news?表示的是()(選擇一項)A)數(shù)據(jù)庫中表的名稱B)數(shù)據(jù)庫服務器的機器名C)數(shù)據(jù)源的名稱D)用戶名[單選題]35.跨平臺指的是()文件可以跨平臺。A)源文件B)源程序C)字節(jié)碼D)源代碼[單選題]36.執(zhí)行下列程序結(jié)果是()Strings="計算機工程系";System.out.println(s.length());A)12B)6C)1D)輸出錯誤[單選題]37.下列對多態(tài)的描述中,錯誤的是()A)JAVA語言語序運算符重載B)JAVA語言允許方法重載C)JAVA語言允許變量覆蓋D)多態(tài)性提高了程序的程序的抽象性和簡潔性[單選題]38.閱讀下面程序PublicclassTest2____________{Publicstaticvoidmain(String[]args){Threadt=newTest2();T.start();}Publicvoidrun(){System.out.println("Howareyou.");}在程序下劃線處填入正確選項是()A)extendsThreadB)extendsRunnableC)implementsRunnableD)implementsThread[單選題]39.下列類型轉(zhuǎn)換,不正確的是()A)inta=8.2;B)Stringa=1+"a";C)doublea=(double)4;D)以上都不對[單選題]40.在Java編寫中,編寫一個Applet需要繼承()類。選項.A)MainB)AppletC)ScannerD)Servlet[單選題]41.接口的所有成員方法都具有()修飾的特性A)private,B)public,C)static,D)static[單選題]42.設有數(shù)組的定義int[]a=newint[3],則下面對數(shù)組元素的引用錯誤的是A)a[0];B)a[a.length-1];C)a[3];D)inti=1;a[i];[單選題]43.下面哪個類不能直接讀取磁盤文件:A)FileReaderB)RandomAccessFileC)FilterReaderD)FileInputStream[單選題]44.以下代碼,描述正確的有()interfaceIDemo{publicstaticfinalStringname;1voidprint();2publicvoidgetInfo();3}abstractclassPersonimplementsIDemo{4publicvoidprint(){}}A)第1行錯誤,沒有給變量賦值B)第2行錯誤,方法沒有修飾符C)第4行錯誤,沒有實現(xiàn)接口的全部方法D)第3行錯誤,沒有方法的實現(xiàn)[單選題]45.下面代碼將輸出()行"WelcometoJava"?。Intcount=0;Do{System.out.println("WelcometoJava");}while(count++<10);A)10B)11C)9D)1[單選題]46.下面關(guān)于靜態(tài)同步方法說法錯誤的是()A)靜態(tài)方法必須使用class對象來同步。B)對于靜態(tài)的同步方法而言,該方法的同步監(jiān)視器不是this,而是該類本身。C)靜態(tài)同步方法和以當前類為同步監(jiān)視器的同步代碼塊不能同時執(zhí)行。D)一個類中的多個同步靜態(tài)方法可以同時被多個線程執(zhí)行。[單選題]47.請閱讀下面程序PublicclassTest{PublicTest(){System.out.println(?構(gòu)造方法一被調(diào)用了?);}PublicTest(intx){This();System.out.println(?構(gòu)造方法二被調(diào)用了?);}PublicTest(booleanb){This(1);System.out.println(?構(gòu)造方法三被調(diào)用了?);}Publicstaticvoidmain(string[]args){Testtest=newTest(true);}}上面程序的運行結(jié)果為()A)構(gòu)造方法一被調(diào)用了B)構(gòu)造方法一被調(diào)用了構(gòu)造方法二被調(diào)用了C)構(gòu)造方法一被調(diào)用了構(gòu)造方法二被調(diào)用了構(gòu)造方法三被調(diào)用了D)構(gòu)造方法三被調(diào)用了[單選題]48.設有整型數(shù)組的定義inta[]=newint[8],則a.length的值為()。A)6B)7C)8D)9[單選題]49.聲明成員變量時,如果不使用任何訪問控制符(public,protected,private),則以下哪種類型的類不能對該成員進行直接訪問?A)不同包中的子類B)同一包中的子類C)同一包中的非子類D)同一類[單選題]50.下列選項,用于設置Filter名稱的元素是()A)<filter-mapping>B)<url-pattern>C)<filter>D)<filter-name>[單選題]51.在java.io包的字節(jié)輸人流中,過濾器輸入流的基類是()A)ByteArrayInputStreamB)FilelnputStreamC)PipelnputStreamD)FilterInputStream[單選題]52.自定義異常類MyBadException中,在構(gòu)造函數(shù)publicMyBadException(StringErrorMessage)中要調(diào)用父類的構(gòu)造函數(shù)來進行類的初始化,正確的語句是?A)Exception(ErrorMessage);B)Exceptione=newException(ErrorMessage);C)super(ErrorMessage);D)extends(ErrorMessage);[單選題]53.當在窗體JFrame上任意一個位置單擊鼠標左鍵,即可,以標簽JLabel形式顯示?Helloword.?字符串時,需要用到的監(jiān)聽器是()。A)WindowListenerB)MouseListener正確C)MouseMotionListenerD)ItemListener[單選題]54.下面這個方法實現(xiàn)什么功能()voidblur(char[]z,Stringst){if(z.length<st.length())return;for(inti=0;i<st.length();i++){z[i]=st.charAt(i);}}A)它確定數(shù)組是否包含與String相同的字符。B)它將數(shù)組中的字符復制到String。C)它創(chuàng)建一個包含與String相同字符的新數(shù)組。D)如果數(shù)組中有足夠的空間,則會將字符串中的字符逐個復制到數(shù)組中[單選題]55.實現(xiàn)下列哪個接口,可以啟用比較功能()A)Runnable接口B)Iterator接口C)Serializable接口D)Comparator接口[單選題]56.下列哪個聲明是正確的?A)publicabstractclassCar{}B)protectedprivatenumber;C)abstractfinalclassHI{}D)abstractprivatemove(){}[單選題]57.題目:publicclasstest(2.publicstaticvoidmain(Stringargs[]){3.inti=0xFFFFFFF1;4.intj=~i;5.6.}7.)程序運行到第5行時,j的值為多少?()A)-15B)0C)1D)14E)在第三行的錯誤導致編譯失敗第2部分:多項選擇題,共7題,每題至少兩個正確答案,多選或少選均不得分。[多選題]58.在Java中,下面關(guān)于ArrayList和LinkedList在存儲結(jié)構(gòu)說法正確的有()【選兩項】A)LinkedList鏈表結(jié)構(gòu)B)LinkedList是基于數(shù)組結(jié)構(gòu)C)ArrayList鏈表結(jié)構(gòu)D)ArrayList是基于數(shù)組結(jié)構(gòu)[多選題]59.下列選項中,哪些是HTTP請求消息中請求行的構(gòu)成部分?()()A)請求方式B)資源路徑C)所使用的HTTP協(xié)議版本D)響應方式[多選題]60.下列選項中,屬于標記屬性的是()。A)cospanB)widthC)floatD)rowspan[多選題]61.下列關(guān)于String類和StringBuffer類的說法中,正確的是()A)String類表示的字符串是常量,一旦創(chuàng)建后,內(nèi)容和長度都是無法改變的。而StringBuffer表示字符容器,其內(nèi)容和長度都可以隨時修改B)String類覆蓋了Object類的equals()方法,而StringBuffer類沒有覆蓋Object類的equals()方法C)String類對象可以用操作符?+?進行連接,而StringBuffer類對象之間不能D)String類覆蓋了Object類的toString()方法,而StringBuffer類沒有覆蓋Object類的toString()方法[多選題]62.以下關(guān)于請求方式GET和POST的描述中,哪些是錯誤的()。A)使用GET請求方式傳入的參數(shù)沒有數(shù)據(jù)大小限制B)使用POST請求方式傳入的參數(shù)沒有數(shù)據(jù)大小限制C)使用GET請求方式提交的數(shù)據(jù)在地址欄中不會顯示D)使用POST請求方式提交的數(shù)據(jù)在地址欄中不會顯示[多選題]63.下面有關(guān)私有變量和私有方法的聲明,哪些敘述是對的A)用關(guān)鍵字private修飾的成員變量和方法,稱為私有變量和私有方法B)用關(guān)鍵字protected修飾的成員變量和方法,稱為私有變量和私有方法C)用關(guān)鍵字public修飾的成員變量和方法,稱為私有變量和私有方法D)私有變量不能通過對象直接訪問,只有在本類中創(chuàng)建的自己對象,才能訪問自己的私有變量[多選題]64.關(guān)于異常(Exception),下列描述正確的是?A)異常的基類為Exception,所有異常都必須直接或者間接繼承它B)異??梢杂胻ry{...}catch(Exceptione){...}來捕獲并進行處理C)如果某異常繼承RuntimeException,則該異常可以不被聲明D)異??梢噪S便處理,而不是拋給外層的程序進行處理第3部分:判斷題,共17題,請判斷題目是否正確。[判斷題]65.Java語言只能用一個確定的類型來聲明變量。()選項.A)正確B)錯誤[判斷題]66.使用private關(guān)鍵字限定的方法,不能再使用final關(guān)鍵字限定。()A)正確B)錯誤[判斷題]67.system類中提供的屬性和方法都是靜態(tài)的。A)正確B)錯誤[判斷題]68.有如下三個類classA{...}classBextendsA{...}classCextendsA{...}因為B類和C類不存在繼承關(guān)系,因此他們之間不能進行類型轉(zhuǎn)換。()A)正確B)錯誤[判斷題]69.Java.util.Iterator接口中的hashNext()方法是用來判斷集合中是否存在下一個元素的。A)正確B)錯誤[判斷題]70.String類的對象長度是可以隨意改變的A)正確B)錯誤[判斷題]71.關(guān)于集合List接口繼承了Collection接口以定義一個不允許重復項的有序集合[判斷題]72.私有屬性只能在它所在類中被訪問,為了能讓外界訪問私有屬性,需要提供一些使用public修飾的公有方法。()A)正確B)錯誤[判斷題]73.使用運算符new創(chuàng)建對象時,賦給對象的值實際上是一個引用值。A)正確B)錯誤[判斷題]74.Java語言對內(nèi)存的釋放是采用垃圾自動回收機制。Java虛擬機自動判斷并收集?垃圾?,但一般不會立即釋放它們的存儲空間。()A)正確B)錯誤[判斷題]75.異常處理是在編譯時進行的。()A)正確B)錯誤[判斷題]76.下面說法是否正確volatile關(guān)鍵字能保證線程安全[判斷題]77.設String對象s="Hello",運行語句System.out.println(s.concat("World!"));后String對象s的內(nèi)容為"Helloworld!",所以語句輸出為Helloworld!。A)正確B)錯誤[判斷題]78.用運算符?==?比較字符串對象時,如果兩個字符串的值相同,結(jié)果為trueA)正確B)錯誤[判斷題]79.一般來說,把字符轉(zhuǎn)換成計算機識別的字節(jié)序列稱為解碼,而把字節(jié)序列轉(zhuǎn)換為普通人能看懂的明文字符稱為編碼。A)正確B)錯誤[判斷題]80.在為float類型的變量賦值時,后面必須加字母f或F()A)正確B)錯誤[判斷題]81.只能在構(gòu)造方法中使用this調(diào)用其它的構(gòu)造方法,不能在成員方法中使用。()A)正確B)錯誤第4部分:問答題,共15題,請在空白處填寫正確答案。[問答題]82.java中,方法上如果可能拋出多個異常,多個異??梢允褂?-(中文填寫)隔開。[問答題]83.path環(huán)境變量用于保存一系列命令的路徑,每個路徑之間以()分隔。[問答題]84.Java中的程序代碼都必須在一個類中定義,類使用______關(guān)鍵字來定義。[問答題]85.ResultSet接口中,能將游標移動到此ResultSet對象的上一行的方法是()】。[問答題]86.用Java寫一個二分查找[問答題]87.可以通過--使程序能夠多次鍵盤輸入,每次輸入都進行猜數(shù)字對錯判斷。[問答題]88.在Java中既然有了數(shù)組為什么還要集合?[問答題]89.面向?qū)ο蟮某绦蛟O計技術(shù)具有:()、()和()三個特性。[問答題]90.在邏輯運算符中,運算符|和||表示邏輯或。[問答題]91.JSTL標簽庫是由核心標簽庫、國際化/格式化標簽庫、XML標簽庫、函數(shù)標簽庫和()共同組成。[問答題]92.請寫出下列程序的輸出結(jié)果____。ClassRedCowForm{StaticclassRedCow{//靜態(tài)內(nèi)部類是外嵌類中的一種靜態(tài)數(shù)據(jù)類型Voidspeak(){System.out.println("iamaredcow");}}}ClassBlackCowForm{Publicstaticvoidmain(Stringargs[]){RedCowForm.RedCowred=newRedCowForm.RedCow();Red.speak();}}[問答題]93.假設有2個類People和Student,其中Student繼承People。則用People定義的對象變量可以用()、()類的構(gòu)造方法進行實例化,用Student定義的對象變量可以用()構(gòu)造方法進行實例化。[問答題]94.在JSPModel2架構(gòu)模型有效地實現(xiàn)了頁面顯示、流程控制和()的分離。[問答題]95._________是Java程序中基本的結(jié)構(gòu)單位。[問答題]96.產(chǎn)生事件的對象稱為()。第5部分:填空題,共4題,請在空白處填寫正確答案。[填空題]97.標識符的四種作用域是__________、__________、__________、__________。[填空題]98.運行下列程序,若輸入12345則輸出結(jié)果為_______________________。#include<iostream.h>voidrev(intn){intx;cin>>x;if(n==1)cout<<x;else{rev(n-1);cout<<x;}}voidmain(){rev(5);}[填空題]99.函數(shù)的參數(shù)傳遞的方式分為兩類,分別是__________方式和__________方式。[填空題]100.一個函數(shù)直接或間接地調(diào)用自身,這種現(xiàn)象稱為函數(shù)的__________。1.答案:D解析:2.答案:A解析:3.答案:D解析:4.答案:C解析:5.答案:C解析:6.答案:C解析:一、誤區(qū):簡單認為JAVA靜態(tài)代碼塊在類被加載時就會自動執(zhí)行。證錯如下:[java]viewplaincopyclassMyClass1{static{//靜態(tài)塊System.out.println("staticblock");}}publicclassMain{Class[]classArray={MyClass1.class//這樣引用該類,必然需要將該類加載到虛擬機中};publicstaticvoidmain(String[]args){System.out.println("helloword");}}執(zhí)行結(jié)果:并沒有輸出"staticbolck"二、正解:static塊真正的執(zhí)行時機。如果了解JVM原理,我們知道,一個類的運行分為以下步驟:裝載連接初始化其中裝載階段又三個基本動作組成:通過類型的完全限定名,產(chǎn)生一個代表該類型的二進制數(shù)據(jù)流這個二進制數(shù)據(jù)流為方法區(qū)內(nèi)的內(nèi)部數(shù)據(jù)結(jié)構(gòu)創(chuàng)建一個表示該類型的java.lang.Class類的實例另外如果一個類裝載器在預先裝載的時遇到缺失或錯誤的class文件,它需要等到程序首次主動使用該類時才報告錯誤。連接階段又分為三部分:驗證,確認類型符合Java語言的語義,檢查各個類之間的二進制兼容性(比如final的類不用擁有子類等),另外還需要進行符號引用的驗證。準備,Java虛擬機為類變量分配內(nèi)存,設置默認初始值。(可選的),在類型的常量池中尋找類,接口,字段和方法的符號引用,把這些符號引用替換成直接引用的過程。當一個類被主動使用時,Java虛擬就會對其初始化,如下六種情況為主動使用:當創(chuàng)建某個類的新實例時(如通過new或者反射,克隆,反序列化等)當調(diào)用某個類的靜態(tài)方法時當使用某個類或接口的靜態(tài)字段時當調(diào)用JavaAPI中的某些反射方法時,比如類Class中的方法,或者java.lang.reflect中的類的方法時當初始化某個子類時當虛擬機啟動某個被標明為啟動類的類(即包含main方法的那個類)Java編譯器會收集所有的類變量初始化語句和類型的靜態(tài)初始化器,將這些放到一個特殊的方法中:clinit。實際上,static塊的執(zhí)行發(fā)生在?初始化?的階段。初始化階段,jvm主要完成對靜態(tài)變量的初始化,靜態(tài)塊執(zhí)行等工作。下面我們看看執(zhí)行static塊的幾種情況:1、第一次newA()的過程會打印"";因為這個過程包括了初始化2、第一次Class.forName("A")的過程會打印"";因為這個過程相當于Class.forName("A",true,this.getClass().getClassLoader());3、第一次Class.forName("A",false,this.getClass().getClassLoader())的過程則不會打印""。因為false指明了裝載類的過程中,不進行初始化。不初始化則不會執(zhí)行static塊。7.答案:B解析:8.答案:C解析:9.答案:D解析:break的作用是跳出當前循環(huán)塊(for、while、dowhile)或程序塊(switch)。在循環(huán)塊中的作用是跳出當前正在循環(huán)的循環(huán)體。在程序塊中的作用是中斷和下一個case條件的比較。continue用于結(jié)束循環(huán)體中其后語句的執(zhí)行,并跳回循環(huán)程序塊的開頭執(zhí)行下一次循環(huán),而不是立刻循環(huán)體。示例:publicclassTest{publicstaticvoidmain(Stringargs[]){Testtest=newTest();test.testBreak1();test.testContinue1();test.testBreak2();test.testContinue2();}/***測試continue*continue用來結(jié)束本次循環(huán)*/publicvoidtestContinue1(){System.out.println("測試continue");for(inti=1;i<=5;i++){if(i==3)continue;System.out.println("i="+i);}}/***break用來結(jié)束整個循環(huán)體*/publicvoidtestBreak1(){System.out.println("測試break1");for(inti=1;i<=5;i++){if(i==3)break;System.out.println("i="+i);}}運行結(jié)果:測試break1i=1i=2測試continuei=1i=2i=4i=510.答案:D解析:11.答案:C解析:12.答案:D解析:13.答案:C解析:14.答案:D解析:15.答案:A解析:16.答案:D解析:17.答案:A解析:18.答案:A解析:19.答案:D解析:20.答案:A解析:21.答案:C解析:抽象方法的定義。22.答案:C解析:23.答案:A解析:24.答案:B解析:25.答案:B解析:編譯器在編譯Java程序時,無法預知程序是否存在死鎖現(xiàn)象。26.答案:D解析:27.答案:B解析:28.答案:C解析:29.答案:A解析:30.答案:D解析:31.答案:C解析:32.答案:A解析:33.答案:D解析:34.答案:C解析:1、Oracle8/8i/9i數(shù)據(jù)庫(thin模式)Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();Stringurl="jdbc:oracle:thin:@localhost:1521:orcl";//orcl為數(shù)據(jù)庫的SIDStringuser="test";Stringpassword="test";Connectionconn=DriverManager.getConnection(url,user,password);2、DB2數(shù)據(jù)庫Class.forName("com.ibm.db2.jdbc.app.DB2Driver").newInstance();Stringurl="jdbc:db2://localhost:5000/sample";//sample為你的數(shù)據(jù)庫名Stringuser="admin";Stringpassword="";Connectionconn=DriverManager.getConnection(url,user,password);3、SqlServer7.0/2000數(shù)據(jù)庫(三個jar包:msbase.jar,mssqlserver.jar,msutil.jar)Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";//mydb為數(shù)據(jù)庫Stringuser="sa";Stringpassword="";Connectionconn=DriverManager.getConnection(url,user,password);注意:一個jar包(sqljdbc4.jar)的時候,應該是這樣的,除掉?microsoft?Class.forName("com.jdbc.sqlserver.SQLServerDriver").newInstance();Stringurl="jdbc:sqlserver://localhost:1433;DatabaseName=mydb";35.答案:C解析:實現(xiàn)的跨平臺跟java這個語言的機制有關(guān)系。Java程序源代碼用javac編譯成字節(jié)碼(就是后綴為.class文件),JIT編譯器再把java字節(jié)碼程序編譯成nativecode(本地代碼)程序,最終在對應的機器環(huán)境下執(zhí)行。能做到跨平臺,就在編譯成nativecode這一步實現(xiàn)。不同的JVM通過不同的技術(shù),將java的字節(jié)碼,按照相同的規(guī)范編譯成高效的、對應不同平臺的原生機器碼nativecode,從而實現(xiàn)了同一字節(jié)碼在不同設備上的同樣執(zhí)行,以此實現(xiàn)的跨平臺運行。因此,選項C是正確的。36.答案:B解析:37.答案:A解析:38.答案:A解析:39.答案:A解析:40.答案:B解析:41.答案:B解析:42.答案:C解析:43.答案:C解析:44.答案:A解析:A:第一行報錯。因為publicstaticfinalStringname即全局常量,要初始化。45.答案:B解析:46.答案:D解析:對于同步非靜態(tài)方法而言,該方法的同步監(jiān)視器是this,即調(diào)用該方法的Java對象;對于靜態(tài)的同步方法而言,該方法的同步監(jiān)視器不是this,而是該類本身。它們在類范圍類是同步的,也就是同一時間只能有一個線程可以訪問所有同步靜態(tài)方法中的一個。47.答案:C解析:無。48.答案:C解析:49.答案:A解析:50.答案:D解析:51.答案:D解析:52.答案:C解析:53.答案:B解析:54.答案:D解析:結(jié)果判斷55.答案:D解析:Runnable接口是一個可運行接口,實現(xiàn)接口的抽象方法run(),用于定義線程類;Iterator接口為一種迭代器,用于遍歷集合中的元素;Serializable接口實現(xiàn)對存儲元素

溫馨提示

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

評論

0/150

提交評論