Java基礎(chǔ)入門第三版課后習(xí)題答案_第1頁(yè)
Java基礎(chǔ)入門第三版課后習(xí)題答案_第2頁(yè)
Java基礎(chǔ)入門第三版課后習(xí)題答案_第3頁(yè)
Java基礎(chǔ)入門第三版課后習(xí)題答案_第4頁(yè)
Java基礎(chǔ)入門第三版課后習(xí)題答案_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第1章JaVa開發(fā)入門

1.對(duì)象

2.面向?qū)ο?、跨平臺(tái)性

3.javac

4.Java虛擬機(jī)(或JVM)

5.JRE

—*、

1.錯(cuò)

2.錯(cuò)

3.錯(cuò)

4.對(duì)

5.對(duì)

三、

1.C

2.ABCD

3.D

4.ABCD

5.D

四、

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é)果顯示出來。

五、

HelloWorldjava

1publicclassHelloWorld{

2publicstaticvoidmain(String[]args){

3SyStem.out.println("這是第一個(gè)JaVa程序!”);

4)

5}

第2章JaVa編程基礎(chǔ)

1.class

2.單行注釋、多行注釋、文檔注釋

3?4

4.==

5.容器、O

1.對(duì)

2.錯(cuò)

3.對(duì)

4.錯(cuò)

5.對(duì)

*.、

1.AC

2.A

3.BD

4.C

5.C

四、

IjaVa語言的八種基本數(shù)據(jù)類型有:byte字節(jié)型,占一個(gè)字節(jié)。Short短整型,占兩個(gè)字節(jié)。

int整型,占4個(gè)字節(jié)。IOng長(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條件語句和循環(huán)語句中都可以使用break語句。當(dāng)它出現(xiàn)在switch條件語句中

時(shí),作用是終止某個(gè)CaSe并跳出SWitCh結(jié)構(gòu)。當(dāng)它出現(xiàn)在循環(huán)語句中,作用是跳出循環(huán)語

句,執(zhí)行循環(huán)后面的代碼;ContinUe語句用在循環(huán)語句中,它的作用是終止本次循環(huán),執(zhí)行

下一次循環(huán)。

五、

1.

1publicclassgetSum{

2publicstaticvoidmain(String[]args){

3intsum=0;

4for(inti=1;i<100;i++){

5if(i%2!=0)

6sum+=i;

7}

8System.out.printIn(sum);

9}

10)

2.

1publicclassTest{

2publicstaticvoidmain(String[]args){

3inti=1;

4longsum=1;

5do(

6sum*=i;

7i++;

8)while(i<=5);

9System.out.printIn(sum);

10}

H)

第3章面向?qū)ο?上)

1.封裝、繼承、多態(tài)

2.private?default?protected?public

3.static

4.private

5.參數(shù)類型參數(shù)個(gè)數(shù)

6.this

—-、

1.對(duì)

2.對(duì)

3.錯(cuò)

4.對(duì)

5.對(duì)

、

1.C

2.B

3.D

4.B

5.C

四、

1.

面向?qū)ο蟮奶攸c(diǎn)主要可以概括為封裝性、繼承性和多態(tài)性。

其中封裝是面向?qū)ο蠛诵乃枷?將對(duì)象的屬性和行為封裝起來”J不需要讓外界知道具

體實(shí)現(xiàn)細(xì)節(jié)7這就是封裝思想。

繼承性主要描述的是類與類之間的關(guān)系”,“通過繼承7可以在無需重新編寫原有類的情

況下T對(duì)原有類的功能進(jìn)行擴(kuò)展。

多態(tài)性指的是在程序中允許出現(xiàn)重名現(xiàn)象,“它指在一個(gè)類中定義的屬性和方法被其它類繼

承后/它們可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為",“這使得同一個(gè)屬性和方法在不

同的類中具有不同的語義。

2.

(1)構(gòu)造方法名與類名相同

(2)在構(gòu)造方法名的前面沒有返回值類型的聲明

⑶在構(gòu)造方法中不能使用return語句返回一個(gè)值

五、

Examplejava

classResume{

privateStringname;

privateStringsex;

privateintage;

publicResume(){

)

publicResume(Stringname,Stringsex,intage){

this.namename;

this.sex=sex;

this.age=age;

)

publicStringgetName(){

returnname;

)

publicStringgetSe×(){

returnsex;

)

publicintgetAge(){

returnage;

}

publicvoidintroduce(){

System.out.printIn(n姓名:,,+this.getName()+n?n性別

"+this.getSex()+,,?n年齡:"+this.getAge());

)

}

