對於高級工程師來講,自身的技術修爲尤爲重要,比如算法、設計模式、底層原理等,只有把這些基礎熟練之後,才能在開發過程中知其然知其所以然,出現問題時達到得心應手。接下來與大家一起分享Java高級工程師面試的一些經驗之談。
Memcache與Redis的區別
memcache把數據存在內存之中,斷電後會掛掉;Redis部分數據持久化在硬盤上,斷電不會丟失。
memcache存的是key-value對,redis支持更多的數據結構和數據類型
memcache可以使用一致性hash做分佈式,redis可以做主從同步
redis單線程,只使用1個cp
floatf=3.4;是否正確?
不正確。3.4是雙精度數,將雙精度型(double)賦值給浮點型(float)屬於下轉型(down-casting,也稱爲窄化)會造成精度損失,因此需要強制類型轉換floatf=(float)3.4;或者寫成floatf=3.4F。
Math.round(11.5)等於多少?Math.round(-11.5)等於多少?
Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四捨五入的原理是在參數上加0.5然後進行下取整。
Java高級開發工程師面試題
說說類的生命週期
1.加載,查找並加載類的二進制數據,在Java堆中也創建一個java.lang.Class類的對象;
2.連接,連接又包含三塊內容:驗證、準備、初始化。1)驗證,文件格式、元數據、字節碼、符號引用驗證;2)準備,爲類的靜態變量分配內存,並將其初始化爲默認值;3)解析,把類中的符號引用轉換爲直接引用;
3.初始化,爲類的靜態變量賦予正確的初始值;
4.使用,new出對象程序中使用;
5.卸載,執行垃圾回收。
java中實現多態的機制是什麼?
重載:有同樣的方法名稱不同的參數列表。a(){}a(Stringb){}...
重寫(也稱覆蓋):即可以重新編寫與父類同名方法形象的稱之爲重寫(覆蓋)。
描述一下JVM加載class文件的原理機制?
VM中類的裝載是由類加載器(ClassLoader)和它的子類來實現的,Java中的類加載器是一個重要的Java運行時系統組件,它負責在運行時查找和裝入類文件中的類。