【精品文檔】java基礎(chǔ)點(diǎn)_第1頁
【精品文檔】java基礎(chǔ)點(diǎn)_第2頁
【精品文檔】java基礎(chǔ)點(diǎn)_第3頁
【精品文檔】java基礎(chǔ)點(diǎn)_第4頁
【精品文檔】java基礎(chǔ)點(diǎn)_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

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

文檔簡介

1、Java程序設(shè)計概述1. 開發(fā)Java語言的公司?Sun (Sun Microsystems)太陽微電子公司開發(fā), 后被Oracle公司收購2. Java的3個版本?J2SE(Java2 Standard Edition) 標(biāo)準(zhǔn)版J2EE(Java 2 Platform,Enterprise Edition) 企業(yè)版J2ME(Java 2 Micro Edition) 微小版在5.0以后新版本中稱作:JavaSE JavaEE JavaME3. Java語言的幾個主要特點(diǎn)?平臺無關(guān)性:能運(yùn)行于不同的平臺上安全性:去掉了指針操作,內(nèi)存由操作系統(tǒng)分配面向?qū)ο螅豪妙愂钩绦蚋永诰S護(hù)分布式:可以使

2、用網(wǎng)絡(luò)文件和使用本機(jī)文件一樣容易健壯性:檢查程序編譯和運(yùn)行的錯誤4. Java的三大核心機(jī)制虛擬機(jī)機(jī)制:利用虛擬機(jī)解釋字節(jié)碼執(zhí)行java程序?qū)崿F(xiàn)跨平臺垃圾收集機(jī)制:自動內(nèi)存回收代碼安全性機(jī)制:加載代碼后校驗代碼后再執(zhí)行代碼2. Java語言的開發(fā)環(huán)境1. JDK是什么?JDK(Java Development Kit)Java開發(fā)工具包。包括了JRE,是開發(fā)Java的人員必備的開發(fā)運(yùn)行Java程序的工具。2. JRE是什么?JRE(Java Runtime Environment)Java運(yùn)行環(huán)境,運(yùn)行JAVA程序所必須的環(huán)境的集合,包含JVM標(biāo)準(zhǔn)實現(xiàn)及Java核心類庫。 3. JV

3、M是什么?JVM (Java Virtual Machine) Java虛擬機(jī),它是一個虛構(gòu)出來的計算機(jī),是通過在實際的計算機(jī)上仿真模擬各種計算機(jī)功能來實現(xiàn)的。4. 安裝JDK的操作系統(tǒng)問題?必須針對于不同的操作系統(tǒng)下載安裝不同的JDK,例如windows下安裝針對于windows的JDK,linux下安裝針對于linux的JDK。5. 需要配置的相關(guān)環(huán)境變量?path:用于搜索外部命令,例如編譯程序的javac命令,執(zhí)行程序的java命令classpath:用于搜索類,即class文件,例如可以在不同的位置執(zhí)行類文件6. 配置環(huán)境變量的方式?有兩種:臨時配置和持久配置臨時配置:在命令行下用s

4、et 變量名=變量值,僅在當(dāng)前命令行窗口有效持久配置:在我的電腦屬性中配置,持久有效7. 可以編寫Java程序的常見開發(fā)工具?記事本,EditPlus,ULTRAEDIT,Eclipse,Jbuilder,NetBeans8. Java文件的類型?有兩種:擴(kuò)展名為java的文件:是Java源文件,屬于編譯之前的純文本文件,存儲java源代碼。擴(kuò)展名為class的文件:是Java類文件,屬于編譯之后的二進(jìn)制文件,存儲字節(jié)碼。9. Java的編譯運(yùn)行原理?首先編寫java源文件,然后編譯成class類文件,然后通過虛擬機(jī)解釋成機(jī)器碼到硬件執(zhí)行。10. Java是編譯型語言還是解釋型的語言?既不是完

5、全編譯型,也不是完全解釋型,是半編譯半解釋的。3. Java程序的基本結(jié)構(gòu)1. Java語言區(qū)分大小寫嗎?區(qū)分,不管是數(shù)據(jù)還是標(biāo)識符或者關(guān)鍵字都區(qū)分大小寫,例如public不能寫成Public, “abc”不能寫成”ABC”,int i不能寫成INT I等等。 2. main方法是作什么用處的?這是程序的入口方法,是由虛擬機(jī)自動調(diào)用的。 3. 語句必須用分號結(jié)束嗎?必須的,但是代碼塊可以用分號結(jié)束,也可以不用分號結(jié)束4. Java中有幾種注釋,各自的功能有三種:單行注釋/:加在行首只能注釋一行多行注釋/* */:注釋多行,但不能嵌套使用文檔注釋/* */:用于生成HTML形