publicclassExample{

publicstaticvoidmain(String[]args){

Resumere=newReSUme(“李四","男”,20);

re.introduce();

第4章面向?qū)ο螅ㄏ拢?/p>

1.繼承

2.重寫

3.final

4.implements

5.抽象類

6.super

、

1.錯(cuò)

2.對(duì)

3.對(duì)

4.對(duì)

5.對(duì)

6.錯(cuò)

7.對(duì)

1.B

2.D

3?C

4.D

5.C

四、

1.概念:在JaVa中,”類的繼承是指在一個(gè)現(xiàn)有類的基礎(chǔ)上去構(gòu)建一個(gè)新的類,“構(gòu)建出來的

新類被稱作子類T現(xiàn)有類被稱作父類/子類會(huì)自動(dòng)擁有父類所有可繼承的屬性和方法。

好處:繼承性主要描述的是類與類之間的關(guān)系,“通過繼承/可以無需重新編寫原有類的情

況下T對(duì)原有類的功能進(jìn)行使用和擴(kuò)展。

2.

工、應(yīng)用程序不必為每一個(gè)子類編寫功能調(diào)用T只需要對(duì)抽象父類進(jìn)行處理即可。大大提高

程序的可復(fù)用性。

2、子類的功能可以被父類的方法或引用變量所調(diào)用T這叫向后兼容可以提高可擴(kuò)充性和

可維護(hù)性。

3、使用多態(tài)可以解決項(xiàng)目中緊偶合的問題/提高程序的課擴(kuò)展性.是OCP原則的一個(gè)具體

的實(shí)現(xiàn)。

五、

Employeejava

abstractclassEmployee{

privateStringname;//定義姓名name并私有化屬性

privateintmonth;//定義生日月份month并私有化屬性

publicEmployee(){}〃無參構(gòu)造器

publicEmployee(Stringname,intmonth){//有參構(gòu)造方法

this.name=name;〃給屬性name初始化賦值

this.month=month;//給屬性month初始化賦值

)

//獲取屬性name的方法

publicStringgetName(){

returnname;//返回name屬性

}

〃獲取屬性month的方法

publicintgetMonth(){

returnmonth;//返回month屬性

)

//給屬性name賦初始值

publicvoidSetName(Stringname){

this.name=name;//本類中的屬性name

)

〃給屬性month賦初始值

publicvoidSetMonth(intmonth){

this.month=month;//本類中的屬性month

)

//創(chuàng)建一個(gè)方法getSalary()用來計(jì)算工資,參數(shù)Inonth是月份,如果當(dāng)月是員工生日,獎(jiǎng)

勵(lì)I(lǐng)Oo元

publicdoublegetSalary(intmonth){

doublesalary=0;〃定義工資變量

〃判斷當(dāng)前月份是否是員工的生日月份,如果是獎(jiǎng)勵(lì)I(lǐng)Oo元

if(this.month==month){

salary=salary+100;

returnsalary;//返回工資salary

)

}

}

SalariedEmployeejava

classSalariedEmployeeextendsEmployee{

privatedoublemonthsalary;//封裝monthsalary屬性

publicSalariedEmployee(){}//無參構(gòu)造方法

//有參構(gòu)造方法參數(shù)姓名生日月份月薪

publicSalariedEmployee(Stringname,intmonth,doublemonthsalary){

super(name,month);〃調(diào)用父類有參構(gòu)造方法

this.monthSalary=monthsalary;〃為屬性monthSaIary初始化賦值

)

//獲取monthsalary的值

publicdoublegetMonthSalary(){

returnmonthsalary;

}

〃給monthsalary賦值

publicvoidSetMonthSalary(doublemonthsalary){

this.monthSalary=monthsalary;

)

//覆蓋父類中的方法

publicdoublegetSalary(intmonth){

doublesalary=monthSalary+super.getSalary(month);//定義工資變量

returnsalary;

)

}

HourlyEmployeejava

classHourlyEmployeeextendsEmployee{

privatedoublehoυrlySalary;〃定義屬性hourlySalary每小時(shí)的工資

privateinthours;//定義屬性hours每月工作的小時(shí)數(shù)

publicHourlyEmployee(){}//無參構(gòu)造方法

//有參構(gòu)造方法參數(shù)姓名生日月份每小時(shí)的工資每月工作的小時(shí)數(shù)

publicHourlyEmployee(Stringname,intmonth,doubleHourlySalaryzint

hours){

super(name,month);〃調(diào)用父類有參構(gòu)造方法

this.hourlySalary=hourlySalary;〃為屬性hourIySaIary初始化賦值

this.hours=hours;〃為屬性hours初始化賦值

}

publicdoublegetHourlySalary(){//獲取h。UrlySalary的值

returnhourIySalary;

}

publicintgetHours(){〃獲取h。UrS的值

returnhours;

)

//定義Set方法設(shè)置hourlySalaryhours的值

publicvoidSetHourlySalary(doublehourlySalary){

this.hourlySalary=hourlySalary;

)

publicvoidSetHourly(inthours){

this.hours=hours;

)

//覆蓋父類方法

publicdoublegetSalary(intmonth){

if(hours<O){//如果工作小時(shí)數(shù)小于O輸出數(shù)據(jù)錯(cuò)誤

System,out.printIn("數(shù)據(jù)錯(cuò)誤");

returnO;

)

//小于160個(gè)小時(shí)的按照每個(gè)月的工作小時(shí)數(shù)乘以每小時(shí)的工資

elseif(hours<=160)

returnhourIySalary*hours+super.getSalary(month);

//超出160個(gè)小時(shí)的小時(shí)數(shù)按照1?5倍計(jì)算

elsereturnhourlySalary*l60÷hourlySalary*l.5*(hours-

160)+super.getSalary(month);

)

)

SalesEmployeejava

classSalesEmployeeextendsEmployee{

privatedoublesales;〃定義銷售額SaIeS

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()*(l+this.getRate())+super.getSalary(month);

}

}

