版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、、填空題 1、封裝、繼承、多態(tài) 2、new 3 、成員變量、局部變量 4、類、類 5、 this 6 、finalize()第 1 章 Java 開發(fā)入門 一、填空題 1、 Java EE 、Java SE 、Java ME 2 、 JRE 3 、 javac 4 、 bin 5、 path 、 classpath 二、選擇題 1 、ABCD 2 、C 3、D 4、B 5、B 三、簡答題 1、面向?qū)ο蟆⒖缙脚_性、健壯性、安全性、可移植性、多線程性、動態(tài)性等。 2、 JRE( Java Runtime Environment , Java 運(yùn)行時(shí)環(huán)境) ,它相當(dāng)于操作系統(tǒng)部分,提供了 Java
2、程序運(yùn) 行時(shí)所需要的基本條件和許多 Java 基礎(chǔ)類,例如, IO 類、 GUI 控件類、網(wǎng)絡(luò)類等。 JRE 是提供給 普通用戶使用的,如果你只想運(yùn)行別人開發(fā)好的 Java 程序,那么,你的計(jì)算機(jī)上必須且只 需安裝 JRE。 JDK ( Java Development Kit ,Java 開發(fā)工具包) ,它包含編譯工具、解釋工具、文檔制作工具、打 包工具多種與 開發(fā)相關(guān)的工具,是提供給 Java 開發(fā)人員使用的。初學(xué)者學(xué)習(xí)和使用 Java 語言時(shí), 首先必須下載和安裝 JDK 。 JDK 中已經(jīng)包 含了 JRE 部分, 初學(xué)者安裝 JDK 后不必再去下載和安裝 JRE 了。 四、編程題這是第
3、一個(gè) Java 程序! "); public class HelloWorld public static void main(String args) System.out.println("第 2 章 Java 編程基礎(chǔ)、填空題 1 、 class 2 、 true 和 false 3 、 單行注釋、多行注釋、文檔注釋4、 基本數(shù)據(jù)類型、引用數(shù)據(jù)類型5、 1、2、4、8 6、填空題 1、封裝、繼承、多態(tài) 2、new 3 、成員變量、局部變量 4、類、類 5、 this 6 、finalize()、填空題 1、封裝、繼承、多態(tài) 2、new 3 、成員變量、局部變量 4、類
4、、類 5、 this 6 、finalize()& && | | 7 、 0 8 、 59、 34 10 、56 二、判斷題 1、 錯(cuò) 2、對 3、錯(cuò) 4、對 5、錯(cuò) 三、選擇題 1 、AD 2 、AD 3 、C 4 、 ABCD 5 、 C 6、A 7、AC 8、填空題 1、封裝、繼承、多態(tài) 2、new 3 、成員變量、局部變量 4、類、類 5、 this 6 、finalize()A 9、B 10 、A 四、程序分析題 1、 編譯不通過。 int 值 4 和 b 相加時(shí),由于變量 b 的類型為 byte ,取值范圍沒有 int 類型大, 存不下 int 類型的值,因
5、此編譯不通過。 2、 編譯不通過。這是因?yàn)?y 是在最里層的代碼塊中定義的一個(gè)變量,只有在那個(gè)代碼塊中才可使用, 在使用 y = x; 語句時(shí)已經(jīng)超過了 y 變量的作用域,所以編譯無法通過。3、 打印結(jié)果為: 3。 4、 打印結(jié)果為: 9 8 7 五、問答題 1、 Java 語言的八種基本數(shù)據(jù)類型有: byte 字節(jié)型,占一個(gè)字節(jié)。 short 短整型,占兩個(gè)字節(jié)。 int 整型, 占 4 個(gè)字 節(jié)。 long 長整型,占 8 個(gè)字節(jié)。 float 單精度浮點(diǎn)型,占 4 個(gè)字節(jié)。 double 雙精度浮點(diǎn)型, 占 8 個(gè)字節(jié)。 char 字符型,占兩個(gè) 字節(jié)。 boolean 型,表示邏輯值,
6、有 true 和 false 兩個(gè)值,分別占 一個(gè)字節(jié)。 2、如果使用 “&”在表達(dá)式之間進(jìn)行連接,那么無論 任何情況, “&兩”邊的表達(dá)式都會參與計(jì)算。 如果使用 “&&”進(jìn)行連接,當(dāng) “&&”左邊的表達(dá)式為 false ,則不會執(zhí)行其右邊的表達(dá)式。 例如 定義 int x = 2,y = 0; boolean b = x < y & x / 2 > 0 表達(dá)是會發(fā)生被 0 除異常, 因?yàn)?x / y 的表達(dá)式執(zhí)行 了。而 boolean b = x < y & x / 2 > 0 是不會出現(xiàn)這種異常的,
7、因?yàn)?x < y 為 false ,表達(dá)式 x / y 不會 執(zhí)行。 3、方法重載指的是在一個(gè)類中可以聲明多 個(gè)同名的方法, 而方法中參數(shù)的個(gè)數(shù)或者數(shù)據(jù)類型不一致。 調(diào)用這些同名的方法時(shí), JVM 會根據(jù)實(shí)際參數(shù)的不同綁定到不同的方法。 六、編程題 1、參考答案 public class Test01 public static void main(String args) int sum = 0; for (int i = 1; i < 100; i+) if (i % 2 != 0) sum += i; System.out.println(sum); 2、參考答案public
8、 class Test02 public static void main(String args) int y = function(0);System.out.println(y); public static int function(int x) int y; if (x > 0) y = x + 3; else if (x = 0) y = 0; else y = x * x - 1; return y; 3、參考答案public class Test03 public static void main(String args) int arr = 25, 24, 12, 76
9、, 101, 96, 28 ; for (int i = 0; i < arr.length - 1; i+) / 定義內(nèi)層循環(huán) for (int j = 0; j < arr.length - i - 1; j+) if (arrj > arrj + 1) / 比較相鄰元素 / 下面的三行代碼用于交換兩個(gè)元素 int temp = arrj; arrj = arrj + 1; arrj + 1 = temp; for (int i = 0; i < arr.length; i+) System.out.print(arri + " "); /打印元
10、素和空格 第 3 章 面向?qū)ο螅ㄉ希?、靜態(tài)變量 8、內(nèi)部類 9、javadoc 10 、private 二、判斷題 1、對 2、對 3、錯(cuò) 4、對 5、錯(cuò)三、選擇題 1、B 2、D 3、B 4、ABC 5、ABCD 6 、ACD 7 、ABCD 8 、ABCD 9 、D 10 、D 四、程序分析題 1、程序不能編譯通過,因?yàn)樵陬?A 中的成員變量 secret 用 private 修飾,所以在類 Test1 中無法訪問。 2、程序不能編譯通過,因?yàn)樵陟o態(tài)方法 method() 中不能訪問非靜態(tài)成員變量x。 3、程序能夠編譯通過,運(yùn)行的結(jié)果為 “inner ”。 五、簡答題 1、構(gòu)造方法是類的
11、一個(gè)特殊成員,它會在類實(shí)例化對象時(shí)被自動調(diào)用。而普通方 法只有在使用的時(shí) 候才會被調(diào)用。在定義構(gòu)造方法時(shí)要求方法名與類名相同、在方法名的前面沒有返回值類型的聲 明、在方法中不 能使用 return 語句返回一個(gè)值 2、單例模式可以保證在整個(gè)程序運(yùn)行期間針對該類只存在一個(gè)實(shí)例對象。六、編程題 1、參考答案class Student private String name; private double grade; public Student() public Student(String name, double grade) = name; this.grade = gr
12、ade; public String getName() return name; public void setName(String name) = name; public double getGrade() return grade; public void setGrade(double grade) this.grade = grade; public class Test01 public static void main(String args) Student stu1 = new Student();stu1.setName("zhangsan
13、"); stu1.setGrade(99); Student stu2 = new Student("lisi" 100); 2、參考答案class Father private String name = "zhangjun" class Child public void introFather() System.out.println("My Father's name is " + name); public class Test02 public static void main(String args)
14、Father.Child child = new Father().new Child(); roFather(); 第 4 章面向?qū)ο?下)一、填空題 1、繼承 2、方法,抽象類 3 、import 4 、子類、父類、基類 5、Exception 6 、final 7 、super 8、 Object 9 、try、catch 10、 jar pvf , java -ar 二、判斷題 1、錯(cuò) 2、對 3、錯(cuò) 4、對 5、對三、選擇題 1、B 2、C 3、ABC 4、ABCD 5、C 6、AC 7、C 8、 D 9、A 10、B 四、程序分析題 1、程序編譯能通過,這是因?yàn)?
15、int x = 2 / 0; System.out.println(x); 這兩條語句使用了 try 塊,捕獲了 程序因?yàn)槌?0 而產(chǎn)生的異常情況, 之后程序會繼續(xù)向下執(zhí)行, 輸出“進(jìn)入 catch 代碼塊”, “進(jìn)入 finally 代碼塊”。 2、程序 編譯不通過,這是因?yàn)樵诔绦蛑惺褂昧薴inal關(guān)鍵字修飾 Animal類,使得Animal類不能被繼承。shout()方法中同樣使用了 final關(guān)鍵字,使得該方法不能被重寫。3、程序編譯能通過,輸出結(jié)果為動物叫!”和汪汪”,因?yàn)樵诔绦蛑姓{(diào)用 shout()方法時(shí),首先 會通過super.shout()調(diào)用父類的方法說出動物叫! ”之后再輸
16、出汪汪” 4程序編譯不通過,因?yàn)榻涌谥卸x的方法不能有方法體,所以定義的eat()方法是錯(cuò)誤的。接口中 的方法必須在子類中全部實(shí)現(xiàn),由于run()方法在子類中并沒有重新實(shí)現(xiàn),所以這也是錯(cuò)誤的。五、簡答題1、在繼承關(guān)系中,子類的方法與父類的某一方法具有相同的方法名、返回類型和參數(shù)列表,則稱子類的該方法重寫 (覆蓋)父類的方法。2、多態(tài)意味著一個(gè)對象有著多種形態(tài),可以在特定的情況下,表現(xiàn)不同的狀態(tài),從而對應(yīng)著不同的屬性和方法。簡單的說,多態(tài)就是使用父類類型的變量引用子類對象,根據(jù)被引用子類對象的特 性,程序會得到不同的運(yùn)行效果。 3、在 Java 中,使用 abstract 關(guān)鍵 字修飾的類稱之為
17、抽象類。抽象類是不能被實(shí)例化的,通常需要寫一個(gè)子類來繼承抽象類,同時(shí)實(shí)例化子類來獲得該類的對象。抽象類通常用于表示一種抽象的概念。 接口可以說是一種特殊的抽象類, 接口中只能定義常量和抽象方法。 由于接口的特殊性,在定義時(shí) 需要使用 interface 關(guān)鍵字。 六、編程題 1、參考答案 class Student public String name; public int age; public Student(String name,int age) =name; this.age=age; public void show() System.out.println(&
18、quot;name: "+name+" age: "+age); class UnderGraduate extends Student public String degree; public UnderGraduate(String name,int age,String degree) super(name, age); this.degree=degree; public voidshow() System.out.println("name: "+name+" age: "+age+" degree: &
19、quot;+degree); public class Test01 public static void main(String args) Student student = new Student("zhangsan" 16); student.show(); UnderGraduate underGraduate = new UnderGraduate("lisi" 20, "bechalor"); underGraduate.show(); 3、參考答案2、參考答案interface Shape double area(do
20、uble givenValue); class Square implements Shape public double area(double sideLength) return sideLength*sideLength; class Circle implements Shape public double area(double r) return Math.PI*r*r; public classTest02 public static void main(String args) Shape square = new Square(); Shape circle = new C
21、ircle();System.out.println(square.area(2); System.out.println(circle.area(3); 3、參考答案class NoThisSongException extends Exception public NoThisSongException() super(); public NoThisSongException(String message) super(message); class Player public void play(int index)throws NoThisSongException if(index
22、>10) throw new NoThisSongException(" 您播放的歌曲不存在 "); System.out.println(" 正在播放歌曲 "); public class Test03 public static void main(String args) Player player = new Player(); try player.play(13); catch (NoThisSongException e) System.out.println(" 異常信息為: "+e.getMessage();
23、第 5 章 多線程一、填空題 1、 線程、通信 2、 Thread 、Runnable 3 、 就緒 4、 synchronized 、對象、 this 5 、 進(jìn)程 6 、新建狀態(tài) (New) 、 就緒 狀態(tài) (Runnable) 、 運(yùn)行狀態(tài) (Running) 、 阻塞狀態(tài) (Blocked) 、 死亡狀態(tài) (Terminated) 7 、 10 、1 8、 開啟一個(gè)新線程、 run() 方法 9、 wait() 、notify() 、notifyAll() 10 、setDaemon(true) 、start() 二、判斷題 1、錯(cuò) 2、對 3、對 4、錯(cuò) 5、錯(cuò) 三、選擇題 1、B
24、2、AC 3 、 ABC 4、BC 5、ABD 6、ABC 7 、C 8、D 9、AB 10 、 ABCD 四、程序分析題 1 、程序不能編譯通過,因?yàn)?RunHandler 類沒有實(shí)現(xiàn) Runnable 接口, 因此 RunHandler 的實(shí)例對象不 能作為參數(shù)傳遞給 Thread 的構(gòu)造方法。 2、程序不能編譯通過, 因?yàn)?Thread 的 子類A重寫的run()方法的訪問級別不能低于父類run()方法的。訪問級別3、程序不能編譯通過,因?yàn)橥椒椒ㄖ姓{(diào)用wait()方法的對象必須為同步鎖對象。 4、 t.start(); 五、簡答題 1、一種是繼承 java.lang 包下的 Threa
25、d 類,覆寫 Thread 類的 run() 方法, 在run()方法中實(shí)現(xiàn)運(yùn)行在線程上的代碼。new Thread() public void run() .start();另一種就是實(shí)現(xiàn)java.Iang.Runnable 接口,同樣是在 run()方法中實(shí)現(xiàn)運(yùn)行在線程上的代碼。new Thread(new Runnable() public void run() ).start()2、調(diào)用 sleep() 方法,正在執(zhí)行的線程主動讓出 CPU 去執(zhí)行其他線程,在 sleep() 方法指定的時(shí)間過后, CPU 才會回到這個(gè)線程 上繼續(xù)往下執(zhí)行,如果當(dāng)前線程進(jìn)入了同步鎖,sleep()方法并
26、不會釋放鎖,即使當(dāng)前線程使用 sleep()方法讓出了 CPU,但其它被同步鎖擋住了的線程也無法得到執(zhí)行。 wait()在一個(gè)已經(jīng)進(jìn)入了同步鎖的線程內(nèi)進(jìn)行調(diào)用, 讓當(dāng)前線程暫時(shí)讓出同步鎖,以便其它正在等待此 鎖的線程可以得到同步鎖并運(yùn)行。 當(dāng) 其它線程調(diào)用了 notify() 方法后,調(diào)用 wait() 方法的線程就會 解除 wait 狀態(tài),當(dāng)再次獲得同步鎖后,程序可以繼續(xù)向下執(zhí)行。六、編程題 1、參考答案public class MyThread extends Thread public MyThread(String name) super(name); public void run(
27、) System.out.println(this.getName(); public static void main(String args) new MyThread("Thread1").start(); new MyThread("Thread2").start(); 2、參考答案public class MyRunnable implements Runnable public void run() for (int i = 0; i < 50; i+) System.out.println("new"); publ
28、ic static void main(String args) new Thread(new MyRunnable().start(); for (int i = 0; i < 100; i+) System.out.println("main"); public class Test01 public static void main(String args) Teacher t = new Teacher(); new Thread(t, " 陳老師 ").start(); new Thread(t,"高老師 ").sta
29、rt(); new Thread(t, " 李老師 ").start(); class Teacher implements Runnable private int notes = 80; public void run() while (true) dispatchNotes(); / 調(diào)用售票方法 if (notes <= 0) break; private synchronized void dispatchNotes() if (notes > 0) try Thread.sleep(10); / 經(jīng)過的線程休眠 10 毫秒 catch (Interr
30、uptedException e) e.printStackTrace(); System.out.println(Thread.currentThread().getName() + "-發(fā)出的筆記 " + notes-); 4、參考答案public class Accumulator extends Thread private int stratNum; public static int sum; public Accumulator(int startNum) this.stratNum = startNum; public static synchronized
31、 void add(int num) sum += num; public void run() int sum = 0; for (int i = 0;i < 10; i+) sum += stratNum + i; add(sum); public static void main(String args) throws Exception Thread threadList = newThread10; for (int i = 0; i < 10; i+) threadListi = new Accumulator(10 * i + 1); threadListi.star
32、t(); for (int i = 0; i < 10; i+) threadListi.join(); System.out.println("Sum is : " + sum); 第 6 章 JavaAPI一、填空題 1、 String、StringBuffer 2、Date、Calendar、DateFormat 3、 getRuntime() 4、sqrt() 5、 DateFormat 6、 n、e 7、 Random 、java.util 8 、 length() 9 、靜態(tài) 10、edcba 二、判斷題 1、錯(cuò) 2、錯(cuò) 3、對4、錯(cuò) 5、對 6、B 7、
33、C 8、A 9、A 10、B三、選擇題 1、C 2、C 3、D 4、C 5、C 四、程序分析題 1、程序編譯能通過,輸出結(jié)果如下5 7.0 -8.0 -5 8.1 -6.12、程序編譯能通過,輸出結(jié)果如下str.length():15 str.charAt(0):d lastIndexOf(m):10 substring(2,4):fe indexOf(g):5五、簡答題 1、String 類是不可變類,即字符串值一旦初始化后就不可能改變。 StringBuffer 是可變字符串類,類 似 String 的緩沖 區(qū),可以修改字符串的值。 2、Date 類用來表示某個(gè)特定的瞬間, 能夠精確到毫秒
34、。而在實(shí)際應(yīng)用中,往往需要把一個(gè)日期中的 年、 月、日等信息單獨(dú)返回進(jìn)行顯示或處理,這個(gè)類中的大部分方法都已被標(biāo)記過時(shí)。Calender 類基本取代了 Date 類,該類中定義了一系列用于完成日期和時(shí)間字段操作的方法。 Calendar的getTime()方法,getTime()返回一個(gè)表示 Calendar時(shí)間值的 Date對象, 同時(shí) Calendar 有一個(gè) setTime(Date date) 方法, setTime() 方法接收一個(gè) Date 對象,將 Date 對象表示的時(shí)間值設(shè)置給Calendar 對象,通過這兩個(gè)方法就可以完成 Date 和 Calendar 對象之間的轉(zhuǎn)換。
35、六、編程題 1、參考答案public class Test01 public static void main(String args) String str = "HelloWorld" /字符串轉(zhuǎn)成 char 數(shù)組 char ch =str.toCharArray(); StringBuffer buffer = new StringBuffer(); for (int i = str.length() - 1; i >= 0; i-) if (chi >= 'A' && chi <= 'Z') buff
36、er.append(String.valueOf(chi).toLowerCase(); else if (chi >= 'a' && chi <= 'z') buffer.append(String.valueOf(chi).toUpperCase(); System.out.println(buffer.toString(); 2、參考答案import java.text.DateFormat; import java.util.Calendar; import java.util.Date; public class Test0
37、2 public static void main(String args) Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.DATE, 100); Date date = calendar.getTime(); DateFormat format = DateFormat.getDateInstance(DateFormat.FULL); String string = format.format(date); System.out.println(string); 3、參考答案import java.uti
38、l.Random; public class Test03 public static void main(String args) Random rand = new Random(); int num = new int5; for (int i = 0; i < num.length; i+) numi = 20 + rand.nextInt(31); System.out.println(numi); 第 7 章集合類一、填空題 1、集合 2、Comparator 3 、有序、可重復(fù),無序、不可重復(fù)4 、hashNext() 、next() 5 、Collection 、Map
39、6 、鍵、值 7、ListIterator 8 、 ArrayList 、 LinkedList , HashSet 、 TreeSet ,HashMap 、TreeMap 9 、 put() 、 get() 10 、 Collections 、Arrays 二、判斷 題 1、錯(cuò) 2、對 3、對 4、錯(cuò) 5、對三、選擇題 1、BC 2、A 3、D 4、ABD 5 、C 6、AB 7、D 8、AB 9、ABC 10、B 四、程序分 析題1、程序可以編譯通過,輸出結(jié)果是“a b、c”,因?yàn)門reeSet集合不允許存放重復(fù)元素,第2次增加的元素c會覆蓋之前存入的元素c,所以輸出結(jié)果是“、b、c”,而
40、不是“、b、c、c”。2、程序不可以編譯通過,這是由于向ArrayList集合中存入元素時(shí),集合并不能記住元素的類型, 因此在取出元素時(shí),只能使用 Object 類型,而不能使用 String 類型。 3、程序可以編譯通過, 但是什么也沒有打印。使用 ListIterator 進(jìn)行從后向前的遍歷集合,可以使用 以下兩種方法,一是使用 listIterator(int index) 方法將索 引 index 的值設(shè)置為集合元素的數(shù)目, 也就是 ListIterator it = list.listIterator(3); ,二是將程序先從前向后遍歷, 然后再從后向前遍歷。4、程序編譯不通過,由于
41、 Map 集合在遍歷的過程中不能使用集合對象本身刪除元素,這會導(dǎo)致并發(fā)修改異常,若想刪除集合中的元素,可以使用 Iterator 的 remove() 方法。五、簡答題 1、為了使程序能方便的存儲和操作數(shù)目不固定的一組數(shù)據(jù), JDK 提供了一 套類庫,這些類都位 于 java.util 包中,統(tǒng)稱為集合。集合框架中包含 3 個(gè)接口,分別是 List、Set、Map。2、List 的特點(diǎn)是元素有序、元素可重復(fù)。List接口的主要實(shí)現(xiàn)類有ArrayList和LinkedList。Set的特點(diǎn)是元素?zé)o序、元素不可重復(fù)。Set接口的主要實(shí)現(xiàn)類有HashSet和TreeSet。Map的特點(diǎn)是存儲的元素是
42、鍵(Key)、值(Value)映射關(guān)系,元素都是成對出現(xiàn)的。Map接口的主要實(shí)現(xiàn)類有 HashMap 和 TreeMap 。 3、 Collection 是一個(gè)單例集合接口。 它提供了對集合對象進(jìn)行基本操作的通用方法。 Collections 是一個(gè)工具類。它包含各種有關(guān)集合操作的方法。 六、編程題 1 、參考答案import java.util.*; public class Test01 public static void main(String args) ArrayList list = new ArrayList();for(int i = 0; i < 10; i+) li
43、st.add("A"+i); Iterator it = list.iterator(); while(it.hasNext() Object obj = it.next();System.out.println(obj); 2、參考答案import java.util.*; public class Test02 public static void main(String args) HashSet hashSet = new HashSet(); Person p1 = new Person("Jack"25); Person p2 = new P
44、erson("Rose"23); Person p3 = new Person("Jack"27); hashSet.add(p1); hashSet.add(p2); hashSet.add(p3); for(Object obj:hashSet) Person p=(Person)obj; System.out.println(+":"+p.age); class Person String name; int age; public Person(String name, int age) super(); this
45、.name = name; this.age = age; public int hashCode() return name.hashCode(); public boolean equals(Object obj) if (this = obj) return true; if (obj = null) return false; Person other = (Person) obj;return .equals(); 3、參考答案import java.util.*; public class Test03 public static void m
46、ain(String args) TreeMap map = new TreeMap(new MyComparator(); map.put("1" "Lucy"); map.put("2" "Lucy"); map.put("3" "John"); map.put("4" "Smith"); map.put("5" "Amanda"); for (Object key :map.keySet()
47、 System.out.println(key + ":" + map.get(key); class MyComparator implements Comparator public int compare(Object obj1, Object obj2) String ele1 = (String) obj1; String ele2 = (String) obj2; return pareTo(ele1); 第 8 章 IO (輸入輸出)一、填空題 1、字節(jié)流、字符流 2、 File 、java.io 3 、 SequenceInputStream 4 、 Ran
48、domAccessFile 5 、管道流 6 、 LineNumberReader BufferedReader 、setLineNumber(int) 、getLineNumber() 7 、 字節(jié)流、 字符流 8、 PrintStream 、setOut(PrintStream out) 9 、 Unicode 10 、newLine() 二、判斷題 1、 錯(cuò) 2、對 3、對 4、對 5、錯(cuò) 三、選擇題 1、AB 2、C 3、C 4、 ABCD 5 、AB 6、ACD 7、A 8、A 9、D 10、A 四、程序填空題1、InputStreamReader 、br.readLine() 、運(yùn)
49、行結(jié)果為 2 2 、FileInputStream(file1) 、FileOutputStream 、fis.available() 五、問答題 1、 Java 程序通過流來完成輸入和輸出, 流是輸入或輸出信息的抽象。 流通過 Java 的輸入 /輸出系統(tǒng)與 外設(shè)連接進(jìn)行數(shù)據(jù)通信。 流是抽 象的對象, 具體實(shí)現(xiàn)代碼在 java.io 包中。 2 、字節(jié)流的兩個(gè)基類是 InputStream 和 OutputStream ,字符流的兩個(gè)基類是 Reader 和 Writer ,它們都 是 Object 類的直接子類,字節(jié)流是處理以 8 位字節(jié)為基本單位的字節(jié)流類; Reader 和 Write
50、r 類是 專門處理 16 位字節(jié)的字符流類。 3、管道流分為管道輸入流( PipedInputStream )和管道輸出流( PipedOutputStream ),通常由一個(gè) PipedInputStream 實(shí)例對象和一個(gè) PipedOutputStream 實(shí)例對象相互連接而實(shí)現(xiàn)管道通信, PipedOutputStream 向管道寫入數(shù)據(jù), PipedInputStream 從管道中讀取 PipedOutputStream 寫入的數(shù) 據(jù),管道流主要用來完成線程之間的通信。 六、編程題 1 、參考答 案import java.io.*; public class Test01 publi
51、c static void main(String args) throws Exception /字節(jié)流拷貝 FileInputStream in =new FileInputStream("E:/src.txt"); FileOutputStream out = new FileOutputStream("E:/des1.txt"); byte buf = new byte1024; int len;while (len = in.read(buf) != -1) out.write(buf, 0, len); in.close(); out.clo
52、se(); /字符流拷貝 BufferedReader bf = newBufferedReader(new FileReader("E:/src.txt"); BufferedWriter bw = new BufferedWriter(new FileWriter("E:/des2.txt"); String str;while (str = bf.readLine() != null) bw.write(str); bw.newLine(); bf.close(); bw.close(); 2、參考答案請輸入密碼 :"); passwor
53、d = br.readLine(); if 恭喜你進(jìn)入游戲 "); b = true; break; if (!b) System.out.println("import java.io.*; public class Test02 public static void main(String args) throws Exception BufferedReader br = new BufferedReader(new InputStreamReader(System.in);密碼錯(cuò)誤,游戲String password = "" boolean b
54、 = false; for (int i = 0; i < 5; i+) System.out.println(" (password.equals("123456") System.out.println(" 結(jié)束"); System.exit(0); 第 9 章 GUI (圖形用戶界面)一、填空題 1、 GUI 、java.awt 、 javax.swing 2 件、鼠標(biāo)事件、 動作事件 7 、適配器 3、 Graphics 4 、 事件監(jiān)聽器 5 、 JComponent 6 、窗體事件、鍵盤事WindowListener 、win
55、dowClosing(WindowEvent e) 8 、 模態(tài)對話框、 非模態(tài)對話框9 、 setLayout(null)10 、JMenuBar 、 JMenu 、 JMenuItem 二、判斷題 1、對 2、錯(cuò) 3、對 4、錯(cuò) 5、錯(cuò) 三、選擇題 1、D 2、D 3、ABD 4 、A 5、D 6、ABCD 四、程序分析題 1 、參考答案extends Stdno = new JTextField(); Name = new JTexxtField();7、ABD8、ABC9、D 10 、C 2、參考答案card.next(cp); cp.add(jbt);五、簡答題1、參考答案通過實(shí)現(xiàn)X
56、xxListener接口或者繼承 XxxAdapter類實(shí)現(xiàn)一個(gè)事件監(jiān)聽器類,并對處理監(jiān)聽動作的方法進(jìn)行重寫,創(chuàng)建事件源對象和事件監(jiān)聽器對象調(diào)用事件源的addXxxLisntener()方法,為事件源注冊事件監(jiān)聽器對象2、參考答案 AWT是Abstract Window ToolKit (抽象窗口工具包)的縮寫,這個(gè)工具包提供了一套與本地圖形界面進(jìn)行交互的接口。AWT中的圖形函數(shù)與操作系統(tǒng)所提供的圖形函數(shù)之間有著一一對應(yīng)的關(guān)系,當(dāng)我們利用AWT來構(gòu)件圖形用戶界面的時(shí)候,我們實(shí)際上是在利用操作系統(tǒng)所提供的圖形庫。由于不同操作系統(tǒng)的圖形庫所提供的功能是不一樣的,在一個(gè)平臺上存在的功能在另外一個(gè)平臺
57、上則可能不存在。為了實(shí)現(xiàn) Java語言所宣稱的"一次編譯,到處運(yùn)行”的概念,AWT不得不通過犧牲功能來實(shí)現(xiàn)其平臺無關(guān)性,也就是說,AWT所提供的圖形功能是各種通用型操作系統(tǒng)所提供的圖形功能的交集。由于AWT是依靠本地方法來實(shí)現(xiàn)其功能的,我們通常把AWT控件稱為重量級控件。Swing是在AWT的基礎(chǔ)上構(gòu)建的一套新的圖形界面系統(tǒng),它提供了AWT所能夠提供的所有功 能,并且用純粹的Java代碼對AWT的功能進(jìn)行了大幅度的擴(kuò)充。由于在Swing中沒有使用本地方法來實(shí)現(xiàn)圖形功能,我們通常把Swing 控件稱為輕量級控件。AWT和Swing之間的基本區(qū)別:AWT是基于本地方法的C/C+程序,其運(yùn)
58、行速度比較快;Swing是基于AWT的Java程序,其運(yùn)行速度比較慢。對于一個(gè)嵌入式應(yīng)用來說,目標(biāo)平臺的硬件資源往往非常有限,而應(yīng)用程序的運(yùn)行速度又是項(xiàng)目中至關(guān)重要的因素。在這種矛盾的情況下,簡單而高效的 AWT當(dāng)然成了嵌入式 Java的第一選擇。而在普通的基于 PC或者是工作站的標(biāo)準(zhǔn)Java應(yīng)用中,硬件資源對應(yīng)用程序所造成的限制往往不是項(xiàng)目中的關(guān)鍵因素,所以在標(biāo)準(zhǔn)版的Java中則提倡使用Swing,也就是通過犧牲速度來實(shí)現(xiàn)應(yīng)用程序的功能。六、編程題1、參考答案import java.awt.*; import java.awt.event.*;import javax.swing.*; pu
59、blic class MyMouseHandler extends JFrame publicMyMouseHandler() final JLabel label = new JLabel("此處顯示鼠標(biāo)右鍵點(diǎn)擊的坐標(biāo)");label.setOpaque(true);label.setBackground(Color.PINK); this.add(label, BorderLayout.NORTH); this.setSize(300, 200);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.addMouseListener(new MouseAdapter() public void mouseC
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度老舊鋼房拆除安全協(xié)議書
- 2025版?zhèn)€人土地租賃合同解除協(xié)議
- 2025年度個(gè)人信用借款合同綠色金融推進(jìn)協(xié)議4篇
- 2025年度個(gè)人一手房買賣合同配套設(shè)施清單范本4篇
- 2025年度個(gè)人教育培訓(xùn)抵押借款協(xié)議
- 2025年全球及中國半導(dǎo)體設(shè)備用濾波器行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025-2030全球連供無線雙面打印一體機(jī)行業(yè)調(diào)研及趨勢分析報(bào)告
- 2025年全球及中國氣調(diào)貯藏庫用庫門行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年全球及中國產(chǎn)權(quán)制作軟件行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報(bào)告
- 2025年度生物技術(shù)成果轉(zhuǎn)化合同規(guī)范范本2篇
- (二模)遵義市2025屆高三年級第二次適應(yīng)性考試試卷 地理試卷(含答案)
- 二零二五隱名股東合作協(xié)議書及公司股權(quán)代持及回購協(xié)議
- 四川省成都市武侯區(qū)2023-2024學(xué)年九年級上學(xué)期期末考試化學(xué)試題
- 2025年計(jì)算機(jī)二級WPS考試題目
- 教育部《中小學(xué)校園食品安全和膳食經(jīng)費(fèi)管理工作指引》知識培訓(xùn)
- 初一到初三英語單詞表2182個(gè)帶音標(biāo)打印版
- 《人力資源管理》全套教學(xué)課件
- 2024年秋季人教版七年級上冊生物全冊教學(xué)課件(2024年秋季新版教材)
- 年度重點(diǎn)工作計(jì)劃
- 《經(jīng)濟(jì)思想史》全套教學(xué)課件
- 環(huán)境衛(wèi)生學(xué)及消毒滅菌效果監(jiān)測
評論
0/150
提交評論