Scala面試題

scala語言的特點:

  • 集成了面向?qū)ο蠛秃瘮?shù)式編程
  • 函數(shù)式編程是將計算機的運算視為函數(shù)運算
  • 鏈?zhǔn)骄幊?/li>

Scala中的String是可變的還是不可變的

  • 它的底層就是Java的String,所以是不可變的
什么是閉包

函數(shù)捕獲自由變量的,閉包=代碼+非局部變量

簡述隱式轉(zhuǎn)換的作用

當(dāng)我們引入第三方包,但是不能修改代碼時胸完∨鹕恚可以使用隱式轉(zhuǎn)換增加新的功能,類似與Java的裝飾器模式迂曲,必須保證當(dāng)前環(huán)境下只有能被識別

什么是柯里化

接受一個多參數(shù)的函數(shù)轉(zhuǎn)換為多個單參數(shù)的函數(shù)列表

作用:

  • 簡化了主函數(shù)的復(fù)雜度
  • 提高了主函數(shù)的自閉性
  • 提高了主函數(shù)的抽象能力

Scala中特質(zhì)的調(diào)用鏈

從右到左靶橱,從下到上,如果中間有沒有調(diào)用super的路捧,調(diào)用鏈就停止在這里

Scala的協(xié)變关霸,逆變,非變

首先定義的一個Trait Q[T]{}

  • 協(xié)變 : 如果 A 是B的子類杰扫,那么Q[A] 是 Q[B]的子類队寇,Q這樣定義Trait Q[+T]{}
  • 逆變: 如果A是B的子類,那么Q[B]是Q[A]的子類章姓,Q這樣定義Trait Q[-T]{}
  • 非變: 沒有任何從屬關(guān)系佳遣,Q這樣定義Trait Q[T]{}

Object的作用

  • 伴生對象
  • 作為工具類或者放置常量
  • 高效共享單個不可變的實列
  • 單例模式

trait(特質(zhì))和abstract class(抽象類)的區(qū)別?

trait 使用 extends with實現(xiàn)多繼承

trait中可以定義實例方法

trait可以有構(gòu)造函數(shù)凡伊,但只能是無參數(shù)的

trait可以直接使用with混入對象

trait可以繼承class

case class (樣本類)是什么零渐?

一種語法糖

默認(rèn)實現(xiàn)是伴生對象

默認(rèn)實現(xiàn)了apply,unapply,tostring,equals,copy,hashcode

可以使用==比較內(nèi)容

由于實現(xiàn)了apply方法,可以不使用new 關(guān)鍵字實例化

樣本類中的參數(shù)默認(rèn)是val關(guān)鍵字窗声,不可以修改

伴生對象是什么相恃?

它由在同一個源文件中同名的class,object組成。

object可以訪問class中的私有變量

不能private[this]變量

可以實現(xiàn)JAVA中的靜態(tài)變量的效果

類也可以訪問伴生對象中的私有方法

Scala類型系統(tǒng)中Nil, Null, None, Nothing四個類型的區(qū)別拦耐?

Nil表示空類型的List ,等同與List[Nothing]

Null是AnyRef的子類耕腾,由唯一的實例對象null

Nothing是所有類型的子類,沒有實例對象

None是Option的子類

尾遞歸

正常遞歸杀糯,每一次遞歸步驟扫俺,需要保存信息到堆棧里面,當(dāng)遞歸步驟很多時固翰,導(dǎo)致堆棧溢出狼纬。 尾遞歸就是為了解決上述問題,在尾遞歸中所有的計算都是在遞歸之前調(diào)用骂际, 編譯器可以利用這個屬性避免堆棧錯誤疗琉,尾遞歸的調(diào)用可以使信息不插入棧,從而優(yōu)化尾遞歸歉铝。 使用 @tailrec 標(biāo)簽可使編譯器強制使用尾遞歸盈简。

高階函數(shù)

高階函數(shù)指能接受或者返回其他函數(shù)的函數(shù),scala中的filter map flatMap函數(shù)都能接受其他函數(shù)作為參數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末太示,一起剝皮案震驚了整個濱河市柠贤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌类缤,老刑警劉巖臼勉,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異餐弱,居然都是意外死亡宴霸,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門岸裙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猖败,“玉大人,你說我怎么就攤上這事降允《魑牛” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵剧董,是天一觀的道長幢尚。 經(jīng)常有香客問我,道長翅楼,這世上最難降的妖魔是什么尉剩? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮毅臊,結(jié)果婚禮上理茎,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好皂林,可當(dāng)我...
    茶點故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布朗鸠。 她就那樣靜靜地躺著,像睡著了一般础倍。 火紅的嫁衣襯著肌膚如雪烛占。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天沟启,我揣著相機與錄音忆家,去河邊找鬼。 笑死德迹,一個胖子當(dāng)著我的面吹牛芽卿,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胳搞,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼蹬竖,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了流酬?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤列另,失蹤者是張志新(化名)和其女友劉穎芽腾,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體页衙,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡摊滔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了店乐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片艰躺。...
    茶點故事閱讀 40,127評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖眨八,靈堂內(nèi)的尸體忽然破棺而出腺兴,到底是詐尸還是另有隱情,我是刑警寧澤廉侧,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布页响,位于F島的核電站,受9級特大地震影響段誊,放射性物質(zhì)發(fā)生泄漏闰蚕。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一连舍、第九天 我趴在偏房一處隱蔽的房頂上張望没陡。 院中可真熱鬧,春花似錦、人聲如沸盼玄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽强岸。三九已至锻弓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蝌箍,已是汗流浹背青灼。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留妓盲,地道東北人杂拨。 一個月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像悯衬,于是被迫代替她去往敵國和親弹沽。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容