6、式的文檔,需要配合javadoc命令實現(xiàn)5. Java語言的數(shù)據(jù)類型是強(qiáng)類型還是弱類型?是強(qiáng)類型,意味著每一個變量都必須明確聲明數(shù)據(jù)類型。6. Java語言中數(shù)據(jù)類型的劃分?有什么區(qū)別?分成基本類型和引用類型兩大類?;绢愋停河?種,只能存儲單一的值,不以對象的形式存在引用類型:除了基本類型之外其他的都是引用類型,能夠存儲復(fù)雜數(shù)據(jù)類型,以對象的形式存在7. 基本類型都有哪8種類型?布爾類型:boolean 占1字節(jié)字符類型:char 占2字節(jié)整型:byte 占1字節(jié) short 占2字節(jié) int 占4字節(jié) long 占8字節(jié)浮點(diǎn)型:float 占4字節(jié) double 占8字節(jié)8. 布爾值可不可

7、以用0或者非0數(shù)代替?不可以,布爾值只能是true和false,不能使用數(shù)字,這和C語言是不一樣的。9. 直接寫個整數(shù)10默認(rèn)是什么類型的?整型的直接量例如10,100等默認(rèn)的數(shù)據(jù)類型都是int型10. 如何讓一個整型的直接量變成long型的?在直接量后面加大寫L后者小寫l,例如10L11. 整型數(shù)據(jù)在程序中直接使用可以使用什么進(jìn)制?10進(jìn)制,8進(jìn)制,16進(jìn)制,但不能使用二進(jìn)制12. 浮點(diǎn)運(yùn)算在Java中有沒有誤差?有誤差,所以精密運(yùn)算請使用BigDecimal類13. 直接寫一個3.14的直接量是什么數(shù)據(jù)類型的?是double型,如果想表示是float的3.14必須寫成3.14F或者3.14

8、f,double型的3.14也可以寫成3.14D14. char型采取的是什么類型的字符集?是Unicode全球統(tǒng)一編碼,支持任何世界上官方的語言中的字符15. 常見的轉(zhuǎn)義字符有哪些?轉(zhuǎn)義序列名稱b 退格t 制表n 換行r 回車”雙引號單引號 反斜杠1. 常見的Unicode字符對應(yīng)的編碼?大寫的A到Z是對應(yīng)65到90,小寫的a到z是對應(yīng)97到122,字符0到9是對應(yīng)48到572. 空字符是不是用”(兩個并列的單引號)來表示?不是,空字符用u0000來表示,兩個并列的單引號什么也不是。 3. 點(diǎn),分號,花括號的各自的作用?點(diǎn)的作用有兩

9、個:一個是使用類或?qū)ο笾械某蓡T,用對象.成員,再一個就是包名和子包名之間的分隔符,例如頂層包名.子包名分號的作用是表示語句結(jié)束花括號的作用是代表一個語句塊4. 語句和關(guān)鍵字之間可以有任意的空白嗎?可以的,例如System.out.            println(100);就是正確的語句,但是關(guān)鍵字本身不能加空白或換行 5. 標(biāo)識符是什么?標(biāo)識符就是指在程序中給包,類,接口,方法,變量起的名字 6. 標(biāo)識符有什么起名規(guī)則?1. 應(yīng)以字母、下劃線、美元

10、符開頭2. 后跟字母、下劃線、美元符或數(shù)字3. 不能用關(guān)鍵字和保留字4. 嚴(yán)格區(qū)分大小寫5. 名稱長度沒有限制7. 中文的變量名可以嗎?是可以的,例如 int 數(shù)字 = 10;這個語句是正確的。因為java中采取Unicode字符集,所以任何的Unicode中的字符都可以作為標(biāo)識符的名稱,但考慮字符集的支持問題推薦還是使用英文字母命名。8. 關(guān)鍵字和保留字有區(qū)別嗎?在1.5后沒有區(qū)別,都被稱作關(guān)鍵字,但是1.5之前認(rèn)為關(guān)鍵字是在Java中有特殊用途的不允許編程人員擅自改作其他用途,而保留字是在Java中沒有特殊用途但不允許編程人員擅自改作其他用途,按此說法goto和const應(yīng)該是此意義上的保

