版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
程序設(shè)計學(xué)習(xí)通超星期末考試章節(jié)答案2024年52.[其它]請編碼實現(xiàn)動物世界的繼承關(guān)系:1)動物(Animal)具有行為:吃(eat)、睡覺(sleep)說明:只要在方法中打印一句話即可。例如Publicvoideat(){
System.out.println(“動物在吃東西”);}2)動物包括:兔子(Rabbit),老虎(Tiger)3)這些動物吃的行為各不相同(兔子吃草,老虎吃肉);但睡覺的行為是一致的。請通過繼承實現(xiàn)以上需求,并編寫測試類AnimalTest進行測試。作業(yè)提交后,可以查看答案
答案:packagehomework2;publicclassAnimalTest{publicstaticvoidmain(Stringargs[]){Animalr=newRabbit();r.eat();r.sleep();r=newTiger();r.eat();r.sleep();}}classAnimal{publicvoideat(){System.out.println("動物在吃東西");}publicvoidsleep(){System.out.println("動物在睡覺");}}classRabbitextendsAnimal{publicvoideat(){System.out.println("兔子在吃草");}}classTigerextendsAnimal{publicvoideat(){System.out.println("老虎在吃肉");}}/star3/origin/6fb7cdd544f2d94fae170406334cf109.png
答案:publicabstractclassEmployee{
Stringname;
Stringid;
doublepay;
publicEmployee(Stringname,Stringid,doublepay){
=name;
this.id=id;
this.pay=pay;
}
publicabstractvoidwork();}classProgrammerextendsEmployee{
publicProgrammer(Stringname,Stringid,doublepay){
super(name,id,pay);
}
publicvoidwork(){
System.out.println("程序員瘋狂編碼");
}}classManagerextendsEmployee{
privatedoublebouns;
publicManager(doublebouns,Stringname,Stringid,doublepay){
super(name,id,pay);
this.bouns=bouns;
}
publicvoidwork(){
System.out.println("項目經(jīng)理謹慎管理");
}}publicclassTest{
publicvoidworkTest(Employeee){
e.work();
}
publicstaticvoidmain(String[]args){
Testt=newTest();
t.workTest(newProgrammer("碼農(nóng)","01",20));
t.workTest(newManager(10000,"管理","02",20));
}}同步代碼塊中的鎖對象可以是任意類型的對象,但多個線程共享的鎖對象必須是【
】的。
答案:唯一Java中有兩種創(chuàng)建線程的方式,但大部分的多線程應(yīng)用都會采用【
】方式來創(chuàng)建線程。
答案:實現(xiàn)Runnable接口Java中thread類的sleep()方法可以讓讓當前線程進入【
】狀態(tài)。
答案:休眠在Thread類中提供了一個【
】方法來實現(xiàn)線程插隊。
答案:join同步鎖可以是任意【
】。
答案:對象基于TCP/IP的參考模型將協(xié)議分成四個層次,分別是【
】、【
】、【
】和【
】。
答案:鏈路層;網(wǎng)絡(luò)層;傳輸層;應(yīng)用層【
】指本機地址,該地址一般用來測試使用。
答案:在JDK中,提供了一個與IP地址相關(guān)的【
】類,該類用于封裝一個IP地址。
答案:InetAddress【
】是無連接通信協(xié)議,即在數(shù)據(jù)傳輸時,數(shù)據(jù)的發(fā)送端和接收端不建立邏輯連接。
答案:UDPDatagramPacket類的【
】方法用于返回發(fā)送端或者接收端的端口號。
答案:getPort(設(shè)i、j、k為類X中定義的int型變量名,下列類X的構(gòu)造函數(shù)中正確的是(
)。
答案:
X(inti){...}
;X(inti,intj){...}
;X(inti,intj,intk){...}
Java中的每一個類:
答案:只能有一個父類
;可以沒有父類
在定義一個類時,若希望某個成員方法調(diào)用范圍是同一包內(nèi)所有類,其修飾詞應(yīng)為:
答案:public
;protected;默認關(guān)于接口以下說法正確的是:
答案:接口中的變量必須用publicstaticfinal三個修飾詞修飾;;一個接口可以繼承多個父接口;關(guān)于Java中包的概念,以下正確的是:
答案:包是一些類與接口的集合;;
Java的包中可以包含子包;;包中的類不能訪問子包中非public的類。在Java中,下列關(guān)于方法重載的說法中錯誤的是()。
答案:
重載方法的返回類型必須一致;一個方法在所屬的類中只能被重載一次給定Java代碼如下所示,在橫線處新增下列()方法,是對cal方法的重載。publicclassTest{
publicvoidcal(intx,inty,intz){}
}
答案:publicintcal(intx,inty,floatz){return0;};publicvoidcal(intx,intz){}下面關(guān)于抽象類的說法那些是正確的?(
)
答案:該類不能實例化
;抽象類的定義中必須包含abstract關(guān)鍵字()類是所有異常類的父類。
答案:Throwable現(xiàn)有兩個類A、B,以下描述中表示B繼承自A的是(
)。
答案:class
B
extends
A
一個類中,用static修飾的變量稱靜態(tài)變量:
答案:與實例變量一樣,每個對象中的值互相獨立。屬于對“synchronized”的使用原則的是①不需要在多個線程中使用共享資源時,就沒有必要使用②如果方法只是放回對象的值,而不進行修改,就沒有必要使
答案:①②下列有關(guān)線程的兩種創(chuàng)建方式說法錯誤的是(
)
答案:通過繼承Thread類與實現(xiàn)Runnable接口創(chuàng)建多線程這兩種方式?jīng)]有區(qū)別在TCP/IP網(wǎng)絡(luò)中,為各種公共服務(wù)和系統(tǒng)保留的端口號范圍是(
)
答案:0~1023輸入字符流的父類是(
)
答案:Reader對于FileInputStream來說,從方向上來分,它是
答案:輸入流輸入字節(jié)流的父類是
答案:InputStream下面哪個流可以在邏輯上連接一組輸入流,即將這一組輸入流視為一個連續(xù)的輸入流。
答案:SequenceInputStream三層模型這種休系結(jié)構(gòu)為企業(yè)應(yīng)用提供了良好的運行性和可擴展性,那么以下哪個選項不屬于三層模型呢?
答案:NetBeans6.8開發(fā)工具JDBCAPI支持兩種應(yīng)用方式:兩層模型和三層模型,以下說法哪項是錯誤的?
答案:JDBC驅(qū)動程序負責(zé)獨立于數(shù)據(jù)庫的數(shù)據(jù)庫連接訪問。它屬于數(shù)據(jù)源這一層。以下哪類應(yīng)用程序不屬于JDBC的應(yīng)用場合
答案:ASP應(yīng)用程序以下哪項不是JDBC的組成部分?
答案:數(shù)據(jù)庫使用JDBCAPI不可以完成的工作是?
答案:設(shè)計用戶界面下列選項中,哪個是java語言所有類的父類
答案:Object有一個類A,以下為其構(gòu)造方法的聲明,其中正確的是
答案:publicA(intx){...}下列類頭定義中,錯誤的是
答案:publicxextendsy{...}下面對構(gòu)造方法的描述不正確是
答案:構(gòu)造方法可以有參數(shù),所以也可以有返回值下述哪些說法是不正確的?
答案:實例變量是用static關(guān)鍵字聲明的端口號的取值范圍是0~65535。(
)
答案:對IP地址用于唯一標識一臺計算機,它有IPv4和Ipv6兩個版本。(
)
答案:對處于等待的線程,必須被其他線程喚醒后才能繼續(xù)運行。(
)
答案:對Java多線程中,如果某個資源在一段時間內(nèi)只能由一個進程占有,不能同時被兩個或兩個以上的進程占有。必須在占有該資源的進程主動釋放它之后,其它進程才能占有該資源,這樣就一定會出現(xiàn)死鎖。(
)
答案:錯Statement接口的executeUpdate(Stringsql)返回值是int,它表示數(shù)據(jù)庫中受該SQL語句影響的記錄的數(shù)目。(
)
答案:對使用DriverManager.registerDriver進行驅(qū)動注冊時,數(shù)據(jù)庫驅(qū)動會被注冊2次。(
)
答案:對FileWriter用于向文件中寫入字符,它屬于字符輸出流。(
)
答案:對Java中的數(shù)據(jù)傳輸“流”都位于java.io包中,稱為IO(輸入/輸出)流(
)
答案:對BufferedReader和BufferedWriter是具有緩沖功能的流,使用它們和使用其他流沒有任何區(qū)別。(
)
答案:錯Statement接口的executeUpdate(Stringsql)方法用于執(zhí)行SQL中的insert、【
】和delete語句。
答案:updateResultSet接口中,能將游標移動到此ResultSet對象的最后一行的方法是【
】。
答案:last(java.io包中可以用于從文件中直接讀取字符的是【
】類。
答案:FileReaderIO流通常都是成對出現(xiàn)的,即【
】流和【
】流一起使用。
答案:輸入;輸出File類中用于刪除文件或整個目錄的方法是【
】。
答案:delete(同一類中有兩個以上方法同名稱方法重載,Java語言規(guī)定:
答案:重載方法的參數(shù)表必須不同;下面是有關(guān)子類繼承父類構(gòu)造函數(shù)的描述,其中正確的是(
)。
答案:子類通過super關(guān)鍵字調(diào)用父類的構(gòu)造函數(shù)。
下列方法定義中,正確的是(
)。
答案:intx(inta,intb)
{returna-b;}
下面關(guān)于DatagramSocket的說法正確的是
答案:創(chuàng)建接收UDP套接字時不需要指定端口號要創(chuàng)建一個用于保存接收到的數(shù)據(jù)的數(shù)據(jù)報,應(yīng)使用以下哪個構(gòu)造器
答案:DatagramPacket(byte[]buff,intlength)或DatagramPacket(byte[]buff,intoffset,intlength)要創(chuàng)建一個發(fā)送數(shù)據(jù)的數(shù)據(jù)報,應(yīng)使用以下哪個構(gòu)造器:
答案:DatagramPacket(byte[]buff,intlength,InetAddressaddress,intport)或DatagramPacket(byte[]buff,intoffset,intlength,InetAddressaddress,intport)關(guān)于TCP和UDP的論述正確的是
答案:所有的TCP、UDP等數(shù)據(jù)都以IP數(shù)據(jù)報格式傳輸Runnable接口定義了如下哪些方法?
答案:run()編寫線程類,可以通過實現(xiàn)那個接口來實現(xiàn)
答案:Runnable編寫線程類,要繼承的父類是
答案:Thread實現(xiàn)線程的方法之一是覆蓋Thread類的run方法,以下run方法書寫正確的是
答案:publicvoidrun()下列哪個方法可以實現(xiàn)多線程
答案:繼承Thread類關(guān)于對象序列化(serialize)說法錯誤的是
答案:實現(xiàn)java.io.Serializable接口的對象是面向字符的可以采用Writer層次結(jié)構(gòu)的流。對一個Serializable對象而言,所有的序列化操作都會自動進行,除了用(
)關(guān)鍵字聲明的屬性不會序列化。
答案:transientObjectOutputStream的對象不能訪問以下哪個方法(
)
答案:readObject()Serializable接口屬于(
)包
答案:javax.swing在編寫Java
Application程序時,若需要使用到標準輸入輸出語句,必須在程序的開頭寫上
答案:import
java.io.*;
下面哪個流類不是抽象類
答案:OutputStreamWriter關(guān)于File類說法錯誤的是
答案:可以讀寫文件對文件不可進行的操作有(
)。
答案:刪除文件System.in是下列哪個流的對象(
)。
答案:InputStreamJava語言中提供了一個▁線程,自動回收動態(tài)分配的內(nèi)存。
答案:垃圾收集下列關(guān)于線程性質(zhì)說法錯誤的是:
答案:線程不能創(chuàng)建其他線程52.[其它]編寫一個程序,創(chuàng)建一個HashMap對象,用于存儲銀行儲戶的信息(其中儲戶的主要信息有儲戶的ID,姓名和余額)。另外,計算并顯示其中某個儲戶的當前余額。
答案:publicclassMyMap{
publicstaticvoidmain(String[]args){
BarkUseruser1=newBarkUser(101,"祝枝山",10000);
BarkUseruser2=newBarkUser(102,"文征明",20000);
BarkUseruser3=newBarkUser(103,"祝枝山",30000);
HashMapmap=newHashMap();
map.put(1,user1);
map.put(2,user2);
map.put(3,user3);
for(Entryentry:map.entrySet()){
System.out.println(entry.getValue());
}
}}classBarkUser{
intid;
Stringname;
doublecount;
publicBarkUser(intid,Stringname,doublecount){
super();
this.id=id;
=name;
this.count=count;
}
@Override
publicStringtoString(){
//TODOAuto-generatedmethodstub
return"儲戶ID為"+this.id+",姓名為"++"的儲戶賬戶余額為"+this.count;
}}51.[其它]創(chuàng)建一個Vehicle類并將它聲明為抽象類。在Vehicle類中聲明一個NumOfWheels方法,使它顯示一個字符串值。*創(chuàng)建兩個類Car和Motorbike從Vehicle類繼承,并在這兩個類中實現(xiàn)NumOfWheels方法。在Car類中,應(yīng)當顯示“四輪車”信息;而在Motorbike類中,應(yīng)當顯示“雙輪車”信息。*創(chuàng)建另一個帶main方法的類,在該類中創(chuàng)建Car和Motorbike的實例,并在控制臺中顯示消息。
答案:abstractclassVehicle{publicabstractvoidNumOfWheels();}classCarextendsVehicle{publicvoidNumOfWheels(){
System.out.println("這個車4個輪子");}}classMotorbikeextendsVehicle{publicvoidNumOfWheels(){
System.out.println("這個車2個輪子");}}publicclassDemo1{publicstaticvoidmain(String[]args){
Carc=newCar();
c.NumOfWheels();
Motorbikem=newMotorbike();
m.NumOfWheels();}}對于相同的SQL語句,Statement對象只會對其編譯執(zhí)行一次。(
)
答案:錯FileOutputStream是操作文件的字節(jié)輸出流,專門用于把數(shù)據(jù)寫入文件。(
)
答案:對分析如下Java代碼,如果想在控制臺上輸出“B類的test()方法”,則在橫線處應(yīng)填入()。classA{
publicvoidtest(){
System.out.println("A類的test()方法");
}}classBextendsA{
publicvoidtest(){
System.out.println("B類的test()方法");
}
publicstaticvoidmain(Stringargs[]){
}}
答案:a=newB();a.test();;Bb=newB();b.test();在Java接口中,下列選項中屬于有效的方法聲明是()。
答案:publicvoidaMethod();
;voidaMethod();
給定java代碼,如下:
abstract
class
Shape
{
publicabstract
void
draw(
);
}
要創(chuàng)建Shape類的子類Circle,以下代碼正確的是(
)。
答案:abstract
class
Circle
extends
Shape{
}
;class
Circle
extends
Shape{
void
draw(
){}
}如果Triangle類繼承自Shape類,那么Shape類中的哪些變量可以用于Triangle類中?
()
答案:Shape類中所有public和protected變量
下列選項中關(guān)于Java中封裝的說法錯誤的是()。
答案:
類的屬性必須進行封裝,否則無法通過編譯下面Java代碼的運行結(jié)果是(
)。classPenguin{privateStringname=null;//名字privateinthealth=0;//健康值privateStringsex=null;//性別publicvoidPenguin(){health=10;sex="雄";System.out.println("執(zhí)行構(gòu)造方法。");}publicvoidprint(){System.out.println("企鵝的名字是"+name+",健康值是"+health+",性別是"+sex+"。");}publicstaticvoidmain(String[]args){Penguinpgn=newPenguin();pgn.print();}}
答案:
企鵝的名字是null,健康值是0,性別是null。在Java類中,使用以下()聲明語句來定義公有的int型靜態(tài)常量MAX。
答案:publicstaticfinalintMAX=100;關(guān)于以下程序敘述正確的是:classBase{Base(inti){System.out.print(“Base
”);}}classTestextendsBase{Test(){System.out.print(“Test
”);}publicstaticvoidmain(String[]args){
Testb=newTest();
}}
答案:程序運行出錯,因為Base類未定義構(gòu)造方法;在Java中,有如下兩個類Student和Person。如果Student是Person的子類,則下列聲明對象x的語句中錯誤的是()。
答案:Student
x
=
new
Person()
若有如下接口A的定義,下列哪些類下確實現(xiàn)了該接口interface
A{voidmethod1(inti);voidmethod2(intj);}
答案:class
B
implements
A{void
method1(inti){}void
method2(intj){}}一個類中,用static修飾的方法稱靜態(tài)方法:
答案:它不能直接調(diào)用類中其它不用static修飾的方法;用abstract修飾的類稱為抽象類,它們:
答案:只能用以派生新類,不能用以創(chuàng)建對象;子類中定義的方法與父類方法同名且同形時稱父類方法被覆蓋(也稱重寫)以下說法正確的是:
答案:父類中用final修飾的方法不允許被復(fù)蓋;關(guān)于在子類中調(diào)用父類構(gòu)造方法的問題,下述說法正確的是:
答案:子類構(gòu)造方法只能在第一條語句調(diào)用父類的構(gòu)造方法;在Java類中,使用以下(
)聲明語句來定義公有的int型靜態(tài)常量MAX。
答案:publicstaticfinalintMAX=100;下述關(guān)于繼承的說法正確的是:
答案:被繼承的父類代碼必須與子類代碼在同一個源代碼文件(.java文件)內(nèi)。以下程序運行結(jié)果是:
publicclassFatherClass{publicFatherClass(){
System.out.print("Father");}}publicclassChildClassextendsFatherClass{publicChildClass(){
System.out.print("Child");}publicstaticvoidmain(String[]args){
FatherClassfc=newChildClass();}}
答案:
FatherChild現(xiàn)有兩個類A、B,以下描述中表示B繼承自A的是(
)。
答案:
classBextendsA下面說法正確的是(
)。
答案:final可修飾類、屬性、方法。
下列類頭定義中,正確的是(
)。
答案:publicclassxextendsy
{....}
為了使包sos在當前程序中可見,可以使用的語句是(
)。
答案:importsos.*;
設(shè)x,y均為已定義的類名,下列聲明對象x1的語句中正確的是(
)。
答案:
xx1=newx();
下列整型的常量屬性i的定義中,正確的是
答案:staticfinalinti=100;定義主類的類頭時可以使用的訪問控制符是
答案:public
為了區(qū)分重載多態(tài)中同名的不同方法,要求
答案:采用不同的參數(shù)列表IP地址用于唯一標識一臺計算機,它有IPv4和IPv6兩個版本。
答案:對Socket類的getInputStream()返回一個InputStream類型的輸入流對象,如果該對象是由服務(wù)器端的Socket返回,就用于讀取服務(wù)端發(fā)送的數(shù)據(jù)。
答案:錯門戶網(wǎng)站的服務(wù)器都是多線程實現(xiàn)的。
答案:對bytebuf=newbyte1024;用于定義1024個字節(jié)數(shù)組的緩沖區(qū)。
答案:對執(zhí)行Thread.sleep(5000)語句模擬服務(wù)器執(zhí)行其他功能占用的時間。
答案:對InetAddress類實現(xiàn)了對互聯(lián)網(wǎng)協(xié)議地址的封裝。
答案:對TCP是一種用戶數(shù)據(jù)報協(xié)議。
答案:錯DatagramSocket類中提供了accept()方法用于接收數(shù)據(jù)報包。
答案:錯UDP協(xié)議是面向無連接的協(xié)議,可以保證數(shù)據(jù)的完整性。
答案:錯在聊天程序設(shè)計中,initSocket()方法使用了while(true)循環(huán),目的是為了當用戶填寫的監(jiān)聽端口號不滿足要求時,反復(fù)地彈出輸入窗口,讓用戶重新輸入端口號。
答案:對IP地址中有一個回送地址【】,指本機地址。
答案:當客戶端和服務(wù)端建立連接后,數(shù)據(jù)是以【】的形式進行交互的,從而實現(xiàn)通信。
答案:IO流在JDK中,提供了一個與IP地址相關(guān)的【】類,該類用于封裝一個IP地址,并提供了一系列與IP地址相關(guān)的方法。
答案:InetAddress在下載文件時必須采用【】協(xié)議。
答案:TCP在介紹TCP/IP結(jié)構(gòu)時,提到傳輸層的兩個重要的高級協(xié)議,分別是【】和TCP。
答案:UDPServerSocket對象負責(zé)監(jiān)聽某臺計算機的某個端口號,在創(chuàng)建ServerSocket對象后,需要繼續(xù)調(diào)用該對象的【】方法,接收來自客戶端的請求。
答案:accept(在JDK中提供了兩個用于實現(xiàn)TCP程序的類,一個是【】類,用于表示服務(wù)器端;一個是Socket類,用于表示客戶端。
答案:ServerSocket在計算機命令行窗口輸入【】命令可以來查看當前計算機端口占用情況。
答案:netstat-anbJDK中提供了一個【】類,該類用于封裝UDP通信中發(fā)送或者接收的數(shù)據(jù)。
答案:DatagramPacket使用UDP協(xié)議開發(fā)網(wǎng)絡(luò)程序時,需要使用兩個類,分別是【】和【】
答案:DatagramPacket、DatagramSocket傳輸層主要使網(wǎng)絡(luò)程序進行通信,在進行網(wǎng)絡(luò)通信時,可以采用TCP協(xié)議,也可以采用【】協(xié)議。
答案:UDPUDP是一種面向無連接的協(xié)議,因此,在通信時發(fā)送端和接收端【】建立連接。
答案:不用JDK中提供了一個【】類,用于封裝UDP通信中發(fā)送或者接收的數(shù)據(jù)。
答案:DatagramPacketJDK提供了【】類,可以發(fā)送和接收DatagramPacket數(shù)據(jù)報。
答案:DatagramSocketTCP通信同UDP通信一樣,都能實現(xiàn)兩臺計算機之間的通信,通信的兩端則都需要創(chuàng)建【】對象。
答案:Socket在JDK中提供了兩個用于實現(xiàn)TCP程序的類,分別是【】類和【】類。
答案:ServerSocket、SocketTCP通信時,首先要創(chuàng)建代表服務(wù)器端的【】對象。
答案:ServerSocket下面關(guān)于IP地址的描述中,正確的是(
)
答案:IP地址可以唯一標識一臺計算機;目前,IP地址廣泛使用的版本是IPv4;通常會將IP地址寫成十進制的形式下列關(guān)于使用多線程完成TCP網(wǎng)絡(luò)程序的描述中,正確的是(
)
答案:服務(wù)器端程序都是允許被多個應(yīng)用程序訪問的。;服務(wù)器端程序都是多線程實現(xiàn)的。;服務(wù)器端為每個客戶端創(chuàng)建一個對應(yīng)的Socket。以下哪些屬于InetAddress類的一些常用方法()。
答案:getByName(Stringhost);;getLocalHost();;getHostName();;getHostAddress()以下屬于DatagramPacket類中的常用方法的有()。
答案:getPort();;getData();;getLength()。在TCP/IP網(wǎng)絡(luò)中,為各種公共服務(wù)和系統(tǒng)保留的端口號范圍是(
)
答案:0~1023下列關(guān)于Socket類的描述中,錯誤的是()
答案:Socket類中定義的close()方法用于關(guān)閉輸入\\輸出流對象。InetAddress類中能獲取IP地址及主機名的方法是(
)
答案:getLocalHost()下列說法中,錯誤的是(
)
答案:使用UDP協(xié)議傳送數(shù)據(jù)保證了數(shù)據(jù)的完整性下列關(guān)于UDP協(xié)議特點的描述中,錯誤的是()
答案:在UDP協(xié)議連接中,必須要明確客戶端與服務(wù)器端。下列選項中,用于將發(fā)送數(shù)據(jù)進行打包的類是(
)
答案:DatagramPacket下列選項中,哪個是TCP協(xié)議的“三次握手”中的第一次握手(
)
答案:客戶端向服務(wù)器端發(fā)出連接請求,等待服務(wù)器確認。下列層次中,哪一層是整個TCP/IP協(xié)議的核心()
答案:網(wǎng)絡(luò)層TCP是一種用戶數(shù)據(jù)報協(xié)議。(
)
答案:錯在TCP程序中,ServerSocket類的實例對象可以實現(xiàn)一個服務(wù)器端的程序。(
)
答案:對目前應(yīng)用最廣泛的網(wǎng)絡(luò)通信協(xié)議是UDP協(xié)議。(
)
答案:錯以下哪個類用于實現(xiàn)TCP通信的客戶端程序(
)
答案:SocketHTTP協(xié)議服務(wù)的默認端口號是(
)
答案:80下列層次中,哪一層是整個TCP/IP協(xié)議的核心(
)
答案:網(wǎng)絡(luò)層如果URLurl=newURL("")則url.getFile()得到的結(jié)果是
答案:""關(guān)于URL的語法格式正確的是
答案:://:/#常用IP地址有A、B、C三類,屬于
答案:C類網(wǎng)絡(luò)層上的主要協(xié)議是
答案:IP協(xié)議下面說法不正確的是:
答案:TCP是TCP/IP協(xié)議族中最為核心的協(xié)議傳輸層的功能主要是:
答案:為兩臺主機上的應(yīng)用程序提供端對端的通信計算機網(wǎng)絡(luò)中實體之間的有關(guān)通信規(guī)則約定的集合稱為
答案:協(xié)議FTP協(xié)議主要用于:
答案:交互式的文件傳輸下面可以用于表示本機的IP地址是
答案:下面關(guān)于Socket的說法錯誤的是:
答案:使用Socket編程要充分考慮數(shù)據(jù)鏈路傳輸錯誤。下面關(guān)于Socket編程說法不正確的是:
答案:通過Socket獲得的是字節(jié)流,因此不能發(fā)送字符信息。下面哪個方法是類.Socket的成員方法,用來獲取Socket的輸入流。
答案:getInputStream()下面關(guān)于ServerSocket的描述錯誤的是:
答案:一個ServerSocket只能在一個端口監(jiān)聽,因此一個ServerSocket只能接收到一個客戶端請求。Java多線程中,如果進程所獲得的資源在未使用完畢之前,資源申請者不能強行地從資源占有者手中奪取資源,而只能由該資源的占有者進程自行釋放,就一定會出現(xiàn)死鎖。
答案:錯如果前臺線程全部死亡,后臺線程也會自動死亡。
答案:對JAVA中Thread類的sleep()是靜態(tài)方法,只能控制當前正在運行的線程休眠,而不能控制其它線程休眠。
答案:對如果兩個線程訪問不同類中的靜態(tài)同步方法,這兩個線程是不需要等待的
答案:對線程安全問題其實就是由多個線程同時處理共享資源所導(dǎo)致的,通過同步代碼塊能夠解決該問題。
答案:對當在某個線程中調(diào)用其它線程的join()方法時,調(diào)用的線程將被阻塞,直到被join()方法加入的線程執(zhí)行完成后它才會繼續(xù)運行
答案:對Runnable接口中只有一個run()方法。
答案:對線程對象創(chuàng)建完成時,該線程處于就緒狀態(tài)
答案:錯線程安全問題其實就是由多個線程同時處理共享資源所導(dǎo)致的。
答案:對Thread類中提供了一個join()方法,可以實現(xiàn)線程插隊的功能。
答案:對使用synchronized關(guān)鍵字修飾的代碼塊,被稱作同步代碼塊。
答案:對notify()方法喚醒等待線程后,該線程會立即被CPU執(zhí)行。
答案:錯對Java程序來說,如果一個進程中只有前臺線程運行,這個進程就會結(jié)束。
答案:錯yield方法和sleep方法相同,都可以讓當前正在運行的線程進入阻塞狀態(tài)。
答案:錯使用Thread類創(chuàng)建多線程程序可以實現(xiàn)資源共享的效果。
答案:錯實現(xiàn)Runnable接口比繼承Thread類創(chuàng)建線程的方式擴展性更好。
答案:對多線程操作共享資源一定會導(dǎo)致線程的安全問題。
答案:錯yield()方法和sleep()方法相同,都可以讓當前正在運行的線程暫停。
答案:錯Java中可以通過yield方法來實現(xiàn)線程的讓步。
答案:對實現(xiàn)Runnable接口方式創(chuàng)建線程同樣需要重寫run()方法。
答案:對使用Java提供的線程池來創(chuàng)建多線程,進一步優(yōu)化線程管理
答案:對JAVA的JDK中提供了一個線程類Thread,通過繼承該類,并重寫它的run()方法便可實現(xiàn)多線程。
答案:對在JAVA中一個類只要繼承了java.lang.Thread類,那么這個類中的任何方法都會在該線程的start()方法被調(diào)用后被JVM自動運行。
答案:錯wait()、notify()和notifyAll()這三個方法的調(diào)用者都應(yīng)該是同步鎖對象。
答案:對一個進程只能包含一個線程。
答案:錯Java多線程中,如果某個資源在一段時間內(nèi)只能由一個進程占有,不能同時被兩個或兩個以上的進程占有。必須在占有該資源的進程主動釋放它之后,其它進程才能占有該資源,這樣就一定會出現(xiàn)死鎖。
答案:錯同步代碼塊的格式是synchronized(對象){}。
答案:對被synchronized關(guān)鍵字修飾的方法稱為同步方法。
答案:對對Java程序來說,只要還有一個前臺線程在運行,這個進程就不會結(jié)束。()
答案:對死鎖就是兩個線程在運行時都在等待對方的鎖。
答案:對同一個類中所有的同步的靜態(tài)方法,它們在類范圍內(nèi)是同步的,也就是同一時間只能有一個線程可以訪問所有同步靜態(tài)方法中的一個。
答案:對Lock鎖在使用時也更加靈活。
答案:對處于等待的線程,必須被其他線程喚醒后才能繼續(xù)運行。
答案:對在調(diào)用sleep()方法時,應(yīng)該捕獲或者聲明拋出InterruptedException異常。
答案:對實現(xiàn)Runnable或Callable接口相比繼承Thread類方式創(chuàng)建線程,優(yōu)點在于它解決了單繼承帶來的局限性。
答案:對Thread類的join()方法能夠?qū)蓚€交替執(zhí)行的線程合并為順序執(zhí)行的線程。
答案:對線程的優(yōu)先級數(shù)值越大,表示該線程的優(yōu)先級越低。
答案:錯Future接口中常用方法有()
答案:booleancancel(boolean
mayInterruptIfRunning);booleanisCancelled();booleanisDone();Vget()下列有關(guān)sleep()方法的描述正確的是(
)
答案:屬于Thread類的靜態(tài)方法;讓線程在指定的時間休眠;方法參數(shù)中必傳入毫秒值下列關(guān)于同步方法的描述中,正確的是(
)
答案:同步方法在某一時刻只允許一個線程訪問;同步方法也有鎖,它的鎖就是當前調(diào)用該方法的對象;同步方法也可以是靜態(tài)方法下列關(guān)于線程的優(yōu)先級的說法中,正確的是(
)
答案:線程的優(yōu)先級仍然無法保障線程的執(zhí)行次序,只不過,優(yōu)先級高的線程獲取CPU資源的概率較大,優(yōu)先級低的并非沒機會執(zhí)行;可以通過Thread類的setPriority(intnewPriority)方法更改優(yōu)先級;優(yōu)先級不能超出1-10的取值范圍,否則拋出IllegalArgumentException在Java中,下面哪些方式可以實現(xiàn)多線程程序(
)
答案:繼承Thread類;實現(xiàn)Runnable接口Java在Object類中提供了哪些方法用于解決線程間的通信問題()
答案:wait();wait(longtimeout);notify();notifyAll()下面關(guān)于使用同步代碼塊描述正確的是(
)
答案:同步代碼塊中的鎖對象可以是任意類型的對象;當多個線程共享的鎖對象必須是唯一的;鎖對象的創(chuàng)建代碼不能放到run()方法中;當線程執(zhí)行同步代碼塊時,首先會檢查鎖對象的標志位下列關(guān)于Thread類的說法中,錯誤的是(
)
答案:Thread類是一個接口,創(chuàng)建線程類,需要實現(xiàn)其run()方法;Thread類是一個抽象類,創(chuàng)建線程類,需要重寫其run()方法同步代碼塊的作用是(
)
答案:保證多線程訪問數(shù)據(jù)的安全;保證同步代碼塊中只有一個線程運行下列選項中,屬于可以實現(xiàn)多線程程序方式的是(
)
答案:繼承Thread類;實現(xiàn)Runnable接口下面關(guān)于線程創(chuàng)建的說法中,錯誤的有(
)
答案:定義Thread類的子類,重寫Thread類的run()方法,創(chuàng)建該子類的實例對象,調(diào)用對象的run()方法;定義一個實現(xiàn)Runnable接口的類并實現(xiàn)run()方法,創(chuàng)建該類實例對象,將其作為參數(shù)傳遞給Thread類的構(gòu)造方法來創(chuàng)建Thread對象,調(diào)用Thread對象的start()方法下列關(guān)于線程優(yōu)先級的描述中,正確的是(
)
答案:線程的優(yōu)先級需要操作系統(tǒng)支持,不同的操作系統(tǒng)對優(yōu)先級的支持是不一樣。;在程序中可以對線程的優(yōu)先級進行重新設(shè)置。publicclassExample{
publicstaticvoidmain(String[]args){
SaleThreadsaleThread=newSaleThread();//創(chuàng)建Ticket1對象
//創(chuàng)建并開啟四個線程
newThread(saleThread,"窗口1").start();
newThread(saleThread,"窗口2").start();
newThread(saleThread,"窗口3").start();
newThread(saleThread,"窗口4").start();
}}//定義Ticket1類實現(xiàn)Runnable接口classSaleThreadimplementsRunnable{
privateinttickets=10;//10張票
publicvoidrun(){
while(tickets>0){
try{
Thread.sleep(5);//經(jīng)過此處的線程休眠10毫秒
}catch(InterruptedExceptione){
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"---賣出的票"+tickets--);
}
}}運行以上程序,可能的運行結(jié)果是(
)
答案:某個窗口賣出了負數(shù)張票;同一張票被賣出兩次閱讀下面程序publicclassExample{
publicstaticvoidmain(String[]args){
TicketWindowtw=newTicketWindow();
newThread(tw,"窗口1").start();
newThread(tw,"窗口2").start();
}}classTicketWindowimplementsRunnable{
privateinttickets=50;
publicvoidrun(){
while(true){
if(tickets>0){
Threadth=Thread.currentThread();
Stringth_name=th.getName();
System.out.println(th_name+"正在發(fā)售第"+tickets--+"張票");
}
}
}}下列選項中,可能是程序運行結(jié)果的是(
)
答案:窗口1和窗口2共賣了50張票;窗口1和窗口2各賣了25張票;窗口1賣了50張票,窗口2賣了0張票Executors創(chuàng)建線程池的方法說明,正確的是()
答案:newCachedThreadPool()創(chuàng)建一個可擴展線程池的執(zhí)行器。;newFixedThreadPool(intnThreads)創(chuàng)建一個固定線程數(shù)量線程池的執(zhí)行器;newSingleThreadExecutor()在特殊需求下創(chuàng)建一個只執(zhí)行一個任務(wù)的單個線程;newScheduledThreadPool(intcorePoolSize)創(chuàng)建一個定長線程池,支持定時及周期性任務(wù)執(zhí)行下列選項中,會導(dǎo)致線程進入死亡狀態(tài)的是(
)
答案:線程的run()方法正常執(zhí)行完畢;線程拋出一個未捕獲的異常;線程執(zhí)行過程中出現(xiàn)錯誤Thread類中,可以使線程休眠的方法是(
)
答案:sleep();wait()下列關(guān)于同步代碼塊的特征說法錯誤的是(
)
答案:多線程同步的鎖只能是object對象下列關(guān)于進程和線程的說法中,錯誤的是(
)
答案:、線程和進程一樣,是由CPU同時執(zhí)行的下列關(guān)于Java后臺線程的描述,錯誤的是()
答案:在start()方法執(zhí)行后,使用setDaemon(true)可以將線程設(shè)置為后臺線程以下寫法中可以正確定義一個同步代碼塊的是(
)
答案:synchronized(對象){}關(guān)于線程的死鎖,下面的說法正確的是(
)
答案:線程的死鎖是一種邏輯運行錯誤,編譯器無法檢測下列方法中,可以實現(xiàn)線程讓步的是(
)
答案:yield()下列關(guān)于Thread類中sleep()方法的描述,錯誤的是(
答案:、sleep()方法指定時間結(jié)束后,線程進入了運行狀態(tài)下列關(guān)于線程優(yōu)先級的描述,錯誤的是(
)
答案:新建線程的優(yōu)先級默認為最低Java多線程中,關(guān)于解決死鎖的方法說法錯誤的是(
)
答案:使用打破循環(huán)等待條件(避免第一個線程等待其它線程,后者又在等待第一個線程)的方法不能避免線程死鎖下列關(guān)于Thread類的說法中,錯誤的是()
答案:Thread類屬于java.util包下列關(guān)于多線程中的靜態(tài)同步方法說法中,正確的是()
答案:靜態(tài)同步方法的鎖不是this,而是該方法所在類的class對象CompletableFuture對象創(chuàng)建的方法說明,錯誤的是()
答案:supplyAsync(Suppliersupplier)并使用指定作為它的線程池執(zhí)行異步代碼獲取CompletableFuture計算結(jié)果非空的對象wait()方法作用是()
答案:導(dǎo)致線程等待下面關(guān)于靜態(tài)同步方法說法錯誤的是(
)
答案:一個類中的多個同步靜態(tài)方法可以同時被多個線程執(zhí)行。notify()方法作用是()
答案:喚醒線程關(guān)于Thread類yield()方法的作用,下列描述中正確的是(
)
答案:使線程由運行狀態(tài)進入就緒狀態(tài)下面關(guān)于yield方法描述正確的是(
答案:yield方法是用于線程讓步下列情況中,不會使線程返回所持有的對象鎖的是(
)
答案:當調(diào)用了線程的suspend()方法下列屬于定義同步代碼塊的關(guān)鍵字的是(
)
答案:synchronized下列有關(guān)線程的創(chuàng)建方式說法錯誤的是()
答案:通過繼承Thread類與實現(xiàn)Runnable接口創(chuàng)建多線程這兩種方式?jīng)]有區(qū)別線程的優(yōu)先級用1-10之間的整數(shù)表示,默認的優(yōu)先級是()
答案:5下列關(guān)于線程狀態(tài)轉(zhuǎn)換的描述中,錯誤的是(
)
答案:死亡狀態(tài)下的線程調(diào)用start()方法可以使其重新進入就緒狀態(tài)JAVA中調(diào)用Thread類的sleep()方法后,當前線程狀態(tài)如何轉(zhuǎn)換()
答案:由運行狀態(tài)進入等待狀態(tài)以下關(guān)于Runnable接口的描述錯誤的是()
答案:通過Runnable接口中的start()方法可以開啟線程以下哪個方法可以實現(xiàn)線程讓步(
)
答案:yield()下列有關(guān)Java多線程中靜態(tài)同步方法的說法錯誤的是(
)
答案:靜態(tài)同步方法不可以和以this為同步監(jiān)視器的同步代碼塊同時執(zhí)行分析程序,寫出結(jié)果classInfo{
privateStringname="張三";
privatebooleanflag=false;
publicsynchronizedvoidset(Stringname){
if(!flag){
try{
super.wait();
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
this.setName(name);
try{
Thread.sleep(300);
}catch(InterruptedExceptione){
e.printStackTrace();
}
flag=false;
super.notify();
}
publicsynchronizedvoidget(){
if(flag){
try{
super.wait();
}catch(InterruptedExceptione){
e.printStackTrace();
}
}
try{
Thread.sleep(300);
}catch(InterruptedExceptione){
e.printStackTrace();
}
System.out.println(this.getName()+"-->"
);
flag=true;
super.notify();
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
=name;
}
}
classProducerimplementsRunnable{
privateInfoinfo=null;
publicProducer(Infoinfo){
=info;
}
@Override
publicvoidrun(){
booleanflag=false;
for(inti=0;i<20;i++){
if(flag){
.set("張三");
flag=false;
}else{
.set("李四");
flag=true;
}
}
}
}
classConsumerimplementsRunnable{
privateInfoinfo=null;
publicConsumer(Infoinfo){
=info;
}
@Override
publicvoidrun(){
for(inti=0;i<20;i++){
try{
Thread.sleep(100);
}catch(InterruptedExceptione){
e.printStackTrace();
}
.get();
}
}
}
publicclassThreadDemo2{
publicstaticvoidmain(String[]args){
Infoi=newInfo();
Producerpro=newProducer(i);
Consumercon=newConsumer(i);
newThread(pro).start();
newThread(con).start();
}
}
答案:張三-->李四-->張三-->李四-->張三-->李四-->張三-->李四-->張三-->李四-->張三-->李四-->張三-->李四-->張三-->李四-->張三-->李四-->張三-->李四-->分析程序,寫出結(jié)果classMyThread1extendsThread{
privateStringname;
publicMyThread1(Stringname){
=name;
}
@Override
publicvoidrun(){
for(inti=0;i<10;i++){
System.out.println(name+i);
}
}
}
classMyThread2implementsRunnable{
privateStringname;
publicMyThread2(Stringname){
=name;
}
@Override
publicvoidrun(){
for(inti=0;i<10;i++){
System.out.println(name+i);
}
}
}
classMyThread3implementsRunnable{
privateintticket=5;
@Override
publicvoidrun(){
if(ticket>0){
System.out.println("賣票:ticket="+ticket--);
}
}
}
classMyThread4implementsRunnable{
@Override
publicvoidrun(){
for(inti=0;i<3;i++){
System.out.println(Thread.currentThread().getName()+"運行,i="+i);
}
}
}
classMyThread5implementsRunnable{
privateStringname;
privateinttime;
publicMyThread5(Stringname,inttime){
=name;
this.time=time;
}
@Override
publicvoidrun(){
try{
Thread.sleep(this.time);
}catch(InterruptedExceptione){
e.printStackTrace();
}
System.out.println(+"線程,休眠"+this.time+"毫秒");
}
}
classMyThread6implementsRunnable{
privateintticket=110;
@Override
publicvoidrun(){
for(inti=0;i<200;i++){
synchronized(this){
if(ticket>0){
try{
Thread.sleep(100);
}catch(InterruptedExceptione){
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName()+"賣票:ticket="+ticket--);
}
}
}
}
}
publicclassThreadDemo1{
publicstaticvoidmain(String[]args){
MyThread6mt=newMyThread6();
Threadt1=newThread(mt,"A");
Threadt2=newThread(mt,"B");
Threadt3=newThread(mt,"C");
Threadt4=newThread(mt,"D");
Threadt5=newThread(mt,"E");
t1.start();
t2.start();
t3.start();
t4.start();
t5.start();
}
}
答案:B賣票:ticket=110B賣票:ticket=109B賣票:ticket=108B賣票:ticket=107B賣票:ticket=106B賣票:ticket=105B賣票:ticket=104B賣票:ticket=103B賣票:ticket=102B賣票:ticket=101B賣票:ticket=100B賣票:ticket=99E賣票:ticket=98E賣票:ticket=97E賣票:ticket=96E賣票:ticket=95E賣票:ticket=94E賣票:ticket=93E賣票:ticket=92E賣票:ticket=91E賣票:ticket=90E賣票:ticket=89E賣票:ticket=88E賣票:ticket=87E賣票:ticket=86E賣票:ticket=85E賣票:ticket=84E賣票:ticket=83E賣票:ticket=82E賣票:ticket=81E賣票:ticket=80E賣票:ticket=79E賣票:ticket=78E賣票:ticket=77E賣票:ticket=76D賣票:ticket=75D賣票:ticket=74D賣票:ticket=73D賣票:ticket=72C賣票:ticket=71C賣票:ticket=70C賣票:ticket=69C賣票:ticket=68C賣票:ticket=67C賣票:ticket=66C賣票:ticket=65A賣票:ticket=64A賣票:ticket=63A賣票:ticket=62C賣票:ticket=61C賣票:ticket=60C賣票:ticket=59C賣票:ticket=58C賣票:ticket=57C賣票:ticket=56C賣票:ticket=55C賣票:ticket=54C賣票:ticket=53C賣票:ticket=52C賣票:ticket=51C賣票:ticket=50D賣票:ticket=49D賣票:ticket=48D賣票:ticket=47D賣票:ticket=46D賣票:ticket=45D賣票:ticket=44D賣票:ticket=43D賣票:ticket=42D賣票:ticket=41E賣票:ticket=40E賣票:ticket=39E賣票:ticket=38E賣票:ticket=37E賣票:ticket=36E賣票:ticket=35E賣票:ticket=34E賣票:ticket=33E賣票:ticket=32E賣票:ticket=31E賣票:ticket=30E賣票:ticket=29B賣票:ticket=28B賣票:ticket=27B賣票:ticket=26B賣票:ticket=25B賣票:ticket=24B賣票:ticket=23B賣票:ticket=22B賣票:ticket=21B賣票:ticket=20B賣票:ticket=19B賣票:ticket=18B賣票:ticket=17B賣票:ticket=16B賣票:ticket=15B賣票:ticket=14E賣票:ticket=13E賣票:ticket=12D賣票:ticket=11D賣票:ticket=10D賣票:ticket=9D賣票:ticket=8D賣票:ticket=7D賣票:ticket=6D賣票:ticket=5C賣票:ticket=4C賣票:ticket=3C賣票:ticket=2C賣票:ticket=1分析程序,寫出結(jié)果packagecom.wj.demo;
/*
*1.Product類是一個產(chǎn)品類,用來表示生產(chǎn)產(chǎn)品
*2.里面的有set和get方法,set方法用來設(shè)置生產(chǎn)什么樣的產(chǎn)品,get是得到產(chǎn)品*/
classProduct{
privateStringname="A";//產(chǎn)品的名字
privatebooleanflag=true;//標志,true代表可以生產(chǎn),false代表可以取得產(chǎn)品
publicsynchronizedvoidgetName(){//得到產(chǎn)品的函數(shù)
if(flag){//如果標志為true,則代表只可以生產(chǎn),不能進行取產(chǎn)品
try{
super.wait();//調(diào)用Object父類的方法,使得到該對象鎖的線程等待,把該線程放到等待該對象鎖的隊列里面
//,并且釋放cpu,和釋放該對象的對象鎖,使其他的線程可以得到該對象的鎖
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
System.out.println(name);//打印產(chǎn)品的名字
try{
Thread.sleep(200);//該線程休眠200毫秒,釋放cup,讓其他的線程執(zhí)行,但是不會釋放對象鎖
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
flag=true;//把標志置位true,表示已經(jīng)取了產(chǎn)品了,可以進行生產(chǎn)了,已經(jīng)不沒有產(chǎn)品了,不能得到產(chǎn)品了
//調(diào)用了super.notifyAll()方法后,并不會馬上執(zhí)行,要等待synchronized代碼塊所有的程序執(zhí)行完了以后才會
//釋放對象鎖,進行喚醒其他的線程
super.notifyAll();//調(diào)用父類Object的方法,釋放對象鎖,喚醒在等待該對象鎖的所有線程
}
publicsynchronizedvoidsetName(Stringname){
if(!flag){//如果flag為false則表示,只可以取產(chǎn)品,不能進行生產(chǎn)產(chǎn)品
try{
super.wait();//進行等待,和上面的一樣
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
try{
Thread.sleep(200);//解釋如上
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
=name;//設(shè)置產(chǎn)品的名字
flag=false;//設(shè)置標志,表示可以取產(chǎn)品了,不能再進行生產(chǎn)了
super.notifyAll();//如上所示,喚醒其他的想得到該對象鎖的所有線程
}
}
//Factory類是一個工廠,用來控制生產(chǎn)什么樣的產(chǎn)品
classFactoryimplementsRunnable{
privateProductproduct;//共享的對象
publicFactory(Productproduct){//構(gòu)造函數(shù),對product進行初始化
super();
duct=product;
}
@Override
publicvoidrun(){//覆寫的run方法,進行線程操作
//TODOAuto-generatedmethodstub
for(inti=1;i<31;i++){
if(i%3==1){//如果余數(shù)為1,則生產(chǎn)A產(chǎn)品
product.setName("A");//生產(chǎn)A產(chǎn)品
}elseif(i%3==2){//如果余數(shù)為2,則生產(chǎn)B產(chǎn)品
product.setName("B");//生產(chǎn)B產(chǎn)品
}else{//其他的生產(chǎn)C產(chǎn)品
product.setName("C");//生產(chǎn)C產(chǎn)品
}
}
}
}
//Customer是消費者類,用來使用工廠生產(chǎn)的產(chǎn)品
class
CustomerimplementsRunnable{
privateProductproduct;//貢獻資源對象
publicCustomer(Productproduct){//構(gòu)造函數(shù),初始化product
super();
duct=product;
}
@Override
publicvoidrun(){
//TODOAuto-generatedmethodstub
for(inti=1;i<31;i++){
try{
Thread.sleep(500);//進行線程休眠,使打印有時間延遲
}catch(InterruptedExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
System.out.print(""+i+"----->");
duct.getName();//消費產(chǎn)品
}
}
}
publicclassThreadDemo4{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Productp=newProduct();//創(chuàng)建共享資源對象
Factoryfp=newFactory(p);//創(chuàng)建工廠
Customercp=newCustomer(p);//創(chuàng)建消費者
Threadtfp=newThread(fp);//創(chuàng)建工廠線程進行生產(chǎn)
Threadtcp=newThread(cp);//創(chuàng)建消費者線程進行消費
tfp.start();//啟動線程
tcp.start();//啟動線程
}
}
答案:1----->A2----->B3----->C4----->A5----->B6----->C7----->A8----->B9----->C10----->A11----->B12----->C13----->A14----->B15----->C16----->A17----->B18----->C19----->A20----->B21----->C22----->A23----->B24----->C25----->A26----->B27----->C28----->A29----->B30----->C簡述程序、進程和線程之間的關(guān)系?什么是多線程程序?
答案:答:程序是一段靜態(tài)的代碼,它是應(yīng)用軟件執(zhí)行的藍本。進程是程序的一次動態(tài)執(zhí)行過程,它對應(yīng)了從代碼加載、執(zhí)行到執(zhí)行完畢的一個完整過程。這個過程也是進程本身從產(chǎn)
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年清廉國企自查自糾報告
- 小微企業(yè)融資方案設(shè)計與風(fēng)險控制
- 物流企業(yè)倉儲信息化管理解決方案
- 高校教師教學(xué)評價方案與實施
- aalc板施工方案(3篇)
- 客運中心應(yīng)急預(yù)案(3篇)
- 樓頂爬梯施工方案(3篇)
- 小熊飯盒活動策劃方案(3篇)
- 商品調(diào)價應(yīng)急預(yù)案(3篇)
- 上海路施工方案(3篇)
- DB5101∕T 213-2025 公園城市濱水綠地鳥類棲息地植物景觀營建指南
- 胃淋巴瘤的超聲內(nèi)鏡診斷與治療
- 產(chǎn)線協(xié)同管理制度
- GB/T 45356-2025無壓埋地排污、排水用聚丙烯(PP)管道系統(tǒng)
- 2025既有建筑改造利用消防設(shè)計審查指南
- 籃球場工程施工設(shè)計方案
- (市質(zhì)檢二檢)福州市2024-2025學(xué)年高三年級第二次質(zhì)量檢測 歷史試卷(含答案)
- 《外科手術(shù)學(xué)基礎(chǔ)》課件
- 化學(xué)-湖南省永州市2024-2025學(xué)年高二上學(xué)期1月期末試題和答案
- 2025年貴安發(fā)展集團有限公司招聘筆試參考題庫含答案解析
- DB33T 1214-2020 建筑裝飾裝修工程施工質(zhì)量驗收檢查用表標準
評論
0/150
提交評論