最近在準備面試,總結了幾個java中面向對象的幾個問題,問題本事還不夠全面,要想知道仍是要本身去找,可是在面試上應該是沒多大問題了

  Overload(重載)與Override(重寫)的區別java

  重載:發生在一個類中,方法名稱相同,參數列表不一樣,方法體不一樣(看對象類型)安全

  重寫:發生在父類中,方法名稱相同,參數列表相同,方法體不一樣(看引用類型)多線程

  

  abstract class(抽象類)和interface(接口)的區別ide

  1.抽象類有構造方法,接口沒有線程

  2.抽象類中能夠有普通成員變量,接口沒有對象

  3.抽象類中能夠包含非抽象的普通方法,接口中全部的方法都是抽象的繼承

  4.抽象類中能夠包含靜態方法,接口中不能包含接口

  5.抽象類中的抽象方法的訪問類型能夠是public,protected,接口中的只能是public字符串

  6.一個類能夠實現多個接口只能繼承一個抽象類同步

  

  String和StringBuff的區別

  String提供了數值不可改變的字符串,StringBuff提供字符進行修改,String實現了equals方法,StringBuff沒有

 

  final、finally、finalize的區別

  final:屬於聲明屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承

  finally:是異常處理語句結構的一個方法,表示老是執行

  finalize:是Object類的一個方法,在GC(垃圾回收器)執行的時候會調用被回收對象的此方法

  

  sleep()和wait()有什麼區別

  sleep就是正在執行的線程主動讓出CPU,CPU去執行其餘線程,若是當前線程進入了同步鎖,sleep方法並不會釋放鎖

  wait就是指一個已經進入同步鎖的線程內,讓本身暫時讓出同步鎖,以便其餘正在等待此鎖線程能夠獲得同步鎖並運行

 

  多線程有幾種實現方法?同步有幾種實現方法?

  多線程有兩種實現,分別是繼承Thread類與實現Runnable接口(還有一個鏈接池,不太肯定)

  同步的實現方法有:synchronized、wait、notify

  wait():是一個線程處於等待狀態,而且釋放所持有的對象的lock

  sleep():使一個正在運行的線程處於睡眠狀態,是一個靜態方法

  notify():喚醒一個等待狀態的線程

 

  ArrayList和Vector的區別

  1.同步性

    Vector是同步的,是線程安全的,ArrayList是不一樣步的,是線程不安全的

  2.數據增加

    兩個都有一個初始的容量大小,當超狗容量時,就會增長存儲空間

    ArrayList增加爲原來的1.5倍,Vector增加爲原來的2倍

 

  HashMap與Hashtable的區別

  1.Hashtable是老舊的,HashMap是java 1.2引進的Map接口的一個實現

  2.Hashtable是線程安全的,同步的   HashMap是線程不安全的,不是同步的

  3.只有HashMap能夠讓你將空值做爲一個表格的條目的key或value

 

  List和Map區別

  List存儲單列數據的集合,Map是存儲鍵和值這樣雙列數據的聚合

  List存儲的數據是由順序的,而且容許重複,Map是沒有順序的,鍵是不能重複的,值能夠重複

  

  第一次發,但願能收穫點好評i

相關文章
相關標籤/搜索