11、留字。9. true,false,null可以用作標(biāo)識符命名嗎?不可以,這3個雖然不是關(guān)鍵字,但都是有特殊用途的值,也不能作為標(biāo)識符命名 10. 一條聲明語句可以聲明多個變量嗎?可以的,例如以下聲明都是正確的    int i;    int i,j;    int i = 10,j;    int i,j = 10;    int i = 10,j = 20; 1. 變量在沒

12、有賦值的情況下可以使用嗎?不可以,變量沒有賦值使用會報出變量未初始化的編譯錯誤。2. 常量有什么特點(diǎn)?在聲明變量的時候加上final修飾符即為常量,表示這個變量只能被賦一次值。 3. 算數(shù)運(yùn)算符有哪些?基本算數(shù)運(yùn)算符有+ * / % + 4. 單目運(yùn)算符,雙目運(yùn)算符,三目運(yùn)算符都是什么意思?其實也有叫一元運(yùn)算符,雙元操作符,三元操作符的,指的是有幾個操作數(shù)形成一個完整表達(dá)式,例如+就是一個單目運(yùn)算符,只需要一個操作數(shù)就可以形成表達(dá)式,像i+,而+運(yùn)算符就是雙目運(yùn)算符,需要兩個操作數(shù)形成表達(dá)式,例如5 + 3,還有三目運(yùn)算符,例如5 > 3 ? 0 : -15. +和放在前面和放

13、在后面有什么區(qū)別?如果是在一個表達(dá)式中,那+放后面表示先運(yùn)算表達(dá)式,然后再進(jìn)行自增運(yùn)算,如果在一個表達(dá)式中,+放前面,則表示先進(jìn)行自增運(yùn)算然后在運(yùn)算表達(dá)式。同樣道理。 1. -5 % 2等于幾,5 % -2等于幾?-5 % 2等于-1,5%-2等于1,運(yùn)算得到是正數(shù)還是負(fù)數(shù)取決于第一個操作數(shù)的符號2. 5 / 2 結(jié)果是不是2.5?不是,是2,因為5和2都是int類型,所以不可能得到double型的結(jié)果。3. 比較運(yùn)算符有哪些?有> < >= <= = != 六項基本比較運(yùn)算4. 任何數(shù)據(jù)類型都可以使用> < >= <=運(yùn)算符嗎?不是所

14、有數(shù)據(jù)類型,例如true>false這個表達(dá)式就是編譯錯誤,布爾類型和引用類型的表達(dá)式只能用=和!=兩個比較運(yùn)算,例如“abc” <= “xyz” 這個表達(dá)式也是編譯錯誤的5. a > b這個表達(dá)式編譯正確嗎?編譯正確,a和b是字符類型,內(nèi)部用Unicode編碼表示的話a是97,b是98,所以實際上比較的是97>98,結(jié)果為false6. 邏輯運(yùn)算符有哪些?有 &邏輯與,|邏輯或,!邏輯非, 異或,&& 短路與,|短路或7. 邏輯與,邏輯或和短路與,短路或有什么區(qū)別?邏輯與和短路與的區(qū)別是:· 如果是邏輯與&,不管第一個表達(dá)式是

15、true還是false,都會執(zhí)行第二個表達(dá)式,例如a > b & x < y,即使a > b為false,也會執(zhí)行x > y· 如果是短路與&&,如果第一個表達(dá)式為false,將不會執(zhí)行第二個表達(dá)式例如a > b && x < y,如果a > b為false,就不會執(zhí)行x > y            以此類推,邏輯或和短路或的區(qū)別是: · 如果是邏輯或|,不管第一個表

16、達(dá)式是true還是false,都會執(zhí)行第二個表達(dá)式 · 如果是短路或|,如果第一個表達(dá)式為true,將不會執(zhí)行第二個表達(dá)式  1. 與或非三個邏輯運(yùn)算符的優(yōu)先級是怎么排列的?“非”優(yōu)先級最高,”與”其次,”或”優(yōu)先級最低2. 原碼,反碼,補(bǔ)碼分別是什么意思?· 原碼:將數(shù)字轉(zhuǎn)換為二進(jìn)制,第一位為符號位,正數(shù)為0,負(fù)數(shù)為1 例如:12的原碼是00001100 -12的原碼是10001100 · 反碼:正數(shù)的反碼和原碼相同,負(fù)數(shù)的反碼將原碼符號位之外的位逐位取反 例如:12的反碼是00001100 -12的反碼是11110011 · 補(bǔ)碼:正數(shù)的補(bǔ)

