版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第1章 Java開發(fā)入門一、填空題1.Java是一種________語(yǔ)言,它是由________公司(已被Oracle公司收購(gòu))開發(fā)的高級(jí)程序設(shè)計(jì)語(yǔ)言。2.針對(duì)不同的開發(fā)市場(chǎng),SUN公司將Java劃分為三個(gè)技術(shù)平臺(tái),它們分別是________、________和________。3.Java語(yǔ)言的特點(diǎn)有簡(jiǎn)單性、________、________、安全性,支持________和分布式。4.SUN公司提供了一套Java開發(fā)環(huán)境,簡(jiǎn)稱________。5.JDK中,存放可執(zhí)行程序的目錄是________。二、判斷題1.Java是1995年5月正式發(fā)布的。2.JRE中包含了Java基本類庫(kù)、JVM和開發(fā)工具。3.編譯Java程序需要使用java命令。4.Java中的包是專門用來(lái)存放類的,通常功能相同的類存放在相同的包中。5.IDEA開發(fā)工具Dubug模式下不進(jìn)入函數(shù)內(nèi)部的單步調(diào)試快捷鍵是F7。三、選擇題1.Java屬于那種語(yǔ)言?()A、機(jī)器語(yǔ)言B、匯編語(yǔ)言C、高級(jí)語(yǔ)言D、以上都不對(duì)2.Java語(yǔ)言的特點(diǎn)有哪些?(多選)()A、 簡(jiǎn)單性B、 面向?qū)ο驝、 跨平臺(tái)性D、 支持多線程3.在JDK的bin目錄下有許多exe可執(zhí)行文件,其中java.exe命令的作用是()A、 Java文檔制作工具。B、 Java解釋器。C、 Java編譯器。D、 Java啟動(dòng)器。4.IDEA開發(fā)工具Dubug模式下進(jìn)入函數(shù)內(nèi)部的單步調(diào)試快捷鍵是()A、F7。B、F8。C、Shift+F7。D、Shift+F8。5.下面那種類型的文件可以在Java虛擬機(jī)中運(yùn)行?()A、.java。B、.jre。C、.exe。D、.class。四、簡(jiǎn)答題1.簡(jiǎn)述Java的特點(diǎn)。2.簡(jiǎn)述Java的運(yùn)行機(jī)制。五、編程題使用記事本編寫一個(gè)HelloWorld程序,并在命令行窗口編譯運(yùn)行,并打印輸出結(jié)果。
第2章 Java編程基礎(chǔ)一、填空題1.Java程序代碼必須放在一個(gè)類中,類使用________關(guān)鍵詞定義。2.Java中的注釋有三類,分別是________、________和________。3.在Java中,變量的數(shù)據(jù)類型分為兩種,即基本________和________類型。4.在邏輯運(yùn)算符中,運(yùn)算符________和________用于表示邏輯與,________表示邏輯或。5.?dāng)?shù)組是一個(gè)________,存儲(chǔ)到數(shù)組中的每個(gè)元素,都有自己的自動(dòng)編號(hào),最小值為________。二、判斷題1.Java語(yǔ)言不區(qū)分大小寫。2.continue語(yǔ)句只用于循環(huán)語(yǔ)句中,它的作用是跳出循環(huán)。3.三元運(yùn)算符的語(yǔ)法格式為“判斷條件?表達(dá)式1:表達(dá)式2”。4.循環(huán)嵌套是指在一個(gè)循環(huán)語(yǔ)句的循環(huán)體中再定義一個(gè)循環(huán)語(yǔ)句的語(yǔ)法結(jié)構(gòu)。while、do…while、for循環(huán)語(yǔ)句都可以進(jìn)行嵌套,并且它們之間也可以互相嵌套。5.在switch條件語(yǔ)句和循環(huán)語(yǔ)句中都可以使用break語(yǔ)句。三、選擇題1.下列選項(xiàng)中,關(guān)于類的定義格式正確的是()(多選)A、修飾符class類名{程序代碼}B、修飾符類名class{程序代碼}C、class類名{程序代碼}DD、類名class{程序代碼}2.下列選項(xiàng)中,那些屬于合法的標(biāo)識(shí)符?()A、 usernameB、 classC、 123usernameD、 HelloWorld3.下列選項(xiàng)中,使用比較運(yùn)算符正確的是()A、 4!=3結(jié)果為falseB、 4==3結(jié)果為falseC、 4<=3結(jié)果為trueD、 4>=3結(jié)果為true4.請(qǐng)閱讀下面代碼。inta=3;intb=2;switch(b){ case1: a--; break; case2: a++; case3: a=a+3; default: a++; break;}System.out.println(“a=”+a);上述程序運(yùn)行結(jié)束時(shí),變量a的值為()A、4B、5C、7D、85.假設(shè)intx=2,三元表達(dá)式x>0?x+1:5()A、0B、2C、3D、5四、簡(jiǎn)答題1.簡(jiǎn)述Java語(yǔ)言中的8中基本數(shù)據(jù)類型,并說明每種數(shù)據(jù)類型所占用的空間大小。2.簡(jiǎn)述跳轉(zhuǎn)語(yǔ)句break與continue的作用和區(qū)別。五、編程題1.請(qǐng)編寫程序,實(shí)現(xiàn)計(jì)算“1+3+5+7+…+99”的值,要求如下。(1)使用循環(huán)語(yǔ)句實(shí)現(xiàn)自然數(shù)1~99的遍歷。(2)在遍歷過程中,通過條件判斷當(dāng)前遍歷的書是否為奇數(shù),如果是就累加,否則不加。2.請(qǐng)編寫程序,實(shí)現(xiàn)獲取數(shù)組{22,24,76,12,21,33}的最大數(shù)。
第3章 面向?qū)ο螅ㄉ希┮?、填空題1.面向?qū)ο蟮娜筇卣魇莀_______、________、________。2.定義類的關(guān)鍵字為________。3.針對(duì)類、成員方法和屬性,Java提供了4種訪問控制權(quán)限,分別是________、 ________、________和defualt。4.靜態(tài)方法必須使用________關(guān)鍵字來(lái)修飾。5.類的封裝是指在定義一個(gè)類時(shí),將類中的屬性私有化,即使用________關(guān)鍵字來(lái)修 飾。二、判斷題1.在成員方法中出現(xiàn)的this關(guān)鍵字,代表的是調(diào)用這個(gè)方法的對(duì)象。2.靜態(tài)變量只能在靜態(tài)方法中使用。3.與普通方法一樣,構(gòu)造方法也可以重載。4.私有屬性只能在它所在類中被訪問,為了能讓外界訪問私有屬性,需要提供一些使 用public修飾的公有方法。5.封裝就是隱藏對(duì)象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對(duì)外提供公有的方法。三、選擇題1.下列關(guān)于this的說法中,錯(cuò)誤的是(
)A、只能在構(gòu)造方法中使用this調(diào)用其它的構(gòu)造方法,不能在成員方法中使用。B、在構(gòu)造方法中,使用this調(diào)用構(gòu)造方法的語(yǔ)句必須位于第一行,且只能出現(xiàn)一 次。C、this關(guān)鍵字可以用于區(qū)分成員變量與局部變量。D、this可以出現(xiàn)在任何方法中。2.閱讀下列程序:class
Test
{ private
static
String
name; static
{ name
=
"World"; System.out.print
(name);}public
static
void
main(String[]
args)
{ System.out.print("Hello"); Test
test
=
new
Test();}}下列選項(xiàng)中,程序運(yùn)行結(jié)果是(
)A、HelloWorldB、WorldHelloC、HelloD、World3.下列關(guān)于構(gòu)造方法的描述中,錯(cuò)誤的是(
)A、構(gòu)造方法的方法名必須和類名一致。B、構(gòu)造方法不能寫返回值類型。C、構(gòu)造方法可以重載。D、構(gòu)造方法的訪問權(quán)限必須和類的訪問權(quán)限一致。4.被聲明為private,protected
及public
的類成員,在類外部可以被訪問的成員是()A、只能訪問到聲明為public的成員B、只可能訪問到聲明為protected和public的成員C、都可以訪問D、都不能訪問5.閱讀下列程序:class
A{ int
x; static
int
y; void
fac(String
s){ System.out.println(“字符串:”+s); }}下列選項(xiàng)中描述正確的是(
)A、x,y和s都是成員變量B、x是實(shí)例變量,y是類變量,s是局部變量C、x和y是實(shí)例變量,s是參數(shù)D、x,y和s都是實(shí)例變量四、簡(jiǎn)答題1.簡(jiǎn)述你對(duì)面向?qū)ο蟮娜筇卣鞯睦斫狻?.簡(jiǎn)述成員變量與局部變量的區(qū)別。五、編程題定義一個(gè)表示學(xué)生信息的類Student,要求如下:(1)類Student的成員變量:sNO表示學(xué)號(hào);sName表示姓名;sSex表示性別;sAge表示年齡;sJava:表示Java課程成績(jī)。(2)類Student帶參數(shù)的構(gòu)造方法:在構(gòu)造方法中通過形參完成對(duì)成員變量的賦值操作。(3)類Student的方法成員:getNo():獲得學(xué)號(hào);getName():獲得姓名;getSex():獲得性別;getAge()獲得年齡;getJava():獲得Java課程成績(jī)根據(jù)類Student的定義,創(chuàng)建五個(gè)該類的對(duì)象,輸出每個(gè)學(xué)生的信息,計(jì)算并輸出這五個(gè)學(xué)生Java語(yǔ)言成績(jī)的平均值,以及計(jì)算并輸出他們Java語(yǔ)言成績(jī)的最大值和最小值。
第4章 面向?qū)ο螅ㄏ拢┮?、填空題1.Java中一個(gè)類最多可以繼承________個(gè)類。2.在繼承關(guān)系中,子類會(huì)自動(dòng)繼承父類中的方法,但有時(shí)在子類中需要對(duì)繼承的方法進(jìn)行一些修改,即對(duì)父類的方法進(jìn)行________。3.________關(guān)鍵字可用于修飾類、變量和方法,它有“這是無(wú)法改變的”或者“最終”的含義。4.Java提供了一個(gè)關(guān)鍵字________,可以判斷一個(gè)對(duì)象是否為某個(gè)類(或接口)的實(shí)例或者子類實(shí)例。5.一個(gè)類如果要實(shí)現(xiàn)一個(gè)接口,可以通過關(guān)鍵字________來(lái)實(shí)現(xiàn)這個(gè)接口。二、判斷題1.Exception類稱為異常類,它表示程序本身可以處理的錯(cuò)誤,在開發(fā)Java程序中進(jìn)行的異常處理,都是針對(duì)Exception類及其子類。2.在try…catch語(yǔ)句中,try語(yǔ)句塊存放可能發(fā)生異常的語(yǔ)句。3.當(dāng)一個(gè)類實(shí)現(xiàn)接口時(shí),沒有必要實(shí)現(xiàn)接口中的所有方法。4.父類的引用指向自己子類的對(duì)象是多態(tài)的一種體現(xiàn)形式。5.方法重寫時(shí),子類拋出的異常類型大于等于父類拋出的異常類型。三、選擇題1.下面程序運(yùn)行的結(jié)果是(
)class
Demo{
publicstaticvoidmain(String[]args){
intx=div(1,2);
try{
}catch(Exceptione){
System.out.println(e);
}
System.out.println(x);
}
publicstaticintdiv(inta,intb){
returna/b;
}
}A、輸出1B、輸出0C、輸出0.5D、編譯失敗2.現(xiàn)有兩個(gè)類A、B,以下描述中表示B繼承自A的是()A、classAextendsB.classB、classBimplementsAC、classAimplementsBD、classBextendsA3.函數(shù)重寫與函數(shù)重載的相同之處是()A、權(quán)限修飾符B、函數(shù)名C、返回值類型D、形參列表4.下列關(guān)于接口的說法中,錯(cuò)誤的是(
)A、接口中定義的方法默認(rèn)使用“publicabstract”來(lái)修飾B、接口中的變量默認(rèn)使用“publicstaticfinal”來(lái)修飾C、接口中的所有方法都是抽象方法D、接口中定義的變量可以被修改5.閱讀下段代碼:class
Dog{
public
String
name;
Dog(String
name){
=name;
}}public
class
Demo1{
public
static
void
main(String[]
args){ Dog
dog1
=
new
Dog("xiaohuang"); Dog
dog2
=
new
Dog("xiaohuang");
String
s1
=
dog1.toString();
String
s2
=
dog2.toString();
String
s3
=
"xiaohuang";
String
s4
=
"xiaohuang";
}}返回值為true的是(
)A、dog1.equals(dog2)B、s1.equals(s2)C、s3.equals(s4)D、dog1==dog2四、簡(jiǎn)答題1.請(qǐng)簡(jiǎn)述Java中繼承的概念以及使用繼承的好處。2.簡(jiǎn)要概述多態(tài)的作用。五、編程題某公司的雇員分為以下若干類:(1)Employee:這是所有員工總的父類。①屬性:?jiǎn)T工的姓名,員工的生日月份②方法:getSalary(intmonth)根據(jù)參數(shù)月份來(lái)確定工資,如果該月員工過生日,則公司會(huì)額外獎(jiǎng)勵(lì)100元。(2)SalariedEmployee:Employee的子類,拿固定工資的員工。①屬性:月薪。(3)HourlyEmployee:Employee的子類,按小時(shí)拿工資的員工,每月工作超出160小時(shí)的部分按照1.5倍工資發(fā)放。①屬性:每小時(shí)的工資、每月工作的小時(shí)數(shù)。(4)SalesEmployee:Employee的子類,銷售,工資由月銷售額和提成率決定。①屬性:月銷售額、提成率。(5)BasePlusSalesEmployee:SalesEmployee的子類,有固定底薪的銷售人員,工資由底薪加上銷售提成部分。①屬性:底薪。要求:創(chuàng)建一個(gè)Employee數(shù)組,分別創(chuàng)建若干不同的Employee對(duì)象,并打印某個(gè)月的工資。注意:要求把每個(gè)類都做成完全封裝,不允許非私有化屬性。
第5章 JavaAPI一、填空題1.在Java中定義了兩個(gè)類來(lái)封裝對(duì)字符串的操作,他們分別是________和________。2.在程序,獲取字符串長(zhǎng)度的方法是________。3.Math類中,用于獲取一個(gè)數(shù)的絕對(duì)值的方法是________。4.java.util包中的Random類的作用是可以在指定的取值范圍內(nèi)________。5.Instant類代表的是某個(gè)時(shí)間。其內(nèi)部是由兩個(gè)________組成,第一部分保存的是________到現(xiàn)在的秒數(shù),第二部分保存的是________。二、判斷題1.String對(duì)象和StringBuffer對(duì)象多事字符串變量,創(chuàng)建后都可以修改。2.Math.round(doubled)方法的作用是,將一個(gè)數(shù)四舍五入,并返回一個(gè)double數(shù)。3.StringBuffer類和String類一樣,都是不可變對(duì)象。4.Pattern類用于創(chuàng)建一個(gè)正則表達(dá)式,也可以說創(chuàng)建一個(gè)匹配模式,它的構(gòu)造方法是私有的,不可以直接創(chuàng)建。5.每次使用java命令啟動(dòng)虛擬機(jī)都對(duì)應(yīng)一個(gè)Runtime實(shí)例,并且只有一個(gè)實(shí)例。三、選擇題1.以下關(guān)于String類的常見操作中,哪個(gè)是方法會(huì)返回指定字符ch在字符串中最后一次出現(xiàn)位置的索引()A、intindexOf(intch)B、intlastIndexOf(intch)C、intindexOf(Stringstr)D、intlastIndexOf(Stringstr)2.Strings=”itcast”;則s.substring(3,4)返回的字符串是以下選項(xiàng)中的那個(gè)?()A、caB、cC、aD、as3.下列選項(xiàng)中,可以正確實(shí)現(xiàn)String初始化的是()A、Stringstr="abc";B、Stringstr='abc';C、Stringstr=abc;D、Stringstr=0;4.下面關(guān)于Math.random()方法生成的隨機(jī)數(shù),正確的是哪項(xiàng)()A、0.8652963898062596B、-0.2C、3.0D、1.25.下列選項(xiàng)中,哪個(gè)是程序正確的輸出結(jié)果?()classStringDemo{
publicstaticvoidmain(String[]args){Strings1=“a”;Strings2=“b”;show(s1,s2);System.out.println(s1+s2);}publicstaticvoidshow(Strings1,Strings2){
s1=s1+”q”;s2=s2+s1;}}A.abB.aqbC.aqbaqD.aqaqb四、簡(jiǎn)答題1.簡(jiǎn)述StringBuffer和StringBuilder有什么區(qū)別。2.簡(jiǎn)述8中基本數(shù)據(jù)類型及其對(duì)應(yīng)的包裝類。五、編程題1.編寫一個(gè)每次隨機(jī)生成10個(gè)0(包括)到100之間的隨機(jī)正整數(shù)。2.編寫一個(gè)程序,實(shí)現(xiàn)字符串大小寫的轉(zhuǎn)換并倒序輸出。要求如下:(1)使用for循環(huán)將字符串“ITcastHeiMa”從最后一個(gè)字符開始遍歷。(2)遍歷的當(dāng)前字符如果是大寫字符,就使用toLowerCase()方法將其轉(zhuǎn)換為小寫字符,反之則使用toUpperCase()方法將其轉(zhuǎn)換為大寫字符。(3)定義一個(gè)StringBuffer對(duì)象,調(diào)用append()方法依次添加遍歷的字符,最后調(diào)用StringBuffer對(duì)象的toString()方法,并將得到的結(jié)果輸出。
第6章 集合類一、填空題1.________是所有單列集合的父接口,它定義了單列集合(List和Set)通用的一些方法。2.使用Iterator遍歷集合時(shí),首先需要調(diào)用________方法判斷是否存在下一個(gè)元素,若存在下一個(gè)元素,則調(diào)用________方法取出該元素。3.List集合的主要實(shí)現(xiàn)類有________、_______,Set集合的主要實(shí)現(xiàn)類有________、________,Map集合的主要實(shí)現(xiàn)類有________、________。4.Map接口是一種雙列集合,它的每個(gè)元素都包含一個(gè)鍵對(duì)象________和值對(duì)象________,鍵和值對(duì)象之間存在一種對(duì)應(yīng)關(guān)系,稱為映射。5.ArrayList內(nèi)部封裝了一個(gè)長(zhǎng)度可變的________。二、判斷題1.Set集合時(shí)通過鍵值對(duì)的方式來(lái)存儲(chǔ)對(duì)象的。2.ArrayList集合查詢?cè)氐乃俣群芸?,但是增刪改查效率較低。3.Set接口主要有兩個(gè)實(shí)現(xiàn)類,分別是HashSet和TreeSet。4.Map接口是一種雙列集合,它的每個(gè)元素都包含一個(gè)鍵對(duì)象Key和值對(duì)象Value。5.Lambda表達(dá)式只能是一個(gè)語(yǔ)句塊。三、選擇題1.以下那些集合可以保存具有映射關(guān)系的數(shù)據(jù)()(多選)A、ArrayListB、TreeMapC、HashMapD、TreeSet2.下列關(guān)于LinkedList類的方法,不是從List接口中繼承而來(lái)的是()A、toArray()B、pop()C、remove()D、isEmpty()3.以下屬于Map接口集合常用方法的有()(多選)A、booleancontainsKey(Objectkey)B、Collectionvalues()C、voidforEach(BiConsumeraction)D、booleanreplace(Objectkey,Objectvalue)4.使用Iterator時(shí),判斷是否存在下一個(gè)元素可以使用以下哪個(gè)方法()A、next()B、hash()C、hasPrevious()D、hasNext()5.閱讀下面的代碼:publicclassExample{
publicstaticvoidmain(String[]args){
String[]strs={"Tom","Jerry","Donald"};
//foreach循環(huán)遍歷數(shù)組
for(Stringstr:strs){
str="Tuffy";
}
System.out.println(strs[0]+","+strs[1]+","+strs[2]);
}}程序的運(yùn)行結(jié)果是()A.Tom,JerryB.Tom,Jerry,TuffyC.Tom,Jerry,DonaldD.以上都不對(duì)四、簡(jiǎn)答題1.簡(jiǎn)述集合List、Set和Map的區(qū)別。2.簡(jiǎn)述為什么ArrayList的增刪操作比較慢,查找操作比較快。五、編程題1.請(qǐng)按照下列要求編寫程序。(1)編寫一個(gè)Student類,包含name和age屬性,提供有參構(gòu)造方法。(2)在Student類中,重寫toString()方法,輸出age和name的值。(3)在Student類中,重寫hashCode()和equals()方法a.hashCode()的返回值是name的hash值與age的和。b.equals()判斷對(duì)象的name和age是否相同,相同則返回true不同返回false。(4)最后編寫一個(gè)測(cè)試類,創(chuàng)建一個(gè)HashSet<Student>對(duì)象hs,向hs中添加多個(gè)Student對(duì)象,假設(shè)有兩個(gè)Student對(duì)象相等,輸出HashSet,觀察是否添加成功。2.請(qǐng)按照下列提示編寫一個(gè)泛型接口以及其實(shí)現(xiàn)類。提示:(1)創(chuàng)建一個(gè)泛型接口Generic<T>,并創(chuàng)建一個(gè)抽象方法get(Tt);(2)創(chuàng)建一個(gè)實(shí)現(xiàn)類GenericImpl<T>,空實(shí)現(xiàn)get(Tt)方法。
第7章 IO(輸入輸出)一、填空題1.Java中的I/O流,按照傳輸數(shù)據(jù)的不同,可分為________和________。2.File類中________包中唯一代表磁盤文件本身的對(duì)象,它定義了一些與平臺(tái)無(wú)關(guān)的方法用于操作文件。3.計(jì)算機(jī)中,無(wú)論是文本、圖片、音頻還是視頻,所有文件都是以________形式存在的。4.IO提供兩個(gè)帶緩沖的字節(jié)流,分別是________和________。5.在JDK中提供了兩個(gè)類可以將字節(jié)流轉(zhuǎn)換為字符流,它們分別是________和________。二、判斷題1.如果一個(gè)File表示目錄下有文件或者子目錄,調(diào)用delete()方法也可以將其刪除。2.File類提供了一系列方法,用于操作其內(nèi)部封裝的路徑指向的文件或者目錄,booleanexists()方法是判斷文件或目錄是否存在。3.JDK提供了兩個(gè)抽象類InputStream和OutputStream,它們是字節(jié)流的頂級(jí)父類,所有的字節(jié)輸入流都繼承自O(shè)utputStream,所有的字節(jié)輸出流都繼承自InputStream。4.InputStreamReader是Reader的子類,它可以將一個(gè)字節(jié)輸出流轉(zhuǎn)換成字符輸出流。三、選擇題1.下列選項(xiàng)中,那些事標(biāo)準(zhǔn)輸入輸出流?()(多選)A、System.InB、System.OutC、InputStreamD、OutputStream2.File類中以字符串形式返回文件絕對(duì)路徑的方法是哪一項(xiàng)?()A、 getParent()B、 getName()C、 getAbsolutePath()D、 getPath()3.下列選項(xiàng)中,那個(gè)流使用到了緩沖技術(shù)?()A、 BuffereOutputStreamB、FileIutputStreamC、 DataOutputStreamD、 FileReader4.在程序開發(fā)中,經(jīng)常需要對(duì)文本文件的內(nèi)容進(jìn)行讀取,如果想從文件中直接讀取字符便可以使用字符輸入流()A、ReaderB、WriterC、FileReaderD、FileWriter5.File類提供了一系列方法,用于操作其內(nèi)部封裝的路徑指向的文件或者目錄,當(dāng)File對(duì)象對(duì)應(yīng)的文件不存在時(shí),使用哪個(gè)方法將新建的一個(gè)File對(duì)象指定到新文件中。()A、StringgetAbsolutePath()B、booleancanRead()C、booleancreateNewFile()D、booleanexists()四、簡(jiǎn)答題1.簡(jiǎn)述字符流與字節(jié)流的區(qū)別。2.簡(jiǎn)述InputStreamReader類與OutputStreamWriter類的作用。五、編程題1.編寫一個(gè)程序,分別使用字節(jié)流和字符流拷貝一個(gè)文本文件。要求如下:(1)使用FileInputStream、FileOutputStreaem和FileReader、FileWriter分別進(jìn)行拷貝。(2)使用字節(jié)流拷貝時(shí),定義一個(gè)1024長(zhǎng)度的字節(jié)數(shù)組作為緩沖區(qū),使用字符流拷貝,
第8章 多線程一、填空題1.實(shí)現(xiàn)多線程的兩種方式是繼承________類和實(shí)現(xiàn)________接口。2.線程的整個(gè)生命周期分為5個(gè)階段,分別是________、________、________、阻塞狀態(tài)和死亡狀態(tài)。3.Thread類中的________方法用于開戶一個(gè)新線程,當(dāng)新線程啟動(dòng)后,系統(tǒng)會(huì)自動(dòng)調(diào)用________方法。4.執(zhí)行________方法,可以讓線程在規(guī)定的時(shí)間內(nèi)休眠。5.同步代碼塊使用________關(guān)鍵字來(lái)修飾。二、判斷題1.當(dāng)我們創(chuàng)建一個(gè)線程對(duì)象時(shí),該對(duì)象表示的線程就立即開始運(yùn)行。2.靜態(tài)方法不能使用synchronized關(guān)鍵字來(lái)修飾。3.對(duì)Java程序來(lái)說,只要還有一個(gè)前臺(tái)線程在運(yùn)行,這個(gè)進(jìn)程就不會(huì)結(jié)束。4.實(shí)現(xiàn)Runnable接口比繼承Thread類創(chuàng)建線程的方式擴(kuò)展性更好。5.使用synchronized關(guān)鍵字修飾的代碼塊,被稱作同步代碼塊。三、選擇題1.下列有關(guān)線程的創(chuàng)建方式說法錯(cuò)誤的是()A、通過繼承Thread類與實(shí)現(xiàn)Runnable接口都可以創(chuàng)建多線程程序B、實(shí)現(xiàn)Runnable接口相對(duì)于繼承Thread類來(lái)說,可以避免由于Java的單繼承帶來(lái)的局限性C、通過繼承Thread類與實(shí)現(xiàn)Runnable接口創(chuàng)建多線程這兩種方式?jīng)]有區(qū)別D、大部分的多線程應(yīng)用都會(huì)采用實(shí)現(xiàn)Runnable接口方式創(chuàng)建2.下列關(guān)于線程優(yōu)先級(jí)的描述,錯(cuò)誤的是()A、NORM_PRIORITY代表普通優(yōu)先級(jí),默認(rèn)值是5B、 一般情況下,主函數(shù)具有普通優(yōu)先級(jí)C、新建線程的優(yōu)先級(jí)默認(rèn)為最低D、優(yōu)先級(jí)高的線程獲得先執(zhí)行權(quán)的幾率越大3.下面關(guān)于join()方法描述正確的是()A、join()方法是用于線程休眠B、join()方法是用于線程啟動(dòng)C、join()方法是用于線程插隊(duì)D、join()方法是用于線程同步4.Java多線程中,關(guān)于解決死鎖的方法說法錯(cuò)誤的是()A、避免存在一個(gè)進(jìn)程等待序列{P1,P2,…,Pn},其中P1等待P2所占有的某一資源,P2等待P3所占有的某一源,…...,而Pn等待P1所占有的的某一資源,可以避免死鎖B、打破互斥條件,即允許進(jìn)程同時(shí)訪問某些資源,可以預(yù)防死鎖,但是,有的資源是不允許被同時(shí)訪問的,所以這種辦法并無(wú)實(shí)用價(jià)值C、打破不可搶占條件。即允許進(jìn)程強(qiáng)行從占有者那里奪取某些資源。就是說,當(dāng)一個(gè)進(jìn)程已占有了某些資源,它又申請(qǐng)新的資源,但不能立即被滿足時(shí),它必須釋放所占有的全部資源,以后再重新申請(qǐng)。它所釋放的資源可以分配給其它進(jìn)程。這樣可以避免死鎖D、使用打破循環(huán)等待條件(避免第一個(gè)線程等待其它線程,后者又在等待第一個(gè)線程)的方法不能避免線程死鎖5.對(duì)于線程的生命周期,下面四種說法正確的有哪些?(多選)()A.調(diào)用了線程的start()方法,該線程就進(jìn)入運(yùn)行狀態(tài)B.線程的run()方法運(yùn)行結(jié)束或被未catch的InterruptedException等異常終結(jié),那么該線程進(jìn)入死亡狀態(tài)C.線程進(jìn)入死亡狀態(tài),但是該線程對(duì)象仍然是一個(gè)Thread對(duì)象,在沒有被垃圾回收器回收之前仍可以像引用其他對(duì)象一樣引用它D.線程進(jìn)入死亡狀態(tài)后,調(diào)用它的start()方法仍然可以重新啟動(dòng)四、簡(jiǎn)答題1.簡(jiǎn)述創(chuàng)建多線程的兩種方式。2.簡(jiǎn)述同步代碼塊的作用。五、編程題1.模擬三個(gè)老師同時(shí)給50個(gè)小朋友發(fā)蘋果,每個(gè)老師相當(dāng)于一個(gè)線程。
第9章 網(wǎng)絡(luò)編程一、填空題1.傳輸層主要使網(wǎng)絡(luò)程序進(jìn)行通信,在進(jìn)行網(wǎng)絡(luò)通信時(shí),可以采用TCP協(xié)議,也可以采用________協(xié)議。2.在下載文件時(shí)必須采用________協(xié)議。3.JDK提供了一個(gè)________類,該類可以發(fā)送和接收DatagramPacket數(shù)據(jù)包。4.在JDK中提供了兩個(gè)用于實(shí)現(xiàn)TCP程序的類,一個(gè)是________類,用于表示服務(wù)器端;一個(gè)是Socket類,用于表示客戶端。ServerSocket5.當(dāng)客戶端和服務(wù)端建立連接后,數(shù)據(jù)是以________的形式進(jìn)行交互的,從而實(shí)現(xiàn)通信。IO流二、判斷題1.Socket類用于創(chuàng)建客戶端程序,當(dāng)兩個(gè)Socket建立了專線連接后,連接的一端既能向另一端連續(xù)寫入字節(jié),也能從另一端讀取字節(jié)。2.在TCP程序中,ServerSocket類的實(shí)例對(duì)象可以實(shí)現(xiàn)一個(gè)服務(wù)器端的程序。3.DatagramSocket類中提供了accept()方法用于接收數(shù)據(jù)報(bào)包。4.byte[]buf=newbyte[1024];用于定義1024個(gè)字節(jié)數(shù)組的緩沖區(qū)。5.Socket類的getInputStream()返回一個(gè)InputStream類型的輸入流對(duì)象,如果該對(duì)象是由服務(wù)器端的Socket返回,就用于讀取服務(wù)端發(fā)送的數(shù)據(jù)。三、選擇題1.下列關(guān)于Socket類的描述中,錯(cuò)誤的是(
)A、Socket類中定義的getInputStream()方法用于返回Socket的輸入流對(duì)象。B、Socket類中定義的getOutputStream()方法用于返回Socket的輸出流對(duì)象。C、Socket類中定義的getLocalAddress()方法用于獲取Socket對(duì)象綁定的本地IP地址。D、Socket類中定義的close()方法用于關(guān)閉輸入\輸出流對(duì)象。2.下列ServerSocket類的方法中,用于接收來(lái)自客戶端請(qǐng)求的方法是(
)A、accept()B、getOutputStream()C、receive()D、get()3.下列關(guān)于UDP協(xié)議特點(diǎn)的描述中,錯(cuò)誤的是(
)A、在UDP協(xié)議中,數(shù)據(jù)的發(fā)送端和接收端不建立邏輯連接。B、UDP協(xié)議消耗資源小,通信效率高,通常都會(huì)用于音頻、視頻和普通數(shù)據(jù)的傳輸。C、UDP協(xié)議在傳輸數(shù)據(jù)時(shí)不能保證數(shù)據(jù)的完整性,因此在傳輸重要數(shù)據(jù)時(shí)不建議使用UDP協(xié)議。D、在UDP協(xié)議連接中,必須要明確客戶端與服務(wù)器端。4.下列說法中,錯(cuò)誤的是(
)A、UDP在數(shù)據(jù)傳輸時(shí),數(shù)據(jù)的發(fā)送端和接收端不建立邏輯連接。B、使用UDP協(xié)議傳送數(shù)據(jù)保證了數(shù)據(jù)的完整性。C、TCP協(xié)議是面向連接的通信協(xié)議。D、TCP連接中必須要明確客戶端與服務(wù)器端,由客戶端向服務(wù)端發(fā)出連接請(qǐng)求。5.在TCP/IP
網(wǎng)絡(luò)中,為各種公共服務(wù)和系統(tǒng)保留的端口號(hào)范圍是(
)A、0~65525B、0~1024C、0~1023D、0~80四、簡(jiǎn)答題1.請(qǐng)簡(jiǎn)述TCP通信與UDP通信的主要區(qū)別。UDP通信與TCP通信的區(qū)別在于,UDP中只有發(fā)送端和接收端,不區(qū)分客戶端與服務(wù)器端,計(jì)算機(jī)之間可以任意地發(fā)送數(shù)據(jù);而TCP通信是嚴(yán)格區(qū)分客戶端與服務(wù)器端的,在通信時(shí),必須先由客戶端去連接服務(wù)器端才能實(shí)現(xiàn)通信,服務(wù)器端不可以主動(dòng)連接客戶端,并且服務(wù)器端程序需要事先啟動(dòng),等待客戶端的連接。2.
請(qǐng)簡(jiǎn)述TCP協(xié)議中服務(wù)端與客戶端連接過程。在TCP連接中必須要明確客戶端與服務(wù)器端,由客戶端向服務(wù)器端發(fā)出連接請(qǐng)求,每次連接的創(chuàng)建都需要經(jīng)過“三次握手”。第一次握手,客戶端向服務(wù)器端發(fā)出連接請(qǐng)求,等待服務(wù)器確認(rèn);第二次握手,服務(wù)器端向客戶端回送一個(gè)響應(yīng),通知客戶端收到了連接請(qǐng)求;第三次握手,客戶端再次向服務(wù)器端發(fā)送確認(rèn)信息,確認(rèn)連接。五、編程題使用基于UDP的JavaSocket編程,完成在線咨詢功能:(1)客戶向咨詢?nèi)藛T咨詢。(2)咨詢?nèi)藛T給出回答。(3)客戶和咨詢?nèi)藛T可以一直溝通,直到客戶發(fā)送bye給咨詢?nèi)藛T。
第10章 JDBC一、填空題1.JDBC驅(qū)動(dòng)管理器專門負(fù)責(zé)注冊(cè)特定的JDBC驅(qū)動(dòng)器,主要通過________類實(shí)現(xiàn)。2.在編寫JDBC應(yīng)用程序時(shí),必須要把指定數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序或類庫(kù)加載到________中。3.Statement接口的executeUpdate(String
sql)方法用于執(zhí)行SQL中的insert、________和delete語(yǔ)句。4.PreparedStatement是Statement的子接口,用于執(zhí)行________的SQL語(yǔ)句。5.ResultSet接口中定義了大量的getXXX()方法,如果使用字段的索引來(lái)獲取指定的數(shù)據(jù),字段的索引是從________開始編號(hào)的。二、判斷題1.應(yīng)用程序可以直接與不同的數(shù)據(jù)庫(kù)進(jìn)行連接,而不需要依賴于底層數(shù)據(jù)庫(kù)驅(qū)動(dòng)。2.Statement接口的execute(String
sql)返回值是boolean,它代表sql語(yǔ)句的執(zhí)行是否成功。3.PreparedStatement是Statement的子接口,用于執(zhí)行預(yù)編譯的SQL語(yǔ)句。4.使用DriverManager.registerDriver進(jìn)行驅(qū)動(dòng)注冊(cè)時(shí),將導(dǎo)致數(shù)據(jù)庫(kù)驅(qū)動(dòng)被注冊(cè)1次。5.PreparedStatement接口中的setDate()方法可以設(shè)置日期內(nèi)容,但參數(shù)Date的類型必須是java.util.Date。三、選擇題1.下面關(guān)于JDBC驅(qū)動(dòng)器API與JDBC驅(qū)動(dòng)器關(guān)系的描述,正確的是(
)A、JDBC驅(qū)動(dòng)器API是接口,而JDBC驅(qū)動(dòng)器是實(shí)現(xiàn)類B、JDBC驅(qū)動(dòng)器API內(nèi)部包含了JDBC驅(qū)動(dòng)器C、JDBC驅(qū)動(dòng)器內(nèi)部包含了JDBC驅(qū)動(dòng)器APID、JDBC驅(qū)動(dòng)器是接口,而JDBC驅(qū)動(dòng)器API是實(shí)現(xiàn)類2.JDBC
API主要位于下列選項(xiàng)的那個(gè)包中()A、java.sql.*B、java.util.*C、javax.lang.*D、java.text.*3.下面選項(xiàng)中,用于將參數(shù)化的SQL語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)的方法是(
)A、prepareCall(Stringsql)B、prepareStatement(Stringsql)C、registerDriver(Driverdriver)D、createStatement()4.下面選項(xiàng),關(guān)于ResultSet中游標(biāo)指向的描述正確的是(
)A、ResultSet對(duì)象初始化時(shí),游標(biāo)在表格的第一行B、ResultSet對(duì)象初始化時(shí),游標(biāo)在表格的第一行之前C、ResultSet對(duì)象初始化時(shí),游標(biāo)在表格的最后一行之前D、ResultSet對(duì)象初始化時(shí),游標(biāo)在表格的最后一行5.下列選項(xiàng)中,能夠?qū)崿F(xiàn)預(yù)編譯的是()A、StatementB、ConnectionC、PreparedStatementD、DriverManager四、簡(jiǎn)答題1.簡(jiǎn)述JDBC編程的6個(gè)開發(fā)步驟。2.簡(jiǎn)述什么是預(yù)編譯。
第11章 GUI一、填空題1.向BorderLayout的布局管理器添加組件時(shí),如果不指定添加到哪個(gè)區(qū)域,則默認(rèn)添加到________區(qū)域。2.FlowLayout的構(gòu)造方法FlowLayout(int
align)中,參數(shù)align決定組件在每行中相對(duì)于________的對(duì)齊方式。3.在程序中可以通過調(diào)用容器對(duì)象的________方法設(shè)置布局管理器。4.使用GridBagLayout布局管理器的關(guān)鍵在于________對(duì)象,它才是控制容器中每個(gè)組件布局的核心類。5.如果多個(gè)JRadioButton按鈕都要添加到面板和按鈕組中,當(dāng)為它們添加事件監(jiān)聽時(shí),會(huì)有很多重復(fù)代碼,因此可以把這些重復(fù)的代碼抽取到________方法中。二、判斷題1.在應(yīng)用程序中,當(dāng)對(duì)窗體事件進(jìn)行處理時(shí),首先需要定義一個(gè)類實(shí)現(xiàn)WindowEvent接口作為窗體監(jiān)聽器。2.BorderLayout邊界布局管理器可以將容器劃分為四個(gè)區(qū)域。3.GridLayout布局管理器會(huì)將容器分成n行m列大小相等的網(wǎng)格,每個(gè)網(wǎng)格中可以放置多個(gè)組件。4.JRadioButton是一個(gè)對(duì)于JRadioButton按鈕來(lái)說,當(dāng)一個(gè)按鈕被選中時(shí),先前被選中的按鈕就會(huì)自動(dòng)取消選中。5.JTextField稱為文本框,它只能接收單行文本的輸入。三、選擇題1.JTextField的構(gòu)造方法中,方法JTextField(String
text,int
column)的作用是()。A、創(chuàng)建一個(gè)空的文本框,初始字符串為nullB、創(chuàng)建一個(gè)具有指定列數(shù)的文本框,初始字符串為nullC、創(chuàng)建一個(gè)顯示指定初始字符串的文本框D、創(chuàng)建一個(gè)具有指定列數(shù)、并顯示指定初始字符串的文本框2.若想實(shí)現(xiàn)JRadioButton按鈕之間的互斥,需要使用(
)類。A、ButtonGroupB、JComboBoxC、AbstractButtonD、以上都不行3.下列選項(xiàng)中,關(guān)于
GridLayout(網(wǎng)格布局管理器)的說法錯(cuò)誤的是(
)。A、GridLayout布局管理器可以設(shè)置組件的大小B、放置在GridLayout布局管理器中的組件將自動(dòng)占據(jù)網(wǎng)格的整個(gè)區(qū)域C、GridLayout布局管理器中,組件的相對(duì)位置不隨區(qū)域的縮放而改變,但組件的大小會(huì)隨之改變,組件始終占據(jù)網(wǎng)格的整個(gè)區(qū)域D、GridLayout布局管理器缺點(diǎn)是總是忽略組件的最佳大小,所有組件的寬高都相同4.FlowLayout的三個(gè)構(gòu)造方法中,
FlowLayout(int
align,int
hgap,int
vgap)的作用是(
)。A、組件默認(rèn)居中對(duì)齊,水平、垂直間距默認(rèn)為5個(gè)單位B、指定組件相對(duì)于容器的對(duì)齊方式,水平、垂直間距默認(rèn)為5個(gè)單位C、指定組件的對(duì)齊方式和水平、垂直間距D、與容器的開始端對(duì)齊方式一樣5.下列選項(xiàng)中,關(guān)于BorderLayout邊界布局管理器的說法錯(cuò)誤的是(
)。A、向BorderLayout布局管理器的容器中添加組件時(shí)需要使用 add(Componentcomp,Objectconstraints)方法B、add(Componentcomp,Objectconstraints)方法參數(shù)constraints是Object類型的C、向BorderLayout的布局管理器添加組件時(shí)默認(rèn)添加到SOUTH區(qū)域D、BorderLayout的布局管理器的每個(gè)區(qū)域只能放置一個(gè)組件四、簡(jiǎn)答題1.請(qǐng)簡(jiǎn)述使用GridBagLayout布局管理器的主要步驟。2.請(qǐng)簡(jiǎn)述創(chuàng)建和添加下拉式菜單的主要步驟。五、編程題要求使用GUI技術(shù)編寫一個(gè)運(yùn)算器,能實(shí)現(xiàn)兩數(shù)加、減、乘、除,有運(yùn)算、清除、退出功能。運(yùn)算器界面如圖11-1所示。圖11-1 運(yùn)算器界面
第12章 反射一、填空題1.反射機(jī)制的優(yōu)點(diǎn)是可以實(shí)現(xiàn)________創(chuàng)建對(duì)象和編譯。2.如果想通過Class類實(shí)例化其他類的對(duì)象,則可以使用________方法,但是必須要保證被實(shí)例化的類中存在一個(gè)無(wú)參構(gòu)造方法。3.通過反射可以得到一個(gè)類的完整結(jié)構(gòu),包括類的構(gòu)造方法、類的屬性、類的方法,這就需要使用到j(luò)ava.lang.reflect包中的以下幾個(gè)類,分別是________、________和________。4.要取得一個(gè)類所實(shí)現(xiàn)的全部接口,必須使用Class中的________方法。5.JVM在加載.class文件時(shí),會(huì)產(chǎn)生一個(gè)________對(duì)象代表該.class字節(jié)碼文件,從該Class對(duì)象中可以獲得類的信息。二、判斷題1.將Class對(duì)象實(shí)例化為本類對(duì)象時(shí),可以通過無(wú)參構(gòu)造完成,也可以通過有參構(gòu)造完成。2.要取得一個(gè)類中的全部方法,可以使用Class類中的getMethods()方法。3.在反射機(jī)制中,把類中的成員(構(gòu)造方法、成員方法、成員變量)都封裝成了對(duì)應(yīng)的類進(jìn)行表示。4.Class類的對(duì)象用于表示當(dāng)前運(yùn)行的Java應(yīng)用程序中的類和接口,Class類是一個(gè)未繼承Object類的特殊類。5.JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法;這種動(dòng)態(tài)獲取的信息以及動(dòng)態(tài)調(diào)用對(duì)象的方法的功能稱為java語(yǔ)言的反射機(jī)制。三、選擇題1.如何獲取一個(gè)類的字節(jié)碼文件對(duì)象。()A、對(duì)象名.classB、類名.getClass()C、Object類中的forName()方法D、以上說法都不正確2.關(guān)于反射機(jī)制下列說法錯(cuò)誤的是()A、反射可以獲取類中所有的屬性和方法B、反射可以構(gòu)造類的對(duì)象,并獲取其私有屬性的值C、反射機(jī)制指的是在程序編譯期間,通過.class文件加載并使用一個(gè)類的過程D、暴力反射可以獲取類中私有的屬性和方法3.下列關(guān)于通過反射方式獲取方法并執(zhí)行的過程說法正確的是()A、通過對(duì)象名.方法名(參數(shù)列表)的方式調(diào)用該方法B、通過Class.getMethod(方法名,參數(shù)類型列表)的方式獲取該方法C、通過Class.getDeclaredMethod(方法名,參數(shù)類型列表)獲取私有方法D、通過invoke(對(duì)象名,參數(shù)列表)方法來(lái)執(zhí)行一個(gè)方法4.以下哪些方法在Class類中定義?()(多選)A.getConstructors()B.getPrivateMethods()C.getDeclaredFields() D.getImports()E.setField()5.假定Tester類有如下test()方法:publicinttest(intp1,Integerp2)以下哪段代碼能正確地動(dòng)態(tài)調(diào)用一個(gè)Tester對(duì)象的test方法?()A、ClassclassType=Tester.class;Objecttester=classType.newInstance();MethodaddMethod=classType.getMethod("test",newClass[]{int.class,int.class});Objectresult=addMethod.invoke(tester,newObject[]{newInteger(100),newInteger(200)});B、ClassclassType=Tester.class;Objecttester=classType.newInstance();MethodaddMethod=classType.getMethod("test",newClass[]{int.class,int.class});intresult=addMethod.invoke(tester,newObject[]{newInteger(100),newInteger(200)});C、ClassclassType=Tester.class;Objecttester=classType.newInstance();MethodaddMethod=classType.getMethod("test",newClass[]{int.class,Integer.class});Objectresult=addMethod.invoke(tester,newObject[]{newInteger(100),newInteger(200)});D、ClassclassType=Tester.class;Objecttester=classType.newInstance();MethodaddMethod=classType.getMethod("test",newClass[]{int.class,Integer.class});Integerresult=addMethod.invoke(tester,newObject[]{newInteger(100),newInteger(200)});四、簡(jiǎn)答題1.簡(jiǎn)述一下反射機(jī)制。2.簡(jiǎn)述實(shí)例化Class對(duì)象的三種方式。第1章 Java開發(fā)入門一.填空題1.面向?qū)ο?,SUN2.JavaSE,JavaEE,JavaME3.面向?qū)ο蟆⒖缙脚_(tái)性、支持多線程4.JDK5.bin目錄二.判斷1.對(duì)2.錯(cuò)3.錯(cuò)4.對(duì)5.錯(cuò)三.選擇1.C2.ABCD3.D4.A5.D四.簡(jiǎn)答1.簡(jiǎn)答性、面向?qū)ο?、安全性、跨平臺(tái)性、支持多線程、分布性。2.Java程序運(yùn)行時(shí),必須經(jīng)過編譯和運(yùn)行兩個(gè)步驟。首先將后綴名為.java的源文件進(jìn)行編譯,生成后綴名為.class的字節(jié)碼文件,然后Java虛擬機(jī)將字節(jié)碼文件進(jìn)行解釋執(zhí)行,并將結(jié)果顯示出來(lái)。五.編程HelloWorld.java1 publicclassHelloWorld{2 publicstaticvoidmain(String[]args){3 System.out.println("這是第一個(gè)Java程序!");4 }5 }第2章 Java編程基礎(chǔ)一.填空題1.class2.單行注釋、多行注釋、文檔注釋3.基本數(shù)據(jù)、引用數(shù)據(jù)4.&、&&、|、||5.容器、0二.判斷1.錯(cuò)2.錯(cuò)3.對(duì)4.對(duì)5.對(duì)三.選擇1.AC2.A3.B4.D5.C四.簡(jiǎn)答1.Java語(yǔ)言的八種基本數(shù)據(jù)類型有:byte字節(jié)型,占一個(gè)字節(jié)。short短整型,占兩個(gè)字節(jié)。int整型,占4個(gè)字節(jié)。long長(zhǎng)整型,占8個(gè)字節(jié)。float單精度浮點(diǎn)型,占4個(gè)字節(jié)。double雙精度浮點(diǎn)型,占8個(gè)字節(jié)。char字符型,占兩個(gè)字節(jié)。boolean型,表示邏輯值,有true和false兩個(gè)值,分別占一個(gè)字節(jié)。2.在switch條件語(yǔ)句和循環(huán)語(yǔ)句中都可以使用break語(yǔ)句。當(dāng)它出現(xiàn)在switch條件語(yǔ)句中時(shí),作用是終止某個(gè)case并跳出switch結(jié)構(gòu)。當(dāng)它出現(xiàn)在循環(huán)語(yǔ)句中,作用是跳出循環(huán)語(yǔ)句,執(zhí)行循環(huán)后面的代碼;continue語(yǔ)句用在循環(huán)語(yǔ)句中,它的作用是終止本次循環(huán),執(zhí)行下一次循環(huán)。五.編程1.參考答案publicclassgetSum{ publicstaticvoidmain(String[]args){ intsum=0; for(inti=1;i<100;i++){ if(i%2!=0) sum+=i; } System.out.println(sum); }}2.參考答案publicclassExample28{ publicstaticvoidmain(String[]args){ int[]arr={22,24,76,12,21,33}; intmax=getMax(arr); System.out.println("max="+max); } staticintgetMax(int[]arr){ intmax=arr[0];/ for(intx=1;x<arr.length;x++){ if(arr[x]>max){ / max=arr[x]; } } returnmax; }}第3章 面向?qū)ο螅ㄉ希┮?、填空題1.封裝、繼承、多態(tài)2.class3.private、protected、public4.static5.private二、判斷題1.錯(cuò)2.錯(cuò)3.對(duì)4.對(duì)5.對(duì)三、選擇題1.D2.B3.D4.A5.B四、簡(jiǎn)答題1.封裝、繼承、多態(tài)面向?qū)ο蟮奶攸c(diǎn)主要可以概括為封裝性、繼承性和多態(tài)性。其中封裝是面向?qū)ο蠛诵乃枷?,"將對(duì)象的屬性和行為封裝起來(lái)","不需要讓外界知道具體實(shí)現(xiàn)細(xì)節(jié)","這就是封裝思想。繼承性主要描述的是類與類之間的關(guān)系","通過繼承","可以在無(wú)需重新編寫原有類的情況下","對(duì)原有類的功能進(jìn)行擴(kuò)展。多態(tài)性指的是在程序中允許出現(xiàn)重名現(xiàn)象","它指在一個(gè)類中定義的屬性和方法被其它類繼承后","它們可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為","這使得同一個(gè)屬性和方法在不同的類中具有不同的語(yǔ)義。2.在Java中,定義在類中的變量被稱為成員變量。定義在方法中的變量被稱為局部變量。如果在某一個(gè)方法中定義的局部變量與成員變量同名,這種情況是允許的。此時(shí),在方法中通過變量名訪問到的是局部變量,而并非成員變量。五、編程題Student.javapublicclassStudent{privateStringsNo;privateStringsName;privateStringsSex;privateintsAge;privateintsJava;//getter&setter方法publicStringgetsNo(){returnsNo;}publicvoidsetsNo(StringsNo){this.sNo=sNo;}publicStringgetsName(){returnsName;}publicvoidsetsName(StringsName){this.sName=sName;}publicStringgetsSex(){returnsSex;}publicvoidsetsSex(StringsSex){this.sSex=sSex;}publicintgetsAge(){returnsAge;}publicvoidsetsAge(intsAge){this.sAge=sAge;}publicintgetsJava(){returnsJava;}publicvoidsetsJava(intsJava){this.sJava=sJava;}publicStudent(StringsNo,StringsName,StringsSex,intsAge,int sJava){this.sNo=sNo;this.sName=sName;this.sSex=sSex;this.sAge=sAge;this.sJava=sJava;}}Test.javapublicclassTest{ publicstaticvoidmain(String[]args){ Student[]students=newStudent[5]; students[0]=newStudent("220110","Tom","男",18,85); students[1]=newStudent("220111","Tohm","男",18,82); students[2]=newStudent("220112","Tomf","女",18,79); students[3]=newStudent("220113","WTom","男",18,85); students[4]=newStudent("220114","seTom","男",18,90); intsum=0; intaverage=0; intmax=students[0].getsJava(); intmin=students[0].getsJava(); for(Studentstudent:students){ intjava=student.getsJava(); sum+=java; if(max<java){ max=java; } if(min>java){ min=java; } } average=sum/(students.length); System.out.println("Java語(yǔ)言的平均成績(jī)是:"+average); System.out.println("Java語(yǔ)言成績(jī)的最大值是:"+max); System.out.println("Java語(yǔ)言成績(jī)的最小值是:"+min); }第4章 面向?qū)ο螅ㄏ拢┮?、填空題1.12.重寫3.final4.instanceof5.implements二、判斷題1.對(duì)2.對(duì)3.錯(cuò)4.對(duì)5.錯(cuò)三、選擇題1.B2.D3.B4.D5.C四、簡(jiǎn)答題1.概念:在Java中","類的繼承是指在一個(gè)現(xiàn)有類的基礎(chǔ)上去構(gòu)建一個(gè)新的類","構(gòu)建出來(lái)的新類被稱作子類","現(xiàn)有類被稱作父類","子類會(huì)自動(dòng)擁有父類所有可繼承的屬性和方法。好處:繼承性主要描述的是類與類之間的關(guān)系","通過繼承","可以無(wú)需重新編寫原有類的情況下","對(duì)原有類的功能進(jìn)行使用和擴(kuò)展。2.1、應(yīng)用程序不必為每一個(gè)子類編寫功能調(diào)用","只需要對(duì)抽象父類進(jìn)行處理即可。大大提高程序的可復(fù)用性。2、子類的功能可以被父類的方法或引用變量所調(diào)用","這叫向后兼容","可以提高可擴(kuò)充性和可維護(hù)性。3、使用多態(tài)可以解決項(xiàng)目中緊偶合的問題","提高程序的課擴(kuò)展性.是OCP原則的一個(gè)具體的實(shí)現(xiàn)。五、編程題Employee.javaabstractclassEmployee{ privateStringname; //定義姓名name并私有化屬性 privateintmonth; //定義生日月份month并私有化屬性 publicEmployee(){} //無(wú)參構(gòu)造器 publicEmployee(Stringname,intmonth){//有參構(gòu)造方法 =name;//給屬性name初始化賦值 this.month=month;//給屬性month初始化賦值 } //獲取屬性name的方法 publicStringgetName(){ returnname;//返回name屬性 } //獲取屬性month的方法 publicintgetMonth(){ returnmonth;//返回month屬性 } //給屬性name賦初始值 publicvoidsetName(Stringname){ =name;//本類中的屬性name } //給屬性month賦初始值 publicvoidsetMonth(intmonth){ this.month=month;//本類中的屬性month }//創(chuàng)建getSalary()方法計(jì)算工資,參數(shù)month是月份,如果當(dāng)月是員工生日,獎(jiǎng)勵(lì)100元 publicdoublegetSalary(intmonth){ doublesalary=0;//定義工資變量 //判斷當(dāng)前月份是否是員 工的生日月份,如果是獎(jiǎng)勵(lì)100元 if(this.month==month){ salary=salary+100; returnsalary;//返回工資salary } }}SalariedEmployee.javaclassSalariedEmployeeextendsEmployee{ privatedoublemonthSalary; //封裝monthSalary屬性 publicSalariedEmployee(){} //無(wú)參構(gòu)造方法 //有參構(gòu)造方法參數(shù)姓名生日月份月薪 publicSalariedEmployee(Stringname,intmonth,doublemonthSalary){ super(name,month);//調(diào)用父類有參構(gòu)造方法 this.monthSalary=monthSalary;//為屬性monthSalary初始化賦值 } //獲取monthSalary的值 publicdoublegetMonthSalary(){ returnmonthSalary; } //給monthSalary賦值 publicvoidsetMonthSalary(doublemonthSalary){ this.monthSalary=monthSalary; } //覆蓋父類中的方法 publicdoublegetSalary(intmonth){//定義工資變量 doublesalary=monthSalary+super.getSalary(month); returnsalary; }}HourlyEmployee.javaclassHourlyEmployeeextendsEmployee{ privatedoublehourlySalary;//定義屬性hourlySalary每小時(shí)的工資 privateinthours; //定義屬性hours每月工作的小時(shí)數(shù) publicHourlyEmployee(){}//無(wú)參構(gòu)造方法 //有參構(gòu)造方法參數(shù)姓名生日月份每小時(shí)的工資每月工作的小時(shí)數(shù) publicHourlyEmployee(Stringname,intmonth,doublehourlySalary,int hours){ super(name,month); //調(diào)用父類有參構(gòu)造方法 this.hourlySalary=hourlySalary; //為屬性hourlySalary初始化賦值 this.hours=hours; //為屬性hours初始化賦值 } publicdoublegetHourlySalary(){//獲取hourlySalary的值 returnhourlySalary; } publicintgetHours(){//獲取hours的值 returnhours; } //定義set方法設(shè)置hourlySalaryhours的值 publicvoidsetHourlySalary(doublehourlySalary){ this.hourlySalary=hourlySalary; } publicvoidsetHourly(inthours){ this.hours=hours; } //覆蓋父類方法 publicdoublegetSalary(intmonth){ if(hours<0){//如果工作小時(shí)數(shù)小于0輸出數(shù)據(jù)錯(cuò)誤 System.out.println("數(shù)據(jù)錯(cuò)誤"); return0; } //小于160個(gè)小時(shí)的按照每個(gè)月的工作小時(shí)數(shù)乘以每小時(shí)的工資 elseif(hours<=160) returnhourlySalary*hours+super.getSalary(month); //超出160個(gè)小時(shí)的小時(shí)數(shù)按照1.5倍計(jì)算 elsereturnhourlySalary*160+hourlySalary*1.5*(hours- 160)+super.getSalary(month); }}SalesEmployee.javaclassSalesEmployeeextendsEmployee{ privatedoublesales; //定義銷售額sales privatedoublerate; //定義提成率rate publicSalesEmployee(){} publicSalesEmployee(Stringname,intmonth,doublesales,doublerate){ super(name,month); this.sales=sales; this.rate=rate; } publicdoublegetSales(){ returnsales; } publicdoublegetRate(){ returnrate; } publicvoidsetSales(doublesales){ this.sales=sales; } publicvoidsetRate(doublerate){ this.rate=rate; } publicdoublegetSalary(intmonth){ returnthis.getSales()*(1+this.getRate())+super.getSalary(month); }}BasePlusSalesEmployee.javaclassBasePlusSalesEmployeeextendsSalesEmployee{ privatedoublebaseSalary;//定義基礎(chǔ)工資baseSalary //無(wú)參構(gòu)造方法 publicBasePlusSalesEmployee(){} //有參構(gòu)造方法 publicBasePlusSalesEmployee(Stringname,intmonth,doublesales,double rate,doublebaseSalary){ super(name,month,sales,rate); this.baseSalary=baseSalary; } //get/set方法對(duì)私有屬性的調(diào)用和設(shè)置 publicdoublegatBaseSalary(){ returnbaseSalary; } publicvoidsetBaseSalary(){ this.baseSalary=baseSalary; } publicdoublegetSalary(intmonth){ returnbaseSalary+super.getSalary(month); }}Test.java//定義一個(gè)測(cè)試類publicclassTest{ publicstaticvoidmain(String[]args){ //聲明一個(gè)Employee類型的數(shù)組,并創(chuàng)建不同子類型的對(duì)象 Employee[]employee={newSalariedEmployee(“張三”,1,6000),new HourlyEmployee(“李 四”,2,50,180),newSalesEmployee(“王 五”,3,6500,0.15),newBasePlusSalesEmployee(“趙六”,4,5000,0.15,2000)}; //打印每個(gè)員工的工資 for(inti=0;i<employee.length;i++) System.out.println(Math.round(employee[i].getSalary(10))); }}第5章 JavaAPI一.填空1.StringStringBuffer2.length()3.Math.abs();4.隨機(jī)產(chǎn)生數(shù)字5.Long字段標(biāo)準(zhǔn)Java計(jì)算時(shí)代(就是1970年1月1日開始)納秒數(shù)二.判斷1.錯(cuò)2.錯(cuò)3.錯(cuò)4.對(duì)5.對(duì)三.選擇1.B2.C3.A4.A5.A四.簡(jiǎn)答1.StringBuffer類和StringBuilder類的對(duì)象都可以被多次修改,并不產(chǎn)生新的未使用對(duì)象,StringBuilder類是JDK5中新加的類,它與StringBuffer之間最大不同在于StringBuilder的方法是線程安全的,也就是說StringBuffer不能被同步訪問,而StringBuilder可以。2.基本數(shù)據(jù)類型對(duì)應(yīng)的包裝類byteBytecharCharacterintIntegershortShortlongLongfloatFloatdoubleDoublebooleanBoolean五.編程1.參考答案publicstaticvoidmain(Stringargs){for(inti=0;i<10;i++){System.out.println(newRandom().nextInt(100));}}2.參考答案publicclassTest01{ publicstaticvoidmain(String[]args){ Stringstr="HelloWorld"; //字符串轉(zhuǎn)成char數(shù)組 char[]ch=str.toCharArray(); StringBufferbuffer=newStringBuffer(); for
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026陜西黃河集團(tuán)有限公司2026年校園招聘?jìng)淇碱}庫(kù)及答案詳解(奪冠系列)
- 2026年可持續(xù)包裝解決方案指南
- 2026福建省水利投資開發(fā)集團(tuán)有限公司招聘1人備考題庫(kù)及答案詳解(考點(diǎn)梳理)
- 城市公園水域環(huán)境管理手冊(cè)
- 汽車空調(diào)暖通系統(tǒng)設(shè)計(jì)手冊(cè)
- 2026湖南長(zhǎng)沙市雅禮中南附屬中學(xué)春季非事業(yè)編制教師招聘?jìng)淇碱}庫(kù)附答案詳解
- 2026湖南邵陽(yáng)市邵東市市直事業(yè)單位引進(jìn)博士研究生15人備考題庫(kù)及完整答案詳解
- 職業(yè)噪聲暴露的神經(jīng)遞質(zhì)與認(rèn)知
- 職業(yè)健康促進(jìn)與職業(yè)健康標(biāo)準(zhǔn)引領(lǐng)
- 黑龍江2025年黑龍江省公安機(jī)關(guān)人民警察專項(xiàng)招錄(2810人)筆試歷年參考題庫(kù)附帶答案詳解
- 尼帕病毒病預(yù)防控制技術(shù)指南總結(jié)2026
- 2026屆大灣區(qū)普通高中畢業(yè)年級(jí)聯(lián)合上學(xué)期模擬考試(一)語(yǔ)文試題(含答案)(含解析)
- 2026國(guó)家國(guó)防科技工業(yè)局所屬事業(yè)單位第一批招聘62人備考題庫(kù)及完整答案詳解一套
- 道路隔離護(hù)欄施工方案
- (2025年)軍隊(duì)文職考試面試真題及答案
- 新版-八年級(jí)上冊(cè)數(shù)學(xué)期末復(fù)習(xí)計(jì)算題15天沖刺練習(xí)(含答案)
- 2025智慧城市低空應(yīng)用人工智能安全白皮書
- 云南師大附中2026屆高三月考試卷(七)地理
- 2024年風(fēng)電、光伏項(xiàng)目前期及建設(shè)手續(xù)辦理流程匯編
- 通信管道施工質(zhì)量控制方案
- 仁愛科普版(2024)八年級(jí)上冊(cè)英語(yǔ)Unit1~Unit6單元話題作文練習(xí)題(含答案+范文)
評(píng)論
0/150
提交評(píng)論