記錄 2023年8月11日模擬面試問題及答案,許多自己答得很模糊,再次總結語言。
面試總結(二)
回答基於jdk1.8,低版本部分答案不適用1.equals和==區別?
/**
答:==在基礎資料型別中比較其大小,引用型別比較記憶體位址。
equals在不重寫的情況下與==相同,重寫後是按照其本身方法內部規則進行判斷。
任何類都繼承自object,object中有equals方法,其底層**:
*/public
boolean
equals(object obj)
2.什麼是傳值和傳址?
答:基礎資料型別是傳值,引用型別是傳址,位址中的物件還是原物件,棧幀結束後 傳值不改變,傳址改變;注意string例外,下面來講。
public
void
add(string str)
@test
public
void
a() //結果是 123
3.為什麼我們常說字串是不可變得?
/**
答:因為string底層是char陣列,並且用final修飾。
因此每次建立string其原本字串並不會消失或被替換,而會新建乙個string,儲存在字串常量池中,堆區中
因此在字串中不要使用+=拼接字串,在進行字串拼接,必須使用stringbuilder或stringbuffer
stringbuffer是執行緒安全的,因為其修改方法用synchronized修飾
*/private
final
char value;
4.switch switch case 型別?
答:支援char,byte,short,int及他們的包裝類及string和列舉5.執行時異常和一般異常有何異同incompatible type .found: 『long』 ,require : 『char,byte short,int,character,byte,short,integer,string,or an enum』;
答:一般異常必須進行try catch或throw相應處理,執行時異常往往不進行處理。6.try catch 和throws和throw如何使用?
答:throws向上丟擲異常,呼叫部分繼續throws或者try catch進行處理。throw new是現在丟擲異常。7.1/0報錯? 異常型別,如何避免?
答:報錯arithmeticexception(算術異常) 執行時異常,可以通過try catch進行捕獲進行處理8.問:char int byte做加法運算
答:char運算時將字元轉化成ascii碼進行整形運算,最後返回值為整形10.string s = new string(「xyz」);在執行時涉及幾個string例項?9.單例設計模式兩種實現方式
答:分別飢餓模式和懶漢模式。都通過getinstance獲得例項,區別在於類例項是否在使用時在建立,還是在使用前就建立
答案:兩個,乙個是字串字面量」xyz」所對應的、駐留(intern)在乙個全域性共享的字串常量池中的例項,另乙個是通過new string(string)建立並初始化的、內容與」xyz」相同的例項11.氣泡排序
for(int i=0;ilength+1;i++)
}}
12.乙個中文幾個位元組
答:2-4個位元組,gbk兩個,utf-16 通常兩個,bcd擴充套件4個 utf-8 通常3個,b區擴充套件4個。13.問:str=1+9+」abc」=? str=」abc」+1+9=?arraylist和linkedlist區別 vector 的儲存效能和特性
答 「10abc」和」abc19」,此時跟運算順序和運算過程有關14.計算幾種的最小單位是什麼,基礎資料型別的大小
計算機中最小單位是byte(位),1位元組8位。15.抽象類和介面分別該什麼時候用?基礎資料型別有:byte(1) short(2) int(4) long(8) float(4) double(8) boolean(1/8) char(2)
注:單位是位元組
答:是什麼用抽象類,幹什麼用介面。在jdk中thread用抽象類,集合用介面。16.類和抽象類區別?
答:抽象類中的abstract方法子類中必須實現。只抽取功能定義,不抽取功能主體。17.什麼是多型?
答:多型意為:一種事物的多種形態。多型包含編譯時多型(函式的過載)和執行時多型,執行時多型體現在繼承和實現介面上,包含傳參(方法傳遞引數)多型,引用多型(父類引用子類物件重寫方法),向上轉型(子類轉成父類物件),宣告多型(父類指向子類物件)。18.static和final可以放置的位置?
答:放在int宣告前任意位置即可。19.問 :short s1 = 1; s1 = s1 + 1;有什麼錯?
答:因為(隱式型別轉換)short+int會自動轉成int,但short+=相當於s = (short)(s+1),short=+1;相當於short=1;20.短路語和全路語
答:短路語:&&和||在從左邊到右判斷時,已經可以判斷出結果了就不繼續了,而全路語|和&則要全部判斷完畢21.ascii碼和unicode和gbk和utf-8
答:ascii定義了128個字元的編碼,unicode(聯合)包含了所有字元(語言)的編碼,只規定了二進位制編碼,卻未規定二進位制編碼如何儲存。utf-8是unicode的實現方式之一,gbk和unicode一樣規定了字元的編碼,gbk是大陸通用編碼。22.overload和override的區別
答:overload(過載),override(重寫)23.interger緩衝區範圍
答:-128-127,在interger定義時在緩衝區範圍涉及到拆箱比較,緩衝區integercache。new 物件和直接賦值在範圍內資料類似string;24.如何實現多執行緒?
答:繼承thread類,或實現runnable介面,實現其run方法。 啟動通過thread().start或執行緒池。25.protected和default許可權
答:public>protect>default>private。protected不能在其不同包的子類呼叫父類修飾的方法和屬性。26.屬性和成員變數
答:實現物件導向的封裝思想,屬性私有化,方法公開化。成員變數根據其修飾外部呼叫。27.封裝能幹什麼?
答:隱藏細節,**復用。
面試總結(一)
又到了一年一度的就業高峰期,作為應屆畢業生中的一員,我也同樣為了自己的工作而奔波,經過乙個多星期的努力,拿下了四五家offer,最後選擇了一家自己比較滿意的公司 下面對求職當中遇到的一些問題進行下總結。一 簡歷準備 乙份好的簡歷是你個人的敲門磚,現在找工作基本上都是通過網上投遞你的簡歷,然後等待公司...
面試總結 (一)
單引號和雙引號的區別 單引號不解析 雙引號解析 在某些特定情況下,單引號效率要比雙引號高 xml和json的區別 js的五種資料型別,並說明原始資料型別和引用資料型別的區別 js的基本資料型別 number string boolean null和undefined 區別 說明myisam和inno...
面試總結一
1 基類的虛構函式為什麼使用virtual?這種虛析構函式尋在的意義?virtual虛函式是動態繫結的基礎 這很重要 在動態繫結的過程中,我們使用的是基類的指標指向子類 例如b派生於a,a pa new b 如果沒有使用virtual實現動態繫結,在進行delete a 時,不會呼叫b的析構函式,如...