17、碼和原碼相同,負(fù)數(shù)的補(bǔ)碼將反碼加1 例如:12的補(bǔ)碼是00001100 -12的補(bǔ)碼是11110100 最后強(qiáng)調(diào)一點(diǎn),計算機(jī)存儲數(shù)據(jù)用補(bǔ)碼形式來存儲。 1. 位運(yùn)算符都有哪些?&與 |或 異或 非 >>右移 <<左移 >>>無符號右移2. 1<<35怎么理解?1是int類型是32位,所以需要把35%32=3,所以事實上是和執(zhí)行1<<3等價的3. 數(shù)據(jù)類型轉(zhuǎn)換需要遵循什么原則?小類型向大類型轉(zhuǎn)換,是自動轉(zhuǎn)換的,或者說隱式轉(zhuǎn)換的大類型向小類型轉(zhuǎn)換,是需要強(qiáng)制轉(zhuǎn)換的,或者說顯式轉(zhuǎn)換4. byte b = 10這個語句是正確的,

18、為什么10是int型比byte大還不需要強(qiáng)制轉(zhuǎn)換呢?因為在java中做了特殊處理,其中規(guī)定byte,short,char類型可以直接賦予int類型的直接量,例如:byte b = 10;short s = 10;char c = 10;以上賦值語句都是正確的。 1. byte b = (byte) true;這個轉(zhuǎn)換成立嗎?不成立,布爾值和數(shù)字是不兼容的,不能作任何轉(zhuǎn)換。2. int i = (int) “100;這個轉(zhuǎn)換成立嗎?不成立,引用類型和基本類型是不能直接強(qiáng)制轉(zhuǎn)換的,需要用包裝類的方法來轉(zhuǎn)換。3. char型和short型哪個比較大?不能說哪個大,哪個小,這兩個類型char

19、的取值是從065535,而short類型的取值是-3276832767,這個兩個類型之間的轉(zhuǎn)換都需要強(qiáng)制轉(zhuǎn)換。4. 字符串是不是基本類型?不是,String是java.lang包中的一個類,是引用類型的,8種基本類型中沒有一個是String類型。5. 空字符串用什么來表示?用“”(兩個并列的雙引號)表示,代表0個長度的字符串對象。 6. String s = “”;和String s = null;有什么區(qū)別?第一個表示s被賦值,指向了一個字符串對象,第二個表示s沒有指向任何對象實例,是真空7. 兩個字符串用什么運(yùn)算符可以連成一個字符串?用+運(yùn)算符,例如“abc” + “xyz”最后

20、的結(jié)果就是”abcxyz“ 8. 數(shù)學(xué)運(yùn)算符加法和字符串連接符都是+,怎么區(qū)分?是通過運(yùn)算符兩邊的操作數(shù)來判斷的,如果兩邊的操作數(shù)都是數(shù)字型的基本類型,則進(jìn)行數(shù)學(xué)運(yùn)算,如果兩邊的操作數(shù)有一個是字符串,則把另一個操作數(shù)也轉(zhuǎn)換為則進(jìn)行字符串連接運(yùn)算。 9. 判斷字符串內(nèi)容相同用什么方法?用equals方法判斷內(nèi)容相同,=只能判斷引用是否相同 10. 提供用戶輸入使用哪個類使用javav.util.Scanner類11. if語句可以用if(-1)形式判斷嗎?不可以,數(shù)字不能代替布爾值12. if語句和循環(huán)語句的花括號什么時候可以省略?當(dāng)執(zhí)行的語句只有一句的時候

21、0;13. switch語句有哪些規(guī)則?表達(dá)式expr的返回值必須是下述幾種類型之一:int, byte, char, short或枚舉常量;case子句中的值必須是常量,且所有case子句中的值應(yīng)是不同的,也必須是下述幾種類型之一:int, byte, char, short或枚舉常量default子句是任選的;break語句用來在執(zhí)行完一個case分支后使程序跳出switch語句塊; 14. 對于退出循環(huán)break和continue有什么區(qū)別?break是退出整個循環(huán)continue是退出當(dāng)前循環(huán)繼續(xù)下一次循環(huán)15. 聲明數(shù)組創(chuàng)建數(shù)組的方法?以下聲明都是合法的:int a;int

