官术网_书友最值得收藏!

  • Scala編程(第5版)
  • (德)馬丁·奧德斯基等
  • 580字
  • 2022-05-06 15:51:38

4.6 結(jié)語(yǔ)

本章介紹了Scala類和對(duì)象的基礎(chǔ),并展示了如何編譯和運(yùn)行應(yīng)用程序。在下一章,你將會(huì)了解到更多關(guān)于Scala基礎(chǔ)類型和用法的內(nèi)容。

[1]這里的checksum方法用到了兩個(gè)位運(yùn)算操作符:~是位補(bǔ)碼(bitwise complement),&是按位與(bitwise and)。這兩個(gè)操作符在5.7節(jié)均有介紹。

[2]參數(shù)采用val的原因是val更容易推敲,不需要像var那樣進(jìn)一步查證val是不是被重新賦值過(guò)。

[3]我們?cè)谶@里用了一個(gè)緩存來(lái)展示帶有字段的實(shí)例對(duì)象。類似這樣的緩存是以犧牲內(nèi)存換取計(jì)算時(shí)間的方式來(lái)提升性能的。通常來(lái)說(shuō),只有當(dāng)你遇到緩存能解決的性能問(wèn)題時(shí)才會(huì)用到這樣的緩存,并且你可能會(huì)用一個(gè)弱引用的映射,如scala.collection.mutable的WeakHaskMap,以便在內(nèi)存吃緊時(shí),緩存中的條目可以被垃圾回收掉。

[4]由于new關(guān)鍵字僅被用于實(shí)例化類,因此這里創(chuàng)建的對(duì)象是ChecksumAccumulator類的實(shí)例,而不是相同名稱的那個(gè)單例對(duì)象。

[5]這里的>>操作符執(zhí)行的是右移位運(yùn)算,我們將在5.7節(jié)介紹。

[6]合成類的名稱是對(duì)象名加上一個(gè)美元符號(hào)。因此,名稱為ChecksumAccumulator的單例對(duì)象的合成類名是ChecksumAccumulator$。

[7]我們將其稱為參數(shù)化字段,將在10.6節(jié)介紹如何定義它。

[8]可以通過(guò)@main注解將其他名稱的方法指定為主方法,這將在23.3節(jié)介紹。

[9]如果你是Java程序員,則可以把這句引入語(yǔ)句當(dāng)作Java 5的靜態(tài)引入(static import)功能。Scala與Java靜態(tài)引入的區(qū)別在于,可以從任何對(duì)象引入成員,而不僅僅是從單例對(duì)象。

[10]Scala用來(lái)“解釋”一個(gè)Scala源文件的實(shí)際機(jī)制是,它會(huì)先把Scala源代碼編譯成Java字節(jié)碼,然后馬上通過(guò)類加載器加載,并執(zhí)行它。

主站蜘蛛池模板: 额尔古纳市| 玉环县| 含山县| 开原市| 威信县| 根河市| 诸暨市| 重庆市| 西贡区| 龙南县| 德化县| 阳东县| 弥渡县| 阳曲县| 桦南县| 阳谷县| 屏山县| 金昌市| 山东| 青冈县| 四川省| 渝北区| 泗洪县| 苍梧县| 辰溪县| 安义县| 永春县| 金坛市| 张家川| 灵川县| 信丰县| 新和县| 澄迈县| 安吉县| 泸西县| 沐川县| 上犹县| 吉木萨尔县| 栾川县| 台江县| 乌兰浩特市|