第一階段題庫(kù)
基礎(chǔ)知識(shí)部分:
1. JDK是什么?JRE是什么?
a) 答:JDK:java開發(fā)工具包。JRE:java運(yùn)行時(shí)環(huán)境。
2. 什么是java的平臺(tái)無(wú)關(guān)性?
a) 答:Java源文件被編譯成字節(jié)碼的形式,無(wú)論在什么系統(tǒng)環(huán)境下,只要有java虛
擬機(jī)就能運(yùn)行這個(gè)字節(jié)碼文件。也就是一處編寫,處處運(yùn)行。這就是java的跨平臺(tái)性。
3. 在一臺(tái)電腦上配置java環(huán)境,path起什么作用?如何配置?
a) 答:path的作用是在DOS環(huán)境下,能在任意位置使用JDK目錄中bin文件夾中的
可執(zhí)行程序,來(lái)編譯執(zhí)行java程序。
b) 在環(huán)境變量中找到path變量,把bin文件夾的絕對(duì)路徑加上即可。
4. 什么樣的標(biāo)識(shí)符是合法的?
a) 由字母、數(shù)字、_和$組成,長(zhǎng)度不限。其中字母可以是大寫或小寫的英文字母,數(shù)
字為0到9。
b) 標(biāo)識(shí)符的第一個(gè)字符不能是數(shù)字。
c) 標(biāo)識(shí)符區(qū)分大小寫。
d) 標(biāo)識(shí)符不能包含空格。
5. Java有幾種基本數(shù)據(jù)類型?
a) byte,short,int,long,char,boolean,float,double
6. 什么是隱式類型轉(zhuǎn)換?什么是顯示類型轉(zhuǎn)換?
a) 當(dāng)將占位數(shù)少的類型賦值給占位數(shù)多的類型時(shí),Java自動(dòng)使用隱式類型轉(zhuǎn)換。 b) 當(dāng)把在級(jí)別高的變量的值賦給級(jí)別底變量時(shí),必須使用顯示類型轉(zhuǎn)換運(yùn)算。
7. &&和&區(qū)別,||和|區(qū)別?
a) &&和||是短路與,短路或,當(dāng)左邊的表達(dá)式能判斷當(dāng)前結(jié)果,則不判斷右邊的表
達(dá)式。
b) 而& 和|則將兩邊的表達(dá)式都運(yùn)算完畢后,再算結(jié)果。
8. break,continue區(qū)別?
a) break結(jié)束最近的一個(gè)循環(huán),continue結(jié)束當(dāng)次循環(huán),進(jìn)入下次循環(huán)。
9. 類的命名規(guī)則是什么?
a) 如果類名使用拉丁字母,那么名字的首寫字母使用大寫字母。
b) 類名最好見名得意,當(dāng)類名由幾個(gè)單詞復(fù)合而成時(shí),每個(gè)單詞的首寫字母使用大寫。
10. 類體的內(nèi)容由兩部分構(gòu)成,哪兩部分?
a) 一部分是變量的定義,用來(lái)刻畫屬性。
b) 另一部分是方法的定義,用來(lái)刻畫功能。
11. 解釋什么是類的成員變量,局部變量,實(shí)例成員變量,類成員變量?
a) 變量定義部分所定義的變量被稱為類的成員變量。
b) 在方法體中定義的變量和方法的參數(shù)被稱為局部變量。
c) 成員變量又分為實(shí)例成員變量和類成員變量(static修飾)。
12. 簡(jiǎn)述this關(guān)鍵字用法。
a) this關(guān)鍵字使用在實(shí)例方法中,代表調(diào)用該方法的當(dāng)前對(duì)象。
13. 如何確定方法的返回類型?
_____________________________________________________________________
a) 方法返回的值的類型就是方法的返回類型,如果無(wú)返回值,則返回類型為void。
14. 返回值為void的方法,可否有return?
a) 可以。但return后沒(méi)有任何值。
15. 解釋什么是類方法,什么是實(shí)例方法?
a) static修飾的方法是類方法,無(wú)static修飾的方法是實(shí)例方法。
16. 簡(jiǎn)述方法和變量的命名規(guī)則?
a) 首寫字母使用小寫,如果由多個(gè)單詞組成,從第2個(gè)單詞開始首字母使用大寫。
17. 什么是方法重載?
a) 方法重載是指一個(gè)類中可以有多個(gè)方法具有相同的名字,但這些方法的參數(shù)必須不
同,即或者是參數(shù)的個(gè)數(shù)不同,或者是參數(shù)的類型不同。
18. 什么是構(gòu)造方法?
a) 構(gòu)造方法是一種特殊方法,它的名字必須與它所在的類的名字完全相同,并且不返
回任何數(shù)據(jù)類型。
19. 如何創(chuàng)建一個(gè)對(duì)象?
a) 使用new 運(yùn)算符和類的構(gòu)造方法為對(duì)象分配內(nèi)存,如果類中沒(méi)有構(gòu)造方法,系統(tǒng)
會(huì)調(diào)用默認(rèn)的構(gòu)造方法。
20. 系統(tǒng)什么情況下會(huì)為類提供構(gòu)造方法,提供什么樣的構(gòu)造方法?
a) 如果類中沒(méi)有構(gòu)造方法,系統(tǒng)會(huì)提供一個(gè)默認(rèn)的構(gòu)造方法,默認(rèn)的構(gòu)造方法是無(wú)參
的。
21. 對(duì)象如何調(diào)用自己的成員變量和方法?
a) 使用運(yùn)算符” . ”來(lái)調(diào)用自己的成員變量和方法。
22. 為什么可以直接用類名來(lái)訪問(wèn)類成員變量和類方法?
a) 因?yàn)楫?dāng)類被加載到虛擬機(jī)的時(shí)候,類成員變量就被分配內(nèi)存,類方法被分配入口地
址,所以不用創(chuàng)建對(duì)象,可以直接通過(guò)類名調(diào)用。
23. 類變量有什么特點(diǎn)?
a) 一個(gè)類的所有對(duì)象共享同一個(gè)類變量。
24. 類方法有什么特點(diǎn)?
a) 類方法只能調(diào)用類變量和類方法。(同一類中)
25. package關(guān)鍵字有什么作用,使用中注意什么問(wèn)題?
a) package指定一個(gè)類所在的包,該語(yǔ)句為源代碼第一行。
26. import關(guān)鍵字有什么作用?
a) 引入程序中所用到的類。
27. 類有幾種訪問(wèn)權(quán)限?變量和方法有幾種訪問(wèn)權(quán)限?分別是什么?
a) 類有兩種訪問(wèn)權(quán)限:public,友好的。
b) 方法和變量的訪問(wèn)權(quán)限:public,protected,友好的,private。
28. 簡(jiǎn)述java的訪問(wèn)權(quán)限。
a) public:公有的,任何類都可以訪問(wèn)。
b) protected:受保護(hù)的,同一個(gè)包的類可以訪問(wèn)。不同包的子類可以訪問(wèn)。 c) 友好的:同一個(gè)包的類可以訪問(wèn)。
d) private:私有的,在同一個(gè)類中才能訪問(wèn)。
29. 子類能繼承父類的哪些變量和方法?
a) 如果子類和父類在同一個(gè)包中,那么,子類自然地繼承了其父類中不是private 的
成員變量作為自己的成員變量,并且也自然地繼承了父類中不是private 的方法作為自己的方法。
_____________________________________________________________________
b) 如果子類和父類不在同一個(gè)包中,那么,子類繼承了父類的protected,public 成
員變量做為子類的成員變量,并且繼承了父類的protected,public 方法為子類的方法。
30. 子類重寫父類的方法,可否降低訪問(wèn)權(quán)限?
a) 不可以降低。
31. final關(guān)鍵字可以用來(lái)修飾什么?分別起什么作用?
a) final可以修飾類,這樣的類不能被繼承。
b) final可以修飾方法,這樣的方法不能被重寫。
c) final可以修飾變量,這樣的變量的值不能被修改,是常量。
32. 簡(jiǎn)述super關(guān)鍵字作用?
a) 使用super調(diào)用父類的構(gòu)造方法。
b) 使用super操作被隱藏的成員變量和方法。
33. 簡(jiǎn)述什么是對(duì)象上轉(zhuǎn)型?
a) 假設(shè),A 類是B 類的父類,當(dāng)我們用子類創(chuàng)建一個(gè)對(duì)象,并把這個(gè)對(duì)象的引用放
到父類的對(duì)象中時(shí),我們稱這個(gè)父類對(duì)象是子類對(duì)象的上轉(zhuǎn)型對(duì)象。
34. 上轉(zhuǎn)型對(duì)象可以操作什么?不可以操作什么?
a) 上轉(zhuǎn)對(duì)象不能操作子類新增的成員變量,失掉了這部分屬性,不能使用子類新增的
方法,失掉了一些功能 。
b) 上轉(zhuǎn)型對(duì)象可以操作子類繼承或重寫的成員變量,也可以使用子類繼承的或重寫的
方法。
35. 什么是抽象類?什么是抽象方法?有什么特點(diǎn)?
a) 用關(guān)鍵字abstract修飾類稱為抽象類,abstract類不能用new運(yùn)算創(chuàng)建對(duì)象,必須
產(chǎn)生其子類,由子類創(chuàng)建對(duì)象。
b) 用關(guān)鍵字abstract修飾方法稱為抽象方法,abstract方法,只允許聲明,而不允許
實(shí)現(xiàn)。
36. 一個(gè)類聲明實(shí)現(xiàn)一個(gè)接口,那么這個(gè)類需要做什么工作?
a) 實(shí)現(xiàn)接口里所有的方法,并且這些方法的訪問(wèn)權(quán)限必須是public。
37. 簡(jiǎn)述什么是數(shù)組?
a) 數(shù)組是相同類型的數(shù)據(jù)按順序組成的一種復(fù)合數(shù)據(jù)類型。通過(guò)數(shù)組名加數(shù)組下標(biāo),
來(lái)使用數(shù)組中的數(shù)據(jù)。下標(biāo)從 0 開始排序。
38. 創(chuàng)建數(shù)組是否需要指定數(shù)組長(zhǎng)度,如何求數(shù)組長(zhǎng)度?
a) 必須指定數(shù)組長(zhǎng)度,數(shù)組調(diào)用 .length來(lái)獲取數(shù)組長(zhǎng)度。
39. char數(shù)組和byte數(shù)組如何轉(zhuǎn)化成字符串?如何求字符串長(zhǎng)度?
a) 利用String類本身的構(gòu)造方法,String (char a[]),String (byte a[]),””.length()。
以下方法均為字符串中方法
40. equals equalsIgnoreCase startsWith endsWith
a) 字符串比較 。
b) 忽略大小寫比較。
c) 判斷是否以指定字符串開頭、結(jié)尾。
41. regionMatches
a) 判斷一個(gè)字符串的子串是否和另一個(gè)字符串的子串匹配。
42. compareTo compareToIgnoreCase indexOf
a) 按字典順序比較字符串。
b) 忽略大小寫的按字典順序比較字符串。
c) 字符串檢索。
43. substring replace trim()
a) 字符串截取
b) 字符串替換
c) 去掉字符串前后空格。
44. 字符串如何轉(zhuǎn)化為int型,double型?
a) Integer.parseInt(“1”);
b) Double.parseDouble(“25。45”);
45. 簡(jiǎn)述StringTokenizer作用?
a) 按照指定的分隔符,將字符串解析成若干語(yǔ)言符號(hào)。
46. 如何判斷一個(gè)字符是不是數(shù)字,是不是大寫?
a) Character.isDigit(‘a(chǎn)’)
b) Character.isUpperCase(‘U’)
47. 已知一個(gè)java.util.Date對(duì)象,如何格式化成如下格式 YYYY-MM-dd hh:mm:ss
a) SimpleDateFormat formate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
formate.format(new Date()));
48. 如何生成一個(gè)0-100的隨即整數(shù)?
a) (int)(Math.random()*100)
49. 簡(jiǎn)述java異常處理的機(jī)制?
a) 當(dāng)所調(diào)用的方法出現(xiàn)異常時(shí),調(diào)用者可以捕獲異常使之得到處理;也可以回避異常。
50. 簡(jiǎn)述如下關(guān)鍵字用途try、catch、throw、throws、finally
a) try:保護(hù)代碼,如果try中某行代碼出現(xiàn)異常,則try中代碼不再繼續(xù)執(zhí)行。 b) catch:捕獲異常,當(dāng)try中出現(xiàn)異常,則catch負(fù)責(zé)捕獲異常,并處理。
c) throw:拋出異常。
d) throws:聲明異常。
e) finally:無(wú)論try中是否出現(xiàn)異常,finally一定執(zhí)行。
51. LinkedList和ArrayList區(qū)別?
a) LinkedList底層通過(guò)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)實(shí)現(xiàn)。
b) ArrayList底層通過(guò)數(shù)組實(shí)現(xiàn)。
52. 什么是I/O流,有什么作用?
a) 指數(shù)據(jù)輸入輸出的流, I/O 流提供一條通道程序,可以使用這條通道把源中的字
節(jié)序列送給目的地。
53. 如何查看一個(gè)文件的大小,絕對(duì)路徑,是否可讀?
a) File file = new File(“e://a.txt”);
b) file.length();
c) file.getAbsolutePath();
d) file.canRead();
54. 已知如下代碼
File f = new File("myfile.dat");
FileInputStream istream = new FileInputStream(f); 如何從流中讀取數(shù)據(jù)。
a) byte[] buff = new byte[100];
b) istream.read(buff);
55. 實(shí)現(xiàn)多線程的兩種方法?
a) 從Java.lang.Thread類派生一個(gè)新的線程類,重寫它的run()方法。
b) 實(shí)現(xiàn)Runnable接口,重寫Runable接口中的run()方法。
56. 簡(jiǎn)述一個(gè)線程的生命周期?
a) 新建---運(yùn)行---中斷---死亡
57. 如何讓一個(gè)準(zhǔn)備就緒的線程運(yùn)行?
a) 調(diào)用線程的start方法讓一個(gè)處于準(zhǔn)備就緒的狀態(tài)的線程運(yùn)行。
58. 如何讓一個(gè)線程休眠1000毫秒?
a) 調(diào)用線程的sleep方法,參數(shù)為1000。
59. 如何使線程同步?
a) 使用同步方法
synchronized void methodA() { }
b) 使用同步塊
synchronized(object) {
//要同步的語(yǔ)句
}
60. 什么是GC?為什么有GC?
a) GC是垃圾收集器。Java 程序員不用擔(dān)心內(nèi)存管理,因?yàn)槔占鲿?huì)自動(dòng)進(jìn)行管
理。
61. 構(gòu)造方法能否被重寫?為什么?
a) 不能,因?yàn)闃?gòu)造方法不能被繼承,所以不能重寫。
62. 是否可以繼承String類,為什么?
a) 因?yàn)镾tring類是final類,final修飾的類不能被繼承。
63. java關(guān)鍵字區(qū)分大小寫嗎?
a) java關(guān)鍵字一律小寫。所以無(wú)所謂區(qū)分大小寫,大寫的不是關(guān)鍵字。
64. java采用什么字符集?該字符集有多少字符
a) Java 使用 unicode 字符集,所以常量共有 65535 個(gè)
65. 列舉算術(shù)運(yùn)算符?
a) +,-,*,/,%
66. 算術(shù)混合運(yùn)算結(jié)果精度如何確定?
a) Java按照運(yùn)算符兩邊的操作元的最高精度保留結(jié)果的精度。
67. &是位運(yùn)算符,與運(yùn)算的規(guī)則是什么?
a) 全1則1,否則為0
68. | 是位運(yùn)算符,或運(yùn)算的規(guī)則是什么?
a) 全0則0,否則是1
69. ^是位運(yùn)算符,異或運(yùn)算的規(guī)則是什么?
a) 相同0,不同1
70. ~是位運(yùn)算符,非運(yùn)算的規(guī)則是什么?
a) 遇1則0,遇0則1
71. if語(yǔ)句后邊有個(gè)括號(hào),該括號(hào)里表達(dá)式為什么類型?
a) boolean類型
72. switch語(yǔ)句后括號(hào)里的表達(dá)式是什么類型?case后類型如何確定?
a) char,int,byte,short,枚舉類型。
b) case后面是一個(gè)常量,該常量類型由switch后括號(hào)內(nèi)表達(dá)式來(lái)確定。
73. switch語(yǔ)句后,default關(guān)鍵字起什么作用?break起什么作用?
a) default:當(dāng)用戶指定的表達(dá)式與任何case都不匹配的時(shí)候,執(zhí)行default后的語(yǔ)句。 b) break:退出當(dāng)前case。
74. for循環(huán)后括號(hào)里三個(gè)表達(dá)式分別起什么作用?
a) 1:循環(huán)初始化的時(shí)候執(zhí)行,只執(zhí)行一次。
b) 2:循環(huán)成立的條件。
c) 3:循環(huán)每次執(zhí)行都會(huì)調(diào)用該表達(dá)式,一般做變量自增。
75. while 和do。。while區(qū)別?
a) while先判斷條件,再執(zhí)行。
b) do……while先執(zhí)行,再判斷條件
c) do……while至少執(zhí)行一次。
76. 什么是編譯執(zhí)行的語(yǔ)言?什么是解釋執(zhí)行的語(yǔ)言?
a) 編譯方式:Compilation:針對(duì)當(dāng)前的機(jī)器處理器芯片,將源程序全部翻譯成機(jī)器指令,
稱做目標(biāo)程序,再將目標(biāo)程序交給計(jì)算機(jī)執(zhí)行.
b) 解釋方式:Interpretation:這種方式不產(chǎn)生整個(gè)的目標(biāo)程序,而是根據(jù)當(dāng)前的機(jī)器處
理器芯片,邊翻譯邊執(zhí)行,翻譯一句執(zhí)行一句.
77. 簡(jiǎn)述一個(gè)java程序執(zhí)行的過(guò)程?
a) 首先編寫java源文件(擴(kuò)展名為.java的文本文檔)。
b) 用javac命令把源文件編譯成字節(jié)碼文件(.class文件)
c) 用java命令執(zhí)行字節(jié)碼文件。
78. 成員變量的作用范圍?局部變量的作用范圍?
a) 成員變量在整個(gè)類內(nèi)都有效
b) 局部變量只在定義它的類內(nèi)有效。
79. 構(gòu)造方法有什么作用?
a) 在創(chuàng)建對(duì)象的時(shí)候,java虛擬機(jī)會(huì)調(diào)用類的構(gòu)造方法來(lái)創(chuàng)建對(duì)象。一般對(duì)象的初始
化工作可以放在構(gòu)造方法里。
80. java三大特性?
a) 封裝,繼承,多態(tài)。
數(shù)據(jù)庫(kù)部分
81. 簡(jiǎn)述什么是關(guān)系型數(shù)據(jù)庫(kù)?
a) 所謂關(guān)系型數(shù)據(jù)庫(kù),是指采用了關(guān)系模型來(lái)組織數(shù)據(jù)的數(shù)據(jù)庫(kù)。關(guān)系模型指的就是
二維表格模型,而一個(gè)關(guān)系型數(shù)據(jù)庫(kù)就是由二維表及其之間的聯(lián)系組成的一個(gè)數(shù)據(jù)組織。
b) 關(guān)系型數(shù)據(jù)庫(kù)是由許多數(shù)據(jù)表(Table)所組成,表又是由許多記錄(Row 或Record)
所組成,而紀(jì)錄又是由許多的字段(Column 或Filed)所組成。
82. 什么是主鍵?
a) 設(shè)置一個(gè)表中的某個(gè)字段為主鍵,這個(gè)字段能夠唯一的確定該表中某條記錄,這樣
的字段我們稱為主鍵。
83. 什么是外鍵?
a) 外部鍵約束用于強(qiáng)制參照完整性,提供單個(gè)字段或者多個(gè)字段的參照完整性。
84. 主外鍵關(guān)聯(lián)的作用?
a) 保證數(shù)據(jù)完整性。
b) 消除冗余數(shù)據(jù)。
85. SQL語(yǔ)句中文含義是?
a) Structured Query Language,結(jié)構(gòu)化查詢語(yǔ)言。
86. 什么是數(shù)據(jù)庫(kù)?
a) 數(shù)據(jù)庫(kù)是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的數(shù)據(jù)集合。
87. 什么數(shù)據(jù)庫(kù)管理系統(tǒng)?
a) DBMS就是實(shí)現(xiàn)把用戶意義下的抽象的邏輯數(shù)據(jù)轉(zhuǎn)換成計(jì)算機(jī)中的具體的物理數(shù)
據(jù)的處理軟件。
JDBC部分
88. JDBC含義?
a) JDBC(Java DataBase Connectivity) java數(shù)據(jù)庫(kù)連接,是java連接數(shù)據(jù)庫(kù)的AIP。
89. JDBC連接數(shù)據(jù)庫(kù)步驟?
a) 加載驅(qū)動(dòng)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
b) 建立連接
Connection conn = DriverManager.getConnection(dbURL,username,password);
c) 創(chuàng)建語(yǔ)句對(duì)象
Statement stmt = conn.createStatement()
90. 如何使用sql語(yǔ)句操作數(shù)據(jù)庫(kù)?
a) 得到語(yǔ)句對(duì)象之后,使用語(yǔ)句對(duì)象調(diào)用executeUpdate(sql)方法和executeQuery(sql)
方法分別執(zhí)行更新語(yǔ)句和查詢語(yǔ)句。
91. executeUpdate(sql)方法的返回值表示什么含義?
a) 表示該更新方法影響了幾行記錄。
92. executeQuery(sql)方法的返回值如何使用?
a) 該方法的返回值為一個(gè)結(jié)果集,即ResultSet類型的對(duì)象。
b) ResultSet類型的對(duì)象有一個(gè)游標(biāo),指向當(dāng)前操作的行。該游標(biāo)默認(rèn)指向第一行記錄
之前,如果我們想操作結(jié)果集,需要先將游標(biāo)下移,我們調(diào)用ResultSet接口的next()方法將游標(biāo)下移,如果結(jié)果集里有數(shù)據(jù),則游標(biāo)下移,指向第一行,如果結(jié)果集里沒(méi)有記錄,則下移失敗。當(dāng)游標(biāo)指向具體的某一行時(shí),我們就可以從結(jié)果集里邊獲取值了。獲取的值為當(dāng)前游標(biāo)指向行的值。
93. 如何獲取游標(biāo)所指的行的數(shù)據(jù)?
a) 當(dāng)游標(biāo)指向某一行時(shí),我們可以使用ResultSet接口的getString(列名)方法來(lái)獲取某
一列的值,列名作為方法的參數(shù)。
94. 創(chuàng)建語(yǔ)句對(duì)象時(shí),createStatement(參數(shù)1,參數(shù)2),兩個(gè)參數(shù)分別表示什么含義?
a) 第一個(gè)參數(shù)指定該語(yǔ)句對(duì)象生成的結(jié)果集是否可滾動(dòng)以及是否敏感,
b) 第二個(gè)參數(shù)指定該語(yǔ)句對(duì)象生成的結(jié)果集是否可以更新數(shù)據(jù)庫(kù)。