千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  應(yīng)聘面試  >  Java面試題  > java面試題:java知識點合集(四)

java面試題:java知識點合集(四)

來源:千鋒教育
發(fā)布人:wjy
時間: 2022-07-11 16:51:00 1657529460

  一. 舉例說明什么情況下會更傾向于使用抽象類而不是接口?

  接口和抽象類都遵循”面向接口而不是實現(xiàn)編碼”設(shè)計原則,它可以增加代碼的靈活性,可以適應(yīng)不斷變化的需求。下面有幾個點可以幫助你回答這個問題:在 Java 中,你只能繼承一個類,但可以實現(xiàn)多個接口。所以一旦你繼承了一個類,你就失去了繼承其他類的機會了。

  接口通常被用來表示附屬描述或行為如: Runnable 、 Clonable 、 Serializable 等等,因此當(dāng)你使用抽象類來表示行為時,你的類就不能同時是 Runnable 和 Clonable( 注:這里的意思是指如果把 Runnable 等實現(xiàn)為抽象類的情況 ) ,因為在 Java 中你不能繼承兩個類,但當(dāng)你使用接口時,你的類就可以同時擁有多個不同的行為。

  在一些對時間要求比較高的應(yīng)用中,傾向于使用抽象類,它會比接口稍快一點。如果希望把一系列行為都規(guī)范在類繼承層次內(nèi),并且可以更好地在同一個地方進行編碼,那么抽象類是一個更好的選擇。有時,接口和抽象類可以一起使用,接口中定義函數(shù),而在抽象類中定義默認的實現(xiàn)。

java面試題:java知識點合集(四)

  二. 實例化創(chuàng)建對象有哪幾種方式

  1. 實例化對象的方式有如下幾種:

  new

  clone()

  通過反射機制創(chuàng)建

  序列化反序列化

  2. 反射示例代碼

java面試題:java知識點合集44

  3. 序列化示例代碼:

java面試題:java知識點合集55

  三. byte類型127+1等于多少

  byte的范圍是-128~127。

  字節(jié)長度為8位,最左邊的是符號位,而127的二進制為01111111,所以執(zhí)行+1操作時,01111111變?yōu)?0000000。

  大家知道,計算機中存儲負數(shù),存的是補碼的興衰。左邊第一位為符號位。

  那么負數(shù)的補碼轉(zhuǎn)換成十進制如下:

  一個數(shù)如果為正,則它的原碼、反碼、補碼相同;一個正數(shù)的補碼,將其轉(zhuǎn)化為十進制,可以直接轉(zhuǎn)換。

  已知一個負數(shù)的補碼,將其轉(zhuǎn)換為十進制數(shù),步驟如下:

  1先對各位取反;

  2將其轉(zhuǎn)換為十進制數(shù);

  3加上負號,再減去1;

  4例如10000000,最高位是1,是負數(shù),①對各位取反得01111111,轉(zhuǎn)換為十進制就是127,加上負號得-127,再減去1得-128;

  四. float 和 double 的區(qū)別是什么?

  1. 內(nèi)存中占有的字節(jié)數(shù)不同

  單精度浮點數(shù)在內(nèi)存中占有4個字節(jié);

  雙精度浮點數(shù)在內(nèi)存中占有8個字節(jié);

  2. 有效數(shù)字位數(shù)不同

  單精度浮點數(shù)有效數(shù)字8位;

  雙精度浮點數(shù)有效數(shù)字16位;

  3. 數(shù)值取值范圍不同

  單精度浮點數(shù)的表示范圍:-3.40E+38~3.40E+38

  雙精度浮點數(shù)的表示范圍:-1.79E+308~-1.79E+308

  4. 在程序中處理速度不同

  一般來說,CPU處理單精度浮點數(shù)的速度比雙精度浮點數(shù)的速度快。如果不聲明,默認小數(shù)是double類型,如果想用float,要進行強轉(zhuǎn)。

  5. 舉例

  float f = 1.3;會編譯報錯,正確的寫法是float f = (float)1.3;或者float a = 1.3f;(f或F都可以不區(qū)分大小寫)。

  6. 注意

  float是八位有效數(shù)字,第七位會四舍五入。

  7. 相關(guān)面試題

  7.1 Java中3*0.1==0.3會返回什么?true還是false?

  答:返回false,因為浮點數(shù)不能完全精確的表示出來,一般會損失精度;

  7.2 Java中float f = 3.4;是否正確?

  答:不正確。因為3.4是雙精度浮點數(shù),將雙精度賦給單精度屬于向下轉(zhuǎn)型,會造成精度損失,因此需要強制類型轉(zhuǎn)換 float=(float)3.4; 或者寫成 float f = 3.4f。

  更多關(guān)于“Java培訓(xùn)”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓(xùn)經(jīng)驗,課程大綱更科學(xué)更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
面向?qū)ο缶幊痰奶卣魇鞘裁?請解釋每個特征

答案:面向?qū)ο缶幊痰奶卣靼ǎ悍庋b(Encapsulation):封裝是將相關(guān)的數(shù)據(jù)和方法組合在一起形成類的機制。它可以隱藏內(nèi)部實現(xiàn)細節(jié),只暴露必要的...詳情>>

2023-07-18 13:56:00
容器是什么?如何理解容器

  容器(Container)是一個廣泛的概念,指的是一種可以容納其他元素或?qū)ο蟮臄?shù)據(jù)結(jié)構(gòu)或抽象概念。在計算機科學(xué)中,容器的概念經(jīng)常出現(xiàn)在數(shù)據(jù)結(jié)...詳情>>

2023-05-08 13:41:00