BasePlusSalesEmployee.java

classBasepiusSalesEmployeeextendsSalesEmployee{

privatedoublebaseSalary;//定義基礎(chǔ)工資baseSalary

//無參構(gòu)造方法

publicBasepiusSalesEmployee(){}

//有參構(gòu)造方法

publicBasepiusSalesEmployee(Stringname,intmonth,doublesales,double

rate,doublebaseSalary){

super(name,month,sales,rate);

this.baseSalary=baseSalary;

}

//get/set方法對(duì)私有屬性的調(diào)用和設(shè)迎

publicdoublegatBaseSalary(){

returnbaseSalary;

}

publicvoidSetBaseSalaryO{

this.baseSalary=baseSalary;

)

publicdoublegetSalary(intmonth){

returnbaseSalary+super.getSalary(month);

}

)

Testjava

〃定義一個(gè)測(cè)試類

publicclassTest{

publicstaticvoidmain(String[]args){

//聲明一個(gè)Employee類型的數(shù)組,并創(chuàng)建不同子類型的對(duì)象

Employee[]employee={newSalariedEmployee(“張三”,Iz6000),new

HourlyEmployee(“李四”,2,50,180),newSalesEmployee(“王

五”,3z6500z0.15)znewBaSePIUSSaleSEmPIoyee("趙六”,4,5000,0,15,2000)};

//打印每個(gè)員工的工資

for(inti=0;i<employee.length;i++)

System.out.printIn(Math.round(employee[i].getSalary(10)));

)

第5章異常

1.RuntimeException

2.運(yùn)行時(shí)異常編譯時(shí)異常

3.throw

4.throws

5.Exception

—*、

1.錯(cuò)

2.對(duì)

3.對(duì)

4.對(duì)

5.錯(cuò)

三、

1.C

2.A

3.C

4.C

5.A

四、

1.

try>catchyfinally、throw、throws?

2.

程序通過try語句捕獲可能出現(xiàn)的異常,如果try語句沒有捕獲到異常,則直接跳出

try???catch語句塊執(zhí)行其他程序;如果在try語句中捕獲到了異常,則程序會(huì)自動(dòng)跳轉(zhuǎn)到

catch語句中找到匹配的異常類型進(jìn)行相應(yīng)的處理。如果try語句捕獲到的異常與catch語

句例的異常匹配,則先執(zhí)行Cateh中的語句,最后執(zhí)行其他程序語句。

處理編譯時(shí)期的異常有兩種方式如下:

(I)使用tιy??-catch語句對(duì)異常進(jìn)行捕獲處理。

(2)使用throws關(guān)鍵字聲明拋出異常,調(diào)用者對(duì)異常進(jìn)行處理。

第6章JavaAPI

1.StringStringBufferStringBuiIder

2.Iength()

3.DateFormat

4.Random

5.edcba

—、

1.錯(cuò)

2.錯(cuò)

3.對(duì)

4.對(duì)

5.錯(cuò)

^-、

1.B

2.C

3.A

4.B

5.A

四、

1.

String類表示的字符串是常量,一旦創(chuàng)建后,內(nèi)容和長(zhǎng)度都是無法改變的。而

StringBuilder和StringBUffer表示字符容器,其內(nèi)容和長(zhǎng)度可以隨時(shí)修改。在操作字符串時(shí),

如果該字符串僅用于表示數(shù)據(jù)類型,則使用String類即可,但是如果需要對(duì)字符串中的字符

進(jìn)行增刪操作,則使用StringBUffer與StringBUikier類。如果有大量字符串拼接操作,不要

求線程安全的情況下,采用StringBuilder更高效。相反如果需要線程安全則需要使用

StringBuffero

2.

_____________基本數(shù)據(jù)類型_______________對(duì)應(yīng)的包裝類_______________

byteByte

charCharacter

intInteger

shortShort

_________________long____________________________________Long___________________

floatFloat

doubleDouble

booleanBoolean

五、

1.

Examplejava

1importjava.util.Random;

2publicclassExample{

3publicstaticvoidmain(String[]args){

4for(inti=0;i<10;i++){

5System.out.printIn(newRandom().nextlnt(100));

6)

7)

8}

2.

TesLjava

1importjava.text.DateFormat;

2importjava.util.Calendar;

3importjava.util.Date;

4publicclassTest{

5publicstaticvoidmain(String[]args){

6Calendarcalendar=Calendar.getlnstance();

7calendar.add(Calendar.DATE,100);

8Datedate=calendar.getTime();

9DateFormatformat=DateFormat.getDatelnstance(DateFormat.FULL);

10Stringstring=format.format(date);

11System.out.printIn(string);

12

13

第7章集合類

1.Collection

2.hashNext()next()

3.Comparable

4.Key(鍵)、Value(值)

5.數(shù)組

—、

1.錯(cuò)

2.對(duì)

3.對(duì)

4.對(duì)

5.對(duì)

三、

1.D

2.D

3.C

4.A

5.C

四、

1.

LiSt的特點(diǎn)是元素有序、可重復(fù)。LiSt接口的主要實(shí)現(xiàn)類有ArrayLiSt和LinkedLiStO

Set的特點(diǎn)是元素?zé)o序、不可重復(fù)。Set接口的主要實(shí)現(xiàn)類有HaShSet和TreeSet。M叩的特

點(diǎn)是存儲(chǔ)的元素是鍵(Key)、值(VaIUe)映射關(guān)系,元素都是成對(duì)出現(xiàn)的。MaP接口的主要實(shí)

現(xiàn)類有HashMap和TreeMapo

2.

由于ArrayLiSt集合的底層是使用一個(gè)數(shù)組來保存元素,在增加或刪除指定位置的元素時(shí),會(huì)

導(dǎo)致創(chuàng)建新的數(shù)組,效率比較低,因此不適合做大量的增刪操作。但這種數(shù)組的結(jié)構(gòu)允許程

序通過索引的方式來訪問元素,因此使用ArQyLiSt集合查找元素很便捷。

五、

1.

Examplejava

1publicclassExample{

2publicstaticvoidmain(String[]args){

3ArrayListlist=newArrayListo();

4list.add(,'an);

5list.add("bπ);

6list.add(,,cn);

7list.add(,,aπ);

8for(Iteratorit=list.iterator();it.hasNext();){

9System.out.ρrintln(it.next());

10)

11}

12}

2.

Testjava

1importjava.util.*;

2classStudent{

3privateintage;

4privateStringname;

5publicStudent(intagezStringname){

6this.age=age;

7this.name=name;

8)

9publicStringtoString(){

10returnage+":,,+name;

11}

12publicinthashCode(){

13returnname.hashCode()+age;

14)

15publicbooleanequals(Objectobj){

16if(this==obj)

17returntrue;

18if(!(objinstanceofStudent))

19returnfalse;

20Studentstu=(Student)obj;

21returnthis.name.equals(stu.name)&&this.age==stu.age;

22)

23)

24publicclassTest{

25publicstaticvoidmain(String[]args){

26HashSet<Student>hs=newHashSet<Student>();

27hs.add(newStudent(18,“zhangsan”));

28hs.add(newStudent(20,"lisa"));

29hs.add(newStudent(20,,,lisa"));

30System.out.printIn(hs);

31)

32)

第8章泛型

1.參數(shù)化

2.泛型類泛型接口泛型方法

3.泛型方法

4.實(shí)現(xiàn)

—、

1.錯(cuò)

2.對(duì)

3.對(duì)

4.對(duì)

5.對(duì)

^-、

1.D

2.A

3.A

4.AC

四、

1.

(1)提高類型的安全性。

泛型的主要目標(biāo)是提高JaVa程序的類型安全性,即可以通過泛型定義對(duì)變量類型進(jìn)行

限制,在對(duì)變量類型限制之后編譯器可以更好的進(jìn)行類型驗(yàn)證。

(2)避免強(qiáng)制類型轉(zhuǎn)換。

使用泛型的另一個(gè)好處是避免源代碼中的許多強(qiáng)制類型轉(zhuǎn)換。這使得代碼可讀性更

高,并且減少出錯(cuò)機(jī)會(huì)。盡管減少?gòu)?qiáng)制類型轉(zhuǎn)換可以降低使用泛型類代碼的復(fù)雜度,但是

聲明泛型變量會(huì)帶來相應(yīng)的復(fù)雜操作。

五、

1.

1interfaceGeneric<T>{

2publicabstractvoidget(Tt){}

3}

4classGeneric<T>implementsGeneric{

5publicvoidget(Tt){}

6)

第9章反射

1.動(dòng)態(tài)

2.newlnstance()

3.Method

4.getDeclaredFields()

5.Class

—?、

1.對(duì)

2.對(duì)

3?對(duì)

4.錯(cuò)

5.對(duì)

三、

1.D

2.C

3.AC

4.A

5.C

四、

1.

JaVa的反射(reflection)機(jī)制是指在程序的運(yùn)行狀態(tài)中,可以構(gòu)造任意一個(gè)類的對(duì)

象,可以得到任意一個(gè)對(duì)象所屬的類的信息,可以調(diào)用任意一個(gè)類的成員變量和方法,可

以獲取任意一個(gè)對(duì)象的屬性和方法。這種動(dòng)態(tài)獲取程序信息以及動(dòng)態(tài)調(diào)用對(duì)象的功能稱為

JaVa語言的反射機(jī)制。

2.

(1)根據(jù)類名獲取:類名.class;

(2)根據(jù)對(duì)象獲取:對(duì)象.getClass0;

(3)根據(jù)全限定類名獲?。篊laSS.forName(“全限定類名”

第10章IO(輸入輸出)

1.字節(jié)流字符流

2.Reader

3.BufferedInputStreamBufferedOutputStream

4.InputStreamReaderOutputStreamWriter

5.OutputStream

、

1.對(duì)

2.錯(cuò)

3.錯(cuò)

4.對(duì)

5.錯(cuò)

三、

1.A

2.A

3.B

4.C

5.C

四、

1.

字節(jié)流的兩個(gè)基類是InputStream和OutputStream,字符流的兩個(gè)基類是Reader和

Writer,它們都是ObjeCt類的直接子類,字節(jié)流是處理以8位字節(jié)為基本單位的字節(jié)流

類;Reader和Writer類是專門處理16位字節(jié)的字符流類。

2.

InPUtStTeamReader是Reader的子類,它可以將一個(gè)字節(jié)輸入流轉(zhuǎn)換成字符輸入流,方

便直接讀取字符。OUtPUtStreamWriter是Writer的子類,它可以將一個(gè)字節(jié)輸出流轉(zhuǎn)換成

字符輸出流,方便直接寫入字符。

五、

1.

TestOlJava

1importjava.io.;

2publicclassTestOl{

3publicstaticvoidmain(String[]args)throwsException{

4//字節(jié)流拷貝

5FileInputStreamin=newFileInputStream(πE:∕src.txtπ);

6FileOutputStreamout=newFileOutputStream(πE:/desl.txtπ);

7byte[]buf=newbyte[1024];

8intlen;

9while((len=in.read(buf))!=-1){

10out.write(buf,O,len);

11)

12in.close();

13out.close();

14//字符流拷貝

15BufferedReaderbf=newBufferedReader(new

16FileReader(,,E:∕src.txt"));

17BufferedWriterbw=newBufferedWriter(new

18FileWriter(',E:∕des2.txt"));

19Stringstr;

20while((str=bf.readLine())!=null){

21bw.write(str);

22bw.newLine();

23

24bf.close();

25bw.close();

26

27)

第11章JDBC

1.java.sql.DriverManager

2.classpath

3.update

4.預(yù)編譯

5.1

—?、

1.錯(cuò)

2.對(duì)

3.對(duì)

4.對(duì)

5.錯(cuò)

*.、

1.B

2.B

3.C

4.C

5.A

5.AD

四、

1.

1、加載并注冊(cè)數(shù)據(jù)庫(kù)驅(qū)動(dòng);

2、通過DriVerManager獲取數(shù)據(jù)庫(kù)連接;

3、通過COnneCtiOn對(duì)象獲取Statement對(duì)象;

4、使用Statement執(zhí)行SQL語句;

5、操作ResuItSet結(jié)果集;

6、回收數(shù)據(jù)庫(kù)資源。

2.所謂預(yù)編譯,就是說當(dāng)相同的SQL語句再次執(zhí)行時(shí),數(shù)據(jù)庫(kù)只需使用緩沖區(qū)中的數(shù)據(jù),而

不需要對(duì)SQL語句再次編譯,從而有效提高數(shù)據(jù)的訪問效率。

第12章多線程

1.ThreadRunnable

2.新建狀態(tài)(New)、就緒狀態(tài)(RUnnabIe)、運(yùn)行狀態(tài)(Running)

3.start()

4.sleep()

5.synchronized

—*、

1.對(duì)

2.對(duì)

3.對(duì)

4.錯(cuò)

5.錯(cuò)

三、

1.C

2.B

3.B

4.D

5.BC

四、

1.

一種是繼承java.lang包下的Thread類,覆寫Thread類的run()方法,在run()方法中實(shí)

現(xiàn)運(yùn)行在線程上的代碼。

newThread(){

publicvoidrun(){}

}.start();

另一種就是實(shí)現(xiàn)java.lang.Runnable接口,同樣是在run。方法中實(shí)現(xiàn)運(yùn)行在線程上的代

碼。

classMyThreadimplementsRunnable{

publicvoidrun(){}

)

2.

同步代碼塊的作用是控制線程,保證同步代碼塊中只能有一個(gè)線程在運(yùn)行,保證了多線

程操作數(shù)據(jù)的安全性。

五、

1.

ExampIeJava

1publicclassExample{

2publicstaticvoidmain(String[]args){

3TicketWindowtw=newTicketWindow();

4newThread(twz”線程1”).Start();

,

5newThread(twz'??S2").start();

6)

7)

8classTicketWindowimplementsRunnable{

9privateintnum=100;

10publicvoidrun(){

11while(num>0){

12Threadth=Thread.CurrentThread();

13Stringth_name=th.getName();

14System.out.printin(th_name+”正在發(fā)售第n+num―+n張票");

15}

16)

第13章網(wǎng)絡(luò)編程

1.鏈路層、網(wǎng)絡(luò)層、運(yùn)輸層、應(yīng)用層

2.UDP

3.TCP

4.DatagramSocket

5.ServerSocket

—、

1.錯(cuò)

2.錯(cuò)

3.對(duì)

4.對(duì)

5.對(duì)

三、

1.D

2.A

3.D

4.C

5.D

四、

1.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.在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)連接。

五、

AskServerjava

/**

*

*在線客服咨詢?nèi)藛T

*

*/

publicclassAskServer{

publicstaticvoidmain(String[]args){

〃創(chuàng)建DatagramSocket,發(fā)送接收數(shù)據(jù)都依賴他

DatagramSocketsocket=null;

try(

socket=newDatagramSocket(8888);

Scannerinput=newScanner(System.in);

while(true){

//準(zhǔn)備一個(gè)空的數(shù)據(jù)包,用來接收數(shù)據(jù)

byte[]buf=newbyte[1024];

DatagramPacketpacket=newDatagramPacket(bufλbuf.length);

//接收數(shù)據(jù)使用空的數(shù)據(jù)包

socket.receive(packet);

//輸出信息

Stringinfo=newString(packet.getData(),0,

packet.getLength());

SyStem.oUt.printIrι(“客戶端請(qǐng)求:"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論