22、 a;String a;以下創(chuàng)建數(shù)組對象都是合法的:int a = new int3;int a = 1,2,3;int a = new int 1,2,3;16. int x和String s這兩個數(shù)組對象,哪個是基本類型,哪個是引用類型?兩個都是數(shù)組對象,都是引用類型的17. 數(shù)組元素下標(biāo)最小是多少,最大是多少,超出范圍會怎么樣?最小是0,最大是數(shù)組元素個數(shù)減一,超出范圍將會出現(xiàn)下標(biāo)越界異常18. 得到數(shù)組長度用length屬性還是length()方法?是length屬性,得到字符串長度才有l(wèi)ength方法19. 聲明int a = new int3,a是一個二維數(shù)組,a0本身是什么類型的

23、?二維數(shù)組的元素都是一維數(shù)組,a0是int類型的20. 數(shù)組的大小一經(jīng)創(chuàng)建可不可以改變大小了?不可以,數(shù)組是定長的,一經(jīng)創(chuàng)建就不能再改變大小了21. 可以把2個int型,3個double型,4個String型的值放到一個數(shù)組中嗎?不可以,數(shù)組的元素類型必須是相同類型的。22. java中的多維數(shù)組必須是要形成矩陣排列嗎?不一定,也可以是不規(guī)則的。23. 操作數(shù)組比較方便的實用類?java.util.Arrays類提供了很多關(guān)于數(shù)組的實用方法。1. 對象和類1. OOP是什么意思?OOA 面向?qū)ο蠓治鯫OD 面向?qū)ο笤O(shè)計Object Oriented Programming(面向?qū)ο缶幊?2.

24、類和對象的區(qū)別?類:對象的藍(lán)圖,生成對象的模板,是對一類事物的描述,是抽象的概念上的定義對象:對象是實際存在的該類事物的每個個體,因而也稱為實例3. 類之間的3種關(guān)系?依賴關(guān)系(uses-a)聚集關(guān)系(has-a)繼承關(guān)系(is-a)4. 一個java源文件可以寫多個類嗎?可以,但必須只能有一個公有類,并且文件名和公有類的類名相同。5. 類中有哪些成員?有屬性(數(shù)據(jù)域),方法,構(gòu)造器(構(gòu)造方法)6. 構(gòu)造方法和普通方法的區(qū)別?構(gòu)造方法沒有返回值,方法名必須和類名相同,需要用new語句調(diào)用構(gòu)造方法。7. 普通方法可不可以也類名作為方法名?是可以的,因為調(diào)用普通方法的語法和調(diào)用構(gòu)造器的語法不一樣。

25、8. 一個構(gòu)造器調(diào)用另外一個構(gòu)造器需要用什么語法?用this()語法調(diào)用另外一個重載構(gòu)造器,需要注意的是調(diào)用語句必須是構(gòu)造器中的第一句9. 什么時候虛擬機(jī)會自動添加一個默認(rèn)構(gòu)造器?當(dāng)類中沒有顯式定義任何構(gòu)造器的時候,虛擬機(jī)會自動添加一個無參的構(gòu)造器10. 實例成員和靜態(tài)成員的區(qū)別?實例成員:是屬于對象實例的,用對象.成員名稱語法調(diào)用靜態(tài)成員:和對象實例無關(guān),是屬于類本身的,用類名.成員名稱語法調(diào)用 11. 靜態(tài)初始化塊statci的執(zhí)行時機(jī)是什么時候?在類被加載的時候,僅執(zhí)行一次。12. 靜態(tài)方法可不可以直接調(diào)用同一個類中的非靜態(tài)方法?不可以,靜態(tài)方法不能直接調(diào)用一個非靜態(tài)成員,需要

26、用對象調(diào)用。13. 包是什么?包實際上就是物理上的文件夾,可以把類放到不同的包中。14. 把一個類放到包中,需要在類中加上什么語句?需要加上包聲明package語句,必須寫在源文件的第一句。15. 什么時候需要導(dǎo)入類?用什么語句?當(dāng)使用的類和當(dāng)前類并不在同一個包中的時候,用import語句導(dǎo)入。16. 默認(rèn)包中的類可以導(dǎo)入嗎?不可以,不在默認(rèn)包中的類無法使用默認(rèn)包中的類。17. java中哪個包中的類是自動導(dǎo)入的?java.lang包18. 什么叫做完整類名?頂層包名.子包名.類名19. 靜態(tài)導(dǎo)入語句有什么作用?在使用類中的靜態(tài)成員的時候前面不需要加類名前綴。20. 局部變量和全局變量的區(qū)別?

