大家好锯厢,這一期呢捺氢,我們談一下kotlin的面試題残黑。
第1題,什么是kotlin舅世?
kotlin是靜態(tài)類型的編程語言,運(yùn)行于jvm之上。
第2題, 是誰開發(fā)了kotlin?
kotlin是由jetbrains開發(fā)的。
第3題, 為什么我們應(yīng)該從Java轉(zhuǎn)到kotlin?
首先,kotlin比Java要簡單。它去除了很多Java里面的冗余代碼。kotlin提供了很多Java不具有的特性。
第4題, 說一下使用kotlin的三大好處。
kotlin比較容易學(xué),因?yàn)樗鶭ava很接近。
kotlin是功能性編程語言愚屁,是基于jvm上的梦谜。
kotlin的代碼更易讀,更容易理解。
第5題, 解釋一下extension函數(shù)。
extension函數(shù)用來對class的擴(kuò)展,而不需要從class進(jìn)行派生膨疏。
第6題, kotlin中的null safety是什么意思?
null safety的特性是為了去除null pointer exception在實(shí)時運(yùn)行中的出現(xiàn)風(fēng)險窘俺。它也用來區(qū)分空引用和非空引用对途。
第7題, 為什么kotlin跟Java具有互相的操作性?
因?yàn)檫@兩門語言,對于jvm來說沒有區(qū)別。它們都是編譯成byte code, 然后在jvm上運(yùn)行的。
第8題妻柒,在kotlin中是否存在三元條件操作符?
不存在央渣, 在kotlin中沒有三元條件操作符。
第9題, 在kotlin中如何聲明一個變量?
val xyz:? String
第10題蚊俺,在kotlin中有多少構(gòu)造函數(shù)得封?
有兩種遂庄,一種是primary構(gòu)造函數(shù)悯恍,一種是secondary構(gòu)造函數(shù)。
第11題属划, kotlin支持哪種編程類型?
一種是procedural編程, 另一種是面向?qū)ο蟮木幊獭?/p>
第12題须蜗,說一下kotlin中對Java.io.file的的擴(kuò)展方法晤愧。
bufferedReader.
readBytes.
readText
forEachLine
readLines
第13題, 在kotlin中如何處理null異常?
使用elvis操作符來處理null異常。
第14題忘蟹,有哪些特點(diǎn)嚼松, kotlin有很澄,但是Java沒有?
null safety.
Operator overloading.
Coroutines.
Range expressions.
Smart casts.
Companion objects.
第15題, 解釋一下kotlin中數(shù)據(jù)類的作用浪藻。
數(shù)據(jù)類包含基本的數(shù)據(jù)類型, 它不包含任何功能函數(shù)。
第16題乾翔, 我們能把Java代碼轉(zhuǎn)成kotlin代碼嗎?
是的爱葵,我們可以用jetbrains ide把Java代碼轉(zhuǎn)成kotlin,也可以用Android studio轉(zhuǎn)反浓。
第17題, kotlin允許macros嗎?
不允許萌丈。kotlin不支持宏。
第18題雷则,說一下kotlin類的缺省行為辆雾。
kotlin類缺省是final的。因?yàn)閗otlin支持多重類繼承月劈。開放類代價要比final類高很多度迂。
第19題, kotlin是否支持原始數(shù)據(jù)類型?
不支持猜揪,kotlin不支持原始數(shù)據(jù)類型惭墓。
第20題, 什么是range操作符?
Range操作符用來遍歷一個范圍。用兩個點(diǎn)來表示的而姐。
for(i in 1..15)
print(i)
第21題, kotlin對標(biāo)準(zhǔn)的Java庫和類提供額外的功能嗎?
kotlin程序是跑在標(biāo)準(zhǔn)的Java虛擬機(jī)上的腊凶。所以kotlin跟Java在這一層級幾乎沒有區(qū)別。Java代碼還可以直接在kotlin程序中使用。
第22題, 在kotlin中定義一個volatile變量钧萍。
Volatile var x:Long?=null
第23題, kotlin中的抽象有什么作用?
抽象是面向?qū)ο缶幊讨凶钪匾母拍詈植3橄箢惖奶攸c(diǎn)是,你知道這個類會有什么功能划煮,但是你不知道它具體如何實(shí)現(xiàn)這些功能和實(shí)現(xiàn)哪些功能送丰。
第24題,在kotlin中如何比較兩個字符串?
第1種方法你可以用雙等號來比較兩個字符串弛秋。
第2種方法用String.compareTo器躏,這個擴(kuò)展函數(shù)來比較兩個字符串。
第25題蟹略, 下面這段代碼是干什么用的?
bar{
System.out.println("haha")
}
bar作為一個函數(shù)登失,正在接收一個表達(dá)式為參數(shù),這個表達(dá)式用來打印一行字符串挖炬。
碼字不易揽浙,請關(guān)注點(diǎn)贊!