疯狂java讲义第六章课后习题答案
1.通過抽象類定義車類的模板,然后通過抽象的車類來派生拖拉機(jī)、卡車、小轎車。
瘋狂java講義第六章課后第1題答案
2.定義一個(gè)接口,并使用匿名內(nèi)部類方式創(chuàng)建接口的實(shí)例。
瘋狂java講義第六章課后第2題答案
3.定義一個(gè)函數(shù)式接口,并使用Lambda表達(dá)式創(chuàng)建函數(shù)式接口的實(shí)例。
瘋狂java講義第六章課后第3題答案
4.定義一個(gè)類,該類用于封裝一桌梭哈游戲,這個(gè)類應(yīng)該包含桌上剩下的牌的信息,并包含5個(gè)玩家的狀態(tài)信息:他們各自的位置、游戲狀態(tài)(正在游戲或已放棄)、手上已有的牌等信息。如果有可能,這個(gè)類還應(yīng)該實(shí)現(xiàn)發(fā)牌方法,這個(gè)方法需要控制從誰(shuí)開始發(fā)牌,不要發(fā)牌給放棄的人,并修改桌上剩下的牌。
瘋狂java講義第六章課后第4題答案
補(bǔ)充習(xí)題
1、嘗試把Integer類型自動(dòng)拆箱成boolean,嘗試把boolean自動(dòng)裝箱成Integer
會(huì)產(chǎn)生不兼容類型報(bào)錯(cuò)
因?yàn)橛昧薾ew Integer(1)
學(xué)到了一個(gè)編譯指令
-Xlint:deprecation
自動(dòng)拆箱也會(huì)報(bào)不兼容類型的錯(cuò)誤
2、操作書171頁(yè)提供的方法。
在后面有操作
3、重寫dog和person的equals方法,讓他們相等。
瘋狂java講義第六章補(bǔ)充習(xí)題第3題答案
4、創(chuàng)建一個(gè)單例類,并調(diào)用它創(chuàng)建多個(gè)對(duì)象,進(jìn)行 = =比較,查看輸出結(jié)果。
瘋狂java講義第六章補(bǔ)充習(xí)題第4題答案
5、精確的使用final修飾類或?qū)嵗兞俊?br /> 瘋狂java講義第六章補(bǔ)充習(xí)題第5題答案
6、自己試著寫一個(gè)抽象類,包含抽象方法的和不包含抽象方法的。再寫一個(gè)包含抽象方法的普通類,并嘗試創(chuàng)建他們的實(shí)例
抽象類不包含抽象方法:依然不能創(chuàng)建實(shí)例
包含抽象方法的普通類,連編譯都過不了
7、嘗試使用中介模式來組合類。這里說的中介模式,其實(shí)就是工廠模式,但是中介更形象,更容易理解
瘋狂java講義第六章補(bǔ)充習(xí)題第7題答案
8、嘗試寫一個(gè)類,包含一個(gè)非靜態(tài)類,看看初始化的時(shí)候會(huì)不會(huì)和非靜態(tài)類一起初始化。
非靜態(tài)內(nèi)部類,不能有靜態(tài)聲明
而經(jīng)過試驗(yàn)靜態(tài)內(nèi)部類并不會(huì)跟隨外部類第一次被創(chuàng)建而初始化,如果沒有在構(gòu)造器或者初始化塊中顯式聲明的話
9、使用jar命令。
瘋狂java講義第六章補(bǔ)充習(xí)題第9題答案
10、嘗試創(chuàng)建對(duì)象的,軟弱虛引用,結(jié)合強(qiáng)制垃圾回收進(jìn)行測(cè)試,并說出他們的區(qū)別
StrongReference:就是我們正常使用的引用,只要有這個(gè)引用在,不論內(nèi)存空間是否足夠,都不會(huì)被垃圾回收器回收;
SoftReference是除了強(qiáng)引用以外,引用最強(qiáng)的,只要有這個(gè)引用在,只要系統(tǒng)內(nèi)存足夠,這個(gè)對(duì)象就不會(huì)被垃圾回收器回收
WeakReference:當(dāng)垃圾回收機(jī)制啟動(dòng)的時(shí)候,就會(huì)被回收,不管有沒有這個(gè)弱引用。
PhantomReference:虛引用,這個(gè)我猜測(cè)大概是引用都不能調(diào)用對(duì)象,所以比弱引用更弱,等會(huì)兒試一下,看看是不是這樣。是的,連get()方法都返回null,只是在被回收以后,rq的poll()方法會(huì)返回這個(gè)引用的引用變量,get()依舊返回null
使用PhantomReference必須在構(gòu)造器傳入一個(gè)ReferenceQueue()對(duì)象,
11、嘗試直接調(diào)用finalize方法,
調(diào)用起來,其實(shí)就像是一個(gè)普通方法一樣,沒啥區(qū)別。
就算是之后強(qiáng)制垃圾回收,也沒有任何問題。
12、嘗試強(qiáng)制垃圾回收。并測(cè)試結(jié)果。
瘋狂java講義第六章補(bǔ)充習(xí)題第12題答案
13、創(chuàng)建包含抽象方法的枚舉類
其實(shí),在枚舉值后的花括號(hào),是類似匿名類的實(shí)現(xiàn),設(shè)不設(shè)置成抽象方法都一樣,只是設(shè)置了抽象方法就要求,匿名類一定要重寫,不然不能用。
瘋狂java講義第六章補(bǔ)充習(xí)題第13題答案
14、創(chuàng)建實(shí)現(xiàn)接口的枚舉類。并結(jié)合switch語(yǔ)句
和普通類實(shí)現(xiàn)接口是一樣的的實(shí)現(xiàn)方式
瘋狂java講義第六章補(bǔ)充習(xí)題第14題答案
15、創(chuàng)建普通枚舉類,并使用
就算把構(gòu)造器設(shè)置成public都不能用new Gender()的方法來創(chuàng)建一個(gè)實(shí)例,構(gòu)造器甚至不能用public修飾
瘋狂java講義第六章補(bǔ)充習(xí)題第15題答案
16、使用lambda表達(dá)式+arrays類
瘋狂java講義第六章補(bǔ)充習(xí)題第16題答案
17、說出lambda表達(dá)式和匿名內(nèi)部類的聯(lián)系和區(qū)別,
瘋狂java講義第六章補(bǔ)充習(xí)題第17題答案
18、使用lambda表達(dá)式的升級(jí)版,方法引用和構(gòu)造器引用
瘋狂java講義第六章補(bǔ)充習(xí)題第18題答案
19、創(chuàng)建匿名內(nèi)部類并使用。
瘋狂java講義第六章補(bǔ)充習(xí)題第19題答案
20、創(chuàng)建內(nèi)部類并在外部類內(nèi)部使用內(nèi)部類還有在外部類以外的地方使用內(nèi)部類。(包括靜態(tài)和非靜態(tài))并嘗試使用內(nèi)部類訪問外部類的變量,使用外部類訪問內(nèi)部類的變量
瘋狂java講義第六章補(bǔ)充習(xí)題第20題答案
21、創(chuàng)建非靜態(tài)內(nèi)部類和靜態(tài)內(nèi)部類。
瘋狂java講義第六章補(bǔ)充習(xí)題第21題答案
22、嘗試命令模式,以及命令模式和抽象類的區(qū)別。p203
模仿書上的案例,同樣對(duì)數(shù)組進(jìn)行命令模式的處理
瘋狂java講義第六章補(bǔ)充習(xí)題第22題答案
23、使用接口,并且嘗試接口繼承接口,接口繼承類,接口實(shí)現(xiàn)接口。
接口中的變量默認(rèn)用public static修飾
接口不能繼承類,
好像也不能實(shí)現(xiàn)接口,會(huì)報(bào)錯(cuò)
24、說出abstract不能和哪幾個(gè)關(guān)鍵字使用,和為什么?
瘋狂java講義第六章補(bǔ)充習(xí)題第24題答案
25、嘗試緩存實(shí)例的不可變類。
瘋狂java講義第六章補(bǔ)充習(xí)題第25題答案
26、說出可變類和不可變類的區(qū)別,以及為什么要有不可變類。
可變類中至少有一個(gè)實(shí)例變量是可以修改的,而不可變類的所有實(shí)例變量都是不可修改的,也就是用final修飾了。
不可變類不僅僅是不可變,通過重寫equals和hashCode可以實(shí)現(xiàn)按照內(nèi)容判斷兩個(gè)對(duì)象是否相等。
java提供的八個(gè)包裝類和String類都是不可變類,至于原因是什么,我不懂
看了一篇文章,不可變類,是線程安全的。讓并發(fā)編程變得更簡(jiǎn)單深入理解Java中的不可變對(duì)象
27、創(chuàng)建final類,并嘗試?yán)^承它
28、創(chuàng)建final方法,并嘗試重寫它
瘋狂java講義第六章補(bǔ)充習(xí)題第28題答案
30、嘗試創(chuàng)建宏變量。
import java.util.*; import java.util.stream.*; import javax.swing.*;public class Test {public static void main(String[] args){String one = "瘋狂Java講義";final String two1 = "瘋狂";final String two2 = "Java講義";String three = two1 + two2;System.out.println(one == three);} }31、說出final修飾基本類型變量和引用類型變量的聯(lián)系和區(qū)別。
聯(lián)系:二者都不能重新賦值
區(qū)別:引用類型變量不能重新賦值,并不代表他的實(shí)例變量或者類變量不能重新賦值。
32、創(chuàng)建final局部變量。
(臥槽)我感覺倒著來有點(diǎn)奇怪的感覺。是啊,我練題也感覺很奇怪,。。。
final局部變量,可以不賦值,但是final修飾的類變量和實(shí)例變量不行
33、按照書上說的地方模仿著自己實(shí)現(xiàn)一個(gè)枚舉類。
其實(shí)有幾個(gè)要點(diǎn),
(1)把構(gòu)造器設(shè)置為private
(2)提前聲明靜態(tài)變量,也就是要成為枚舉值的那些變量,需要用public static final 進(jìn)行修飾
(3)提供一個(gè)get枚舉類的方法,和getprivate變量的方法。
瘋狂java講義第六章補(bǔ)充習(xí)題第33題答案
34、創(chuàng)建局部?jī)?nèi)部類。
import java.util.*; import java.util.stream.*; import javax.swing.*;public class Test {public static void main(String[] args){//局部?jī)?nèi)部類One one = new One(){public void info(){System.out.println("我是One的Info");}};one.info();} } class One {public void info(){} }35、使用parsexxx方法和valueOf方法,并說出他們的區(qū)別。
Character、String沒有parse,有valueOf()
Byte、Short、Integer、Long、Float、Double、Boolean都有
區(qū)別是。parseXXX()返回基本數(shù)據(jù)類型而valueOf()返回包裝類
36、使用包裝類的基本方法
和39題一樣,
37、使用Character的各種工具方法
和39題重復(fù)
38、熟悉lambda表達(dá)式的幾種簡(jiǎn)化寫法。
(1)當(dāng)只有一個(gè)參數(shù)的時(shí)候可以省略括號(hào),但沒有參數(shù)的時(shí)候必須有一個(gè)空括號(hào)
(2)當(dāng)只有一條語(yǔ)句的時(shí)候,可以省略花括號(hào),如果需要返回值,并且也只有一條語(yǔ)句的時(shí)候,省略花括號(hào)還可以省略return,把這唯一一條語(yǔ)句當(dāng)成返回值
39、使用八個(gè)基本數(shù)據(jù)類型的一些方法和變量
詳細(xì)使用java八個(gè)包裝類的方法和打印類變量
42、使用八個(gè)基本類型的xxxSequence,我猜測(cè),這個(gè)大概是數(shù)組的包裝類,因?yàn)榀偪裰袥]有提到。猜的很好,根本不是,下次不要再猜了,不會(huì)的就百度,不要說不會(huì)。八個(gè)基本類型只有CharSequence。
瘋狂java講義第六章補(bǔ)充習(xí)題第42題答案
43、使用String、StringBuilder和StringBuffer
測(cè)試一下StringBuffer的線程安全性
使用String、StringBuilder和StringBuffer
44、疑惑232,final和abstract不能同時(shí)使用,所以抽象枚舉類可以創(chuàng)建子類,而非抽象枚舉類,自動(dòng)用final修飾,不能創(chuàng)建子類。從自己制作的枚舉類可以看出,枚舉類是不能new的,只能在類內(nèi)部new
瘋狂java講義第六章補(bǔ)充習(xí)題第44題答案
45、為什么,數(shù)據(jù)庫(kù)連接和網(wǎng)絡(luò)IO會(huì)被說成物理資源,和堆內(nèi)存中的對(duì)象有什么區(qū)別嗎?
這個(gè)問題,先放著。
46、使用Charset類,
瘋狂java講義第六章補(bǔ)充習(xí)題第46題答案
47、說出強(qiáng)軟弱虛引用的區(qū)別和作用。
強(qiáng)引用:可達(dá)狀態(tài),不可能被垃圾回收機(jī)制回收。作用,可以隨時(shí)調(diào)用,不怕在堆區(qū)的對(duì)象被回收后,導(dǎo)致NullPointer錯(cuò)誤。
軟引用:內(nèi)存空間足夠的時(shí)候,和強(qiáng)引用相同。內(nèi)存空間不足的時(shí)候,可能被垃圾回收機(jī)制回收。作用,通常用于對(duì)內(nèi)存敏感的程序。但是什么是內(nèi)存敏感的程序呢?
弱引用:垃圾回收機(jī)制運(yùn)行的時(shí)候,就會(huì)被回收。它和失去引用的對(duì)象的區(qū)別是,它可以調(diào)用。
虛引用:完全類似于沒有引用,也就是不能調(diào)用的弱引用。主要用于跟蹤對(duì)象被垃圾回收的狀態(tài)。虛引用不能單獨(dú)使用,必須和引用隊(duì)列聯(lián)合使用。
因?yàn)闀系木毩?xí),肯定寫過了,所以先放著。
總結(jié)
以上是生活随笔為你收集整理的疯狂java讲义第六章课后习题答案的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 傅里叶变换进行缺陷检测detect_in
- 下一篇: 一文学会,胶位偏移、缺胶、断胶、溢胶检测