27、區(qū)別局部變量全局變量聲明位置方法或塊內(nèi)部方法外類內(nèi)部訪問權(quán)限修飾符沒有訪問權(quán)限有訪問權(quán)限默認(rèn)值沒有默認(rèn)值有默認(rèn)值使用形式直接使用對象調(diào)用作用域在方法或語句塊內(nèi)部整個類生命周期進(jìn)入方法或語句塊創(chuàng)建退出方法或語句塊銷毀隨著對象的創(chuàng)建而創(chuàng)建隨著對象的銷毀而銷毀1. 賦值語句賦給目標(biāo)的是值還是引用?如果是基本類型則賦的是值本身,引用類型則賦的是引用地址1. 繼承和多態(tài)1. 類的繼承是誰繼承誰?是子類繼承了父類,子類也稱為派生類,父類也稱為超類或基類2. 子類繼承了父類的什么東西?子類可以繼承父類的數(shù)據(jù)域(屬性),方法,但構(gòu)造器不能繼承3. 私有成員能被子類繼承嗎?能繼承,但是由于訪問權(quán)限的控制,在子類

28、中不能直接使用父類的私有成員4. Object是什么類?這個所有類的根類,任何類如果沒有寫顯式的繼承語句,默認(rèn)都是直接繼承Object類的5. java中是單繼承還是多繼承?是單繼承,一個子類只能有一個父類6. 訪問權(quán)限修飾符有幾種,訪問的范圍又是多大?7. 覆蓋方法的規(guī)則有哪些?8. 參數(shù)列表是否相同從哪幾方面看?9. 覆蓋方法的規(guī)則有哪些? 10. 可變長參數(shù)的聲明格式是什么?實際上是什么類型的?類型 變量,實際上是一個一維數(shù)組11. this和super是作什么用處的?this:本身代表當(dāng)前的對象引用,可以用this.成員名稱調(diào)用當(dāng)前對象的屬性和方法,如果屬性和局部變量重名,可

29、以用this.屬性名和局部變量區(qū)分開。也可以用this()語法調(diào)用本類重載構(gòu)造器。super:本事是一個特殊關(guān)鍵字,可以用super.成員名稱調(diào)用從父類繼承的屬性和方法,也可以用super()語法調(diào)用父類構(gòu)造器。12. super代表子類中的父類對象引用嗎?不,這個錯誤的說法,super不代表任何對象引用,僅僅是一個關(guān)鍵字13. 什么時候子類構(gòu)造器會自動調(diào)用父類無參構(gòu)造器?當(dāng)子類構(gòu)造器中沒有任何顯式構(gòu)造器調(diào)用的時候,即既沒有this()調(diào)用也沒有super()調(diào)用的時候14. 一個父類類型的引用變量可以引用一個子類的實例嗎?可以,這個引用變量是一個多態(tài)對象15. 多態(tài)對象有什么特點(diǎn)?多態(tài)對象只

30、能使用父類的成員,但如果多態(tài)對象使用了被子類覆蓋的方法,則會動態(tài)綁定使用子類的成員,稱為虛擬方法調(diào)用16. 引用類型之間的類型轉(zhuǎn)換需要遵循哪些規(guī)則?自動轉(zhuǎn)換:從子類到父類的類型可以自動轉(zhuǎn)換強(qiáng)制轉(zhuǎn)換:從父類到子類的類型要強(qiáng)制轉(zhuǎn)換無繼承關(guān)系的類型轉(zhuǎn)換是非法的17. instanceof操作符是作什么用處的?可以判斷一個對象的類型是否是某一個類的類型或子類,也可以判斷這個對象的類型是否是一個接口的實現(xiàn)類18. toString方法什么時候會自動被調(diào)用?在打印語句中傳入引用類型的對象或者對象和字符串作連接時19. 默認(rèn)的equals方法實現(xiàn)的是比較內(nèi)容還是比較引用地址?在Object中是比較引用地址。

31、20. 覆蓋equals方法和hashCode方法有什么規(guī)則?必須保證當(dāng)兩個對象equals比較為true的時候,返回的hashCode相同,當(dāng)比較為false的時候,返回的hashCode不同21. java中有幾個包裝類?有8個包裝類,正好對應(yīng)8種基本數(shù)據(jù)類型。 分別是:Boolean Byte Short Integer Long Character Float Double22. 裝箱和拆箱分別是什么意思?裝箱指的是把基本類型包裝成包裝類的引用類型拆箱指的是把包裝類形式的引用類型轉(zhuǎn)換為基本類型例如:Integer objInt = new Integer(10);/裝箱 &#

