JavaEE面試總結(一)

來源:互聯網
上載者:User

標籤:多線程並發   環境變數配置   代碼塊   其他   通過   小數   oat   介紹   運算   

  1. JDK和JRE的區別:
    答:JDK是Java語言的開發套件,包含JRE和開發套件(java,exe等),JRE是Java的語言的運行環境,包含jvm和核心類庫,jvm是Java的虛擬機器,保證了Java的跨平台向性
  2. JVM跨平台嗎?
    jvm是Java的虛擬機器,不同的作業系統對應jvm不一樣,jvm不具有跨平台性
  3. 保留字
    保留字是還未使用的關鍵字,可能在Java以後的版本中使用,goto和const
  4. Java語言的特點:
    完全物件導向性,跨平台性,開源,安全可靠,高效能性,多線程,健壯性,
  5. main是關鍵字嗎
    不是的,main是主函數的名字,能夠被虛擬機器識別,是程式執行的入口
  6. path和classpath的區別:
    path環境變數配置的是可執行檔.exe的執行路徑,classpath配置的Java語言編譯後聲場的位元組碼檔案執行路徑
  7. 電腦最基本的儲存單位是:位元組
    電腦直接識別的進位:二進位
  8. 變數和常量有什麼區別:
    變數在運算過程中的值是變化的,可以被多次賦值,常量則是固定的
  9. VARIANT 資料型別的分類:
    變數需要先定義,再賦值,再使用
    基礎資料型別 (Elementary Data Type):4類8種  byte short int long float double char boolean
    引用資料類型:數組,類,介面
  10. 常量分類:
    自訂常量:自己通過final修飾定義的常量
    字面值常量:包括整數,小數,布爾,字元,字串
  11. byte的範圍:-128 127
    char的範圍: 0   65535
  12. long是8個位元組,float是4個位元組,為什麼long比float小
    底層的運算規則不同
  13. ++和--的使用:
    單獨使用時,在前後都一樣
    參與運算時,在前是先自加或自減,在後是先參與運算,在進行自加或者自減
  14. 邏輯 | 與 短路 || 的區別
    | 不管前面的是真是假都會運算, || 前面為真後面不參與運算,提高了運算的效率
  15. 邏輯 & 與 短路 && 的區別
    & 不管前面是真是都會運算,  && 前面如果為假的話,後面的不參與運算了,提高了運算的效率\
  16. while和dowhile,for的區別:
    do while 是先執行後判斷
    while和for先判斷後執行,for迴圈結束後,其定義的初始化條件不能再使用
  17. break和continue的區別:
    break是完全跳出迴圈,continue是跳出本次迴圈,進行下次迴圈
  18. 方法重載和方法重寫的區別:
    方法重載是在同一個類中出現同名方法,參數列表不同,與傳回值無關
    方法重寫在子類之間,子類出現和父類聲明完全相同的方法時,就成為方法重寫,重寫要求傳回值相同或者有字父類別關係
  19. 構造方法,set方法後可以給成員變數賦值,這兩種賦值的區別?
    構造方法主要的作用是用來給對象初始化的,賦值只是他的兼職工作,也可以不賦值
  20. 靜態代碼塊和構造代碼塊的區別:
    靜態代碼塊屬於類,給類進行初始化,類一載入就會執行,只執行一次
    構造代碼塊給對象進行統一初始化,每建立一次就會執行一次
  21. 四種許可權修飾符:
    public protectd 預設 private
  22. == 和 equal的區別:
    "=="是比較子,既能比較基礎資料型別 (Elementary Data Type),有可以比較引用資料類型,基礎資料型別 (Elementary Data Type)比較的是數值,引用資料類型比較的是地址值
    equal是方法,重寫equal方法比較的是對象的內容,如果沒有重寫將調用object的equal方法,比較的是地址值
  23. string和stringBuffer和stringBuilder的區別:
    string是一個特殊的引用資料類型,是一個長度不可以改變的字元序列,沒有緩衝區,,一旦建立不可以改變,即使重新賦值不是在原來的基礎上改變,而是重新建立了一個對象,將引用指向這個新的對象,浪費空間,效率比較低
    stringBuffer和stringbuilder是一個容器,是可變的字串序列
    stringBuffer,安全執行緒的,效率比較低,
    stringBuilder的底層是字元數組,線程不安全,效率比較高
  24. 集合體系:
  25. ArrayList與LinkedList的區別:
    ArrayList的底層採用的資料的資料結構,查詢慢,增刪快
    LinkedListd底層是鏈表,增刪快,查詢慢
  26. 資料結構的簡單介紹:
    棧:先進後出,壓棧,彈棧
    隊列:先進先出
    鏈表:每個元素都指向下一個元素
    數組:一快連續的儲存地區
  27. 線程和進程多線程:
    進程是一個正在執行的程式,每個程式至少有一個控制單元,正在啟動並執行程式
    線程是進程中的控制單元,線程式控制制著進程的執行,是進程的執行路徑
    多線程:進程的多條執行路徑,每個執行路徑就是線程
  28. 多線程並發和多線程並行:
    兩個或多個任務發送請求時,CPU只能執行一個,就會交替執行這些任務,CPU會高速切換執行,這就是多線程並發
    多線程並行,兩個或者多個任務同時執行,前提是多核CPU
  29. 多線程的特點:具有隨機性和和延遲性
  30. 線程的兩種實現方式:
    繼承Thread類,好處是繼承,代碼簡單,能夠直接使用Thread的方法, 缺點就是擴充性差,應為繼承了thread類,不可以再繼承其他的類了
    實現Runnable介面,好處就是擴充性比較強,缺點:代碼比較多,無法直接使用Thread類
  31. 線程的生命週期:
    建立 就緒 運行(可能發生阻塞和等待) 死亡
  32. sleep和wait的區別:
    sleep是讓線程睡眠,必須給相應的時間,時間到了自動喚醒,睡眠的時候不放棄CPU的執行權利
    wait是讓線程等待,可以傳參也可以不傳參,傳參是讓指定時間後等待,需要被喚醒,等待的時間放棄CPU的執行權利
  33. 讓線程暫停:
    wait:讓線程等待,等待的時候放棄CPU的執行權
    yield:讓線程暫停,並執行其他的線程
  34. 什麼是IO流:
    用來硬碟和記憶體之間互動資料的
  35. IO流分類
  36. close()和flush()的區別:
    flush()是用來重新整理緩衝區的,重新整理之後還是可以再次寫出的
    close()是用來關閉釋放資源的,關閉之後無法寫出

JavaEE面試總結(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.