1. 程式人生 > >java初級面試題(個人總結)

java初級面試題(個人總結)

java基礎
1、String、StringBuffer以及StringBuild的區別?

答:這三個類之間的區別主要是在兩個方面,即執行速度和執行緒安全這兩方面

    執行速度:StringBuilder > StringBuffer > String

    執行緒安全性:StringBuffer > StringBuilder
    
String最慢的原因:

  String為字串常量,而StringBuilder和StringBuffer均為字串變數,即String物件一旦建立之後該物件是不可更改的,但後兩者的物件是變數,是可以更改的。
    
總結:
    String:適用於少量的字串操作的情況

  StringBuilder:適用於單執行緒下在字元緩衝區進行大量操作的情況

  StringBuffer:適用多執行緒下在字元緩衝區進行大量操作的情況

2、知道哪些集合?List與Map的區別以及遍歷方式有哪些?
    https://www.cnblogs.com/LittleHann/p/3690187.html
答:1.Interface Iterable
    1.1 Interface Collection
    1.1.1 Interface List(ArrayList、Vector、LinkedList)
    1.1.2 Interface Set(HashSet、SortedSet(TreeSet)、EnumSet)
    1.1.3 Interface Queue(PriorityQueue、Deque)
    1.2 Interface Map(HashMap、Hashtable、SortedMap、WeakHashMap、IdentityHashMap、EnumMap)
    HashSet集合判斷兩個元素相等的標準是兩個物件通過equals()方法比較相等,並且兩個物件的hashCode()方法的返回值相等
    LinkedHashSet元素輸出順序總是與新增順序一致,由於LinkedHashSet是HashSet的子類,不允許新增重複元素
    TreeSet是SortedSet介面的實現類,TreeSet可以確保集合元素處於排序狀態
    LinkedList同時表現出了雙端佇列、棧的用法
    hashMap允許key為null,value為null,key允許重複
    
3、物件與引用的關係,分別存放在哪裡?
    一個引用可以指向多個物件
    一個物件也可以被多個引用所指
    物件存放在堆記憶體中
    引用存放在棧記憶體中

4、物件在哪些情況下會被當做垃圾回收掉?
    1.沒有引用指向
    2.只有弱引用指向並且不回收弱引用物件的話儲存區無空間
    3.虛引用指向的物件
    滿足以上任意條件則在gc時會回收
    

javaWeb
1、spring事務傳播行為
    1、PROPAGATION_REQUIRED:如果當前沒有事務,就建立一個新事務,如果當前存在事務,就加入該事務,該設定是最常用的設定。

    2、PROPAGATION_SUPPORTS:支援當前事務,如果當前存在事務,就加入該事務,如果當前不存在事務,就以非事務執行。‘

    3、PROPAGATION_MANDATORY:支援當前事務,如果當前存在事務,就加入該事務,如果當前不存在事務,就丟擲異常。

    4、PROPAGATION_REQUIRES_NEW:建立新事務,無論當前存不存在事務,都建立新事務。

    5、PROPAGATION_NOT_SUPPORTED:以非事務方式執行操作,如果當前存在事務,就把當前事務掛起。

    6、PROPAGATION_NEVER:以非事務方式執行,如果當前存在事務,則丟擲異常。

    7、PROPAGATION_NESTED:如果當前存在事務,則在巢狀事務內執行。如果當前沒有事務,則執行與PROPAGATION_REQUIRED類似的操作。
--------------------- 
作者:hsgao_water 
來源:CSDN 
原文:https://blog.csdn.net/hsgao_water/article/details/52860380 
版權宣告:本文為博主原創文章,轉載請附上博文連結!