32、160;  int i = objIValue();    /拆箱23. JDK1.4和1.5的裝箱和拆箱有什么區(qū)別?自動拆裝箱,例如:Integer intObj = 10;/自動裝箱int i = intObj + 5;/自動拆箱24. final修飾符如何使用,使用了final修飾符有什么特點(diǎn)? 25. abstract修飾符如何使用,使用了abstract修飾符有什么特點(diǎn)?26. abstract不能和哪些修飾符配合使用?不能和private,static,final一起使用 27. 可以在非抽

33、象方法中調(diào)用抽象方法嗎?可以,模板方法設(shè)計模式就是典型的這種調(diào)用2. 泛型程序設(shè)計1. 泛型的特點(diǎn)是什么?主要特點(diǎn)是類型參數(shù)化,后期綁定數(shù)據(jù)類型2. 泛型支持基本類型嗎?不支持,只支持引用類型3. 如果沒有傳入類型參數(shù),默認(rèn)是什么類型?默認(rèn)是Object類型4. 泛型方法有什么特點(diǎn)?將泛型參數(shù)聲明在方法中,調(diào)用方法的時候綁定泛型5. 泛型類聲明泛型參數(shù)的時候,<T extends A類型>表示什么意思?表示綁定的類型必須是A類型后者是A類型的子類或?qū)崿F(xiàn)類 3. 接口和內(nèi)部類1. 聲明一個接口的關(guān)鍵字是什么?interface關(guān)鍵字2. 接口中的成員有什么特點(diǎn)?數(shù)據(jù)域必須是

34、(public static final修飾)公有靜態(tài)常量方法必須是(public abstract修飾)公有抽象沒有構(gòu)造方法3. 接口能創(chuàng)建對象實例嗎?不能,接口沒有構(gòu)造器,不能創(chuàng)建對象4. 接口和類的關(guān)系?接口和類之間是實現(xiàn)關(guān)系,一個類用implements語句實現(xiàn)了某接口,這個類被稱為接口的實現(xiàn)類,一個類可以實現(xiàn)多個接口,一個類實現(xiàn)了某接口,必須覆蓋這個接口中的所以方法,否則這個類必須是個抽象類5. 接口和接口的關(guān)系?6. 內(nèi)部類如何定義?一個類聲明在另一個類的里面,這個類就被稱為內(nèi)部類,而外面的類被稱為外部類7. 內(nèi)部類可以分成幾種?實例內(nèi)部類:聲明在方法外邊沒有static修飾符靜態(tài)

35、內(nèi)部類:聲明在方法外邊有static修飾符局部內(nèi)部類:聲明在方法里邊1. 如何在實例內(nèi)部類中訪問外部類的成員?在實例內(nèi)部類中可以直接使用外部類的成員,不需要創(chuàng)建外部類的對象實例,但是如果在內(nèi)部類中的成員名稱屏蔽隱藏了外部類的成員(即外部類和內(nèi)部類的成員名相同),則需要用”外部類名.this.成員名”訪問外部類成員 1. 異常處理1. 異常的對象的根類是哪個類?是Throwable類2. Throwable類有哪兩個分支?分成Error類和Excepion類兩個分支Error類表示嚴(yán)重錯誤Exception類表示可以在程序中處理的錯誤3. Exception類有哪兩個分支?分成運(yùn)行時異

36、常和非運(yùn)行時異常(已檢查異常)運(yùn)行時異常編譯不檢查,在運(yùn)行時才會發(fā)生異常已檢查異常編譯時就會作檢查,不處理異常則通不過編譯4. 如果在try塊中發(fā)生異常,那么程序?qū)D(zhuǎn)到哪?會跳轉(zhuǎn)到catch語句塊5. catch語句可以用父類類型捕獲子類異常嗎?因為有多態(tài)特點(diǎn),是可以的6. 處理異常代碼finally語句會在什么時候執(zhí)行?finally代碼在任何時候都會執(zhí)行,不管有沒有發(fā)生異常。7. 如何聲明已檢查異常,由誰來處理這個異常?用throws語句來聲明一個已檢查異常,由方法的調(diào)用者來處理這個異常8. 如何拋出一個異常?用throw語句拋出9. 如何創(chuàng)建一個自定義的異常類?創(chuàng)建一個類,只要讓它繼

