Java基礎大全

  1. 八種基本數據類型的大小,以及他們的封裝類java

     

    byte,char,short,int,long,float,double,boolean設計模式

     

    Byte,Character,Short,Integer,Long,Float,Double,Boolean     int是基本類型,Integer是保證類;Integer默認值爲null,int默認值爲0;Integer須要實例才能使用,實例對象放在堆中,對象的引用放在棧裏數組

    1. 引用數據類型安全

       

      類class,接口interface,枚舉類Enum,多線程

       

      Switch可否用string作參數併發

       

      Jdk1.7之前不能使用string做爲參數,1.7開始可使用分佈式

      而原理是經過調用string.hashcode方法將string類型轉換爲int類型ide

       

      equals與==的區別工具

       

      equals是比較兩個對象屬性是否相同,經常使用於比較對象ui

      ==是比較兩個值是否相同,引用類型是比較兩個地址值是否相同

       

      自動裝箱,常量池

       

      Object有哪些公用方法

       

      Wait,notify,toString,equals,hashcode,notifyAll,getClass

       

      Java的四種引用,強弱軟虛,用到的場景  

       

      New Object   object = ‘hello’ 強引用  JVM不會回收,除非定義爲null

      SoftReference  軟引用     JVM在內存充足時,不會回收,內存不足時纔會回收

      WeakReference 弱引用   JVM均會回收,不管內存是否充足

       

       

      Hashcode的做用

       

      得到hashcode值

       

      HashMap的hashcode的做用

       

      得到hashcode值,用於數據插入時的判斷

      爲何重載hashCode方法?

       

      原生的hashCode是Object類下的方法,比較的內存地址是否相同,兩個對象,在重寫後的equals比較下返回true,可是原生的hashcode指向的內存地址不一樣,就會認爲是兩個不一樣的對象,不知足實際狀況

       

      ArrayList、LinkedList、Vector的區別

       

      Arraylist和Vector底層都是數組實現,

      arraylist是線程不安全的,

      vector是線程安全的,全部的方法是同步的

      LinkedList底層是經過雙鏈表實現的,非線程安全

      數組初始容量是10,擴容是1.5倍的

       

      String、StringBuffer與StringBuilder的區別

       

      StringBuffer和StringBuilder都是用於大字符串存儲,

      StringBuilder是線程不安全的

       

      Map、Set、List、Queue、Stack的特色與用法

       

      HashMap和HashTable的區別

       

      Hashmap是線程不安全的,

      Hashtable是線程安全的

      Hashtable運用了syn鎖

       

      JDK7與JDK8中HashMap的實現

       

      原先是數組+鏈表

      1.8中變成了數組+鏈表,鏈表長度超過8時,變成紅黑樹

       

      HashMap和ConcurrentHashMap的區別,HashMap的底層源碼

       

      ConcurrentHashMap本質上也是數組+鏈表,他是由segment數組和hashEntry數組組成,每一個hashEntry中是一個鏈表結構。segment是一個可重入的reentrantLock,當要對hashEntry數組下的數據進行操做時,先須要得到segment鎖

       

      ConcurrentHashMap能徹底替代HashTable嗎

       

      ConcurrentHashMap是弱一致性的

      HashTable是強一致性的

      若是某個Segment實例中的put將一個Entry加入到了table中,在未執行count賦值操做以前有另外一個線程執行了同一個Segment實例中的get,來獲取這個剛加入的Entry中的value,那麼是有可能取不到的!

      爲何HashMap是線程不安全的

       

      操做沒有上鎖

       

      如何線程安全的使用HashMap

       

      不考慮多線程狀況下用hashmap

      Put方法前,加syn操做

      操做hashmap前加個分佈式鎖

       

      多併發狀況下HashMap是否還會產生死循環

       

      1.7之前hashmap中的鏈表插入採用頭插入法,這種狀況下會有死循環形成,1.8中改成尾插入法,不會形成死循環

       

      TreeMap、HashMap、LindedHashMap的區別

       

      Hashmap無序,線程不安全

      LindedHashMap有序

      TreeMap一樣有序

       

      Collection包結構,與Collections的區別

                Collection是集合類的頂級接口,子接口有Set,Map,List     Collecitons只是一個集合的工具類

 

    1. try?catch?finally,try裏有return,finally還執行麼

       

      會執行

       

      Excption與Error包結構,OOM你遇到過哪些狀況,SOF你遇到過哪些狀況

    2.  

      http://www.javashuo.com/article/p-kvoxtwyx-gt.html

       

      Java(OOP)面向對象的三個特徵與含義

       

      Override和Overload的含義去區別

    3.  

       

      override重寫  方法的參數個數及類型,以及返回值類型均不可發生變化,經常使用語接口實現類下重寫某個方法

      overload重載,方法的入參個數及類型發生變化,返回值類型變化與否都可

       

      Interface與abstract類的區別

       

      Static?class?與non?static?class的區別

       

      java多態的實現原理

       

      foreach與正常for循環效率對比

       

      Java?IO與NIO

       

      java反射的做用於原理

       

      泛型經常使用特色

       

      解析XML的幾種方式的原理與特色:DOM、SAX

       

      Java1.7與1.8,1.9,10 新特性

       

      設計模式:單例、工廠、適配器、責任鏈、觀察者等等

       

      JNI的使用

       

      AOP是什麼

       

      OOP是什麼

       

      AOP與OOP的區別

相關文章
相關標籤/搜索