2、spring控制事務的方式
    1、程式設計式事務管理(基於Java程式設計控制,很少使用)
    2、宣告式事務管理(基於Spring的AOP配置控制)
    3、基於XML配置(經常使用)
    4、基於註解(配置簡單,經常使用)
    https://blog.csdn.net/m0_37354861/article/details/70212548
    
    事務的四個特性:
    原子性:指事務是一個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。
    一致性:指事務前後資料的完整性必須保持一致。
    隔離性:指多個使用者併發訪問資料庫時,一個使用者的事務不能被其他使用者的事務所幹擾,多個併發事務之間資料要相互隔離。
    永續性:指一個事務一旦被提交,它對資料庫中資料的改變就是永久性的,即時資料庫發生故障也不應該對其有任何影響。
    
    事務隔離級別:(五種)
    DEFAULT--使用後端資料庫預設的隔離級別(Spring中的選擇項)
    READ_UNCOMMITED--允許你讀取還未提交的改變了的資料。可能導致髒、幻、不可重複讀
    READ_COMMITTED--允許在併發事務已經提交後讀取。可防止髒讀,但幻讀和不可重複讀仍可發生
    REPEATABLE_READ--對相同欄位的多次讀取是一致的,除非資料被事務本身改變。可防止髒、不可重複讀,但幻讀仍可能發生
    SERIALIZABLE--完全服從ACID的隔離級別,確保不發生髒、幻、不可重複讀。這在所有的隔離級別中是最慢的,它是典型的通過完全鎖定在事務中涉及的資料表來完成的
    其中,MySQL預設採用REPEATABLE_READ隔離級別;Oracle預設採用READ_COMMITTED隔離級別
    
3、springboot中用到了哪些註解
    @SpringBootApplication
    @Configuration
    @EnableAutoConfiguration
    @ComponentScan
    @Repository
    @Service
    @Controller
    @ResponseBody
    @RestController
    @Component
    @ComponentScan
    @Bean
    @AutoWired
    @RequestMapping

4、spring是什麼?

    spring是一個輕量級開源的設計層面的框架。主要用於業務邏輯和其他層的解耦問題。

    一.Spring能幫我們根據配置檔案建立及組裝物件之間的依賴關係。

    二.Spring 面向切面程式設計能幫助我們無耦合的實現日誌記錄,效能統計,安全控制。

    三、在傳統應用程式當中,我們如何來完成資料庫事務管理?需要一系列“獲取連線,執行SQL,提交或回滾事務,關閉連線”,
        而且還要保證在最後一定要關閉連線,多麼可怕的事情,而且也很無聊;如果採用Spring,我們只需獲取連線,執行SQL,
        其他的都交給Spring來管理了,簡單吧。所以,Spring能非常簡單的幫我們管理資料庫事務。

    四、Spring還提供了與第三方資料訪問框架(如Hibernate、JPA)無縫整合,而且自己也提供了一套JDBC訪問模板,來方便資料庫訪問。

    五、Spring還提供與第三方Web(如Struts、JSF)框架無縫整合,而且自己也提供了一套Spring MVC框架,來方便web層搭建。

    六、Spring能方便的與Java EE(如Java Mail、任務排程)整合,與更多技術整合(比如快取框架)
    --------------------- 
    作者:HDDLJJ 
    來源:CSDN 
    原文:https://blog.csdn.net/HDDLJJ/article/details/83004840 
    版權宣告:本文為博主原創文章,轉載請附上博文連結!
    
5、spring的工作原理
    IOC
    AOP

6、什麼是IOC?
    控制反轉

7、什麼是AOP?
    面向切面程式設計

8、什麼是DI?
    依賴注入,IOC的具體實現

9、什麼是GC?
    垃圾回收

10、springBoot介面請求方式?
    get
    post
    RESTful API
    請求 header 獲取

11、分散式是什麼?

12、叢集又是什麼,如何實現,正向代理反向代理的優缺點?

13、SpringMvc用過沒有?
    用過

14、springboot的熱部署
    springboot底層實現就是springmvc
    
15、xml的理解
    

資料庫
1、索引有哪些種類?
    Mysql目前主要有以下幾種索引型別:FULLTEXT,HASH,BTREE,RTREE。
    https://www.cnblogs.com/yuan-shuai/p/3225417.html

2、內聯接、外聯接含義是什麼?
    內聯求交集
    左外連結
    右外連線
    交叉連線求笛卡爾積

3、delete與drop