37、承任何一個現(xiàn)有的異常類就可以了10. 覆蓋方法對于異常有什么要求?覆蓋方法不能比父類方法拋出更多異常2. 反射,代理,標(biāo)注1. 獲得一個類型的Class對象有哪幾種途徑?方法1:對象.getClass()方法2:類型名.class方法3:Class.forName()2. 反射相關(guān)的類型都有哪些?Class 代表一個運(yùn)行時類Field 代表一個類的屬性Method 代表一個類的方法Constructor 代筆一個類的構(gòu)造器3. 如何聲明一個自定義標(biāo)注?<修飾符> interface <標(biāo)注名>返回值方法名稱();返回值方法名稱();例如:public interface

38、 MyComment int id();String info(); 4. java有幾個內(nèi)置標(biāo)注?有3個Override用于修飾此方法覆蓋了父類的方法,而非重載。Deprecated用于修飾已經(jīng)過時的方法。SuppressWarnings用于通知Java編譯器禁止特定的警告。3. java常用類1. 字符串String是可變類還是不可變類?是不可變類,一經(jīng)創(chuàng)建就不能修改其內(nèi)容了2. 字符串的常用方法有哪些?charAt方法:可以返回指定位置的字符substring方法:可以截取子字符串length方法:返回字符串長度indexOf方法:查找子串的位置lastIndexOf方法:反向

39、搜索字串的位置replaceAll方法:替換字符串split方法:分解字符串toLowerCase, toUpperCase方法:字符串大小寫轉(zhuǎn)換3. StringBuffer類和String類有什么區(qū)別?StringBuffer是可變類,String是不可變類4. StringBuffer類和StringBuilder類有什么區(qū)別?StringBuffer類是線程安全的,StringBuilder類是線程不安全的5. Math類主要提供了哪些方法?Math類提供了大量的和數(shù)學(xué)運(yùn)算相關(guān)的靜態(tài)方法6. Set集合和List集合共同的父接口是什么?是Collection集合7. Set集合和Lis

40、t集合有什么區(qū)別?Set: Collection的子接口,不記錄元素的保存順序,且不允許有重復(fù)元素List: Collection的子接口,記錄元素的保存順序,且允許有重復(fù)元素8. ArrayList和LinkedList有什么不同?ArrayList 的內(nèi)部實現(xiàn)是基于內(nèi)部數(shù)組Object,所以從概念上講它更像數(shù)組LinkedList的內(nèi)部實現(xiàn)是基于一組連接的記錄,所以它更象一個鏈表結(jié)構(gòu),所以它們在性能上有很大的差別。ArrayList 隨機(jī)訪問比較塊,但插入和刪除元素比較慢LinkedList但插入和刪除元素比較快,但隨機(jī)訪問比較慢9. HashTable和HashMap有什么不同?Hash

41、Table是線程安全的,HashMap是線程不安全的10. Vector和ArrayList有什么不同?Vector是線程安全的ArrayList是線程不安全的4. IO流1. 流分成哪兩類?按照單位劃分分成字節(jié)流和字符流。按輸入輸出分成輸入流和輸出流2. 和文件流相關(guān)的有那幾個類?FileInputStream文件輸入字節(jié)流FileOutputStream文件輸出字節(jié)流FileReader文件輸入字符流FileWriter文件輸出字符流3. 文件流操作應(yīng)該用字節(jié)流還是字符流?如果是純文本文件應(yīng)該用字符流如果是二進(jìn)制文件應(yīng)該用字節(jié)流4. 文件操作用哪個類?用java.io.File類GUI圖形

42、編程5. 線程1. 創(chuàng)建一個線程類的兩種方式?繼承Thread類實現(xiàn)Runnable接口2. 線程體應(yīng)該放在哪個方法里面?run方法3. 啟動新的線程用什么方法?用start方法4. 一個線程對象能夠用start多次啟動嗎?不可以,一個線程方法只能start一次5. 線程有哪幾種主要狀態(tài)?有四種,分別是:新生狀態(tài),可運(yùn)行狀態(tài),阻塞狀態(tài),死亡狀態(tài)6. 線程的同步需要用什么方法?舊的方法是用synchronized關(guān)鍵字新的方法是用ReentrantLock類的lock和unlock方法this關(guān)鍵字和super關(guān)鍵字的區(qū)別?this作用:1. 代表當(dāng)前對象2. 區(qū)別同名屬性和形參3. 在本類構(gòu)造器中調(diào)用其他被重載的構(gòu)造器。this不能用在靜態(tài)方法中。super作用:1. 調(diào)用(被子類隱藏的)父類的屬性2. 調(diào)用(被子類重寫的)父類的方法3. 在子類構(gòu)造器中調(diào)用父類的構(gòu)造器,必須寫在第一句super不

溫馨提示

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

最新文檔

評論

0/150

提交評論