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:支持當前事務,如果當前存在事務,就加入該事務,如果當前不存在事務,就以非事務執行?!?/p>

?? ?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--允許你讀取還未提交的改變了的數據??赡軐е屡K、幻、不可重復讀

READ_COMMITTED--允許在并發事務已經提交后讀取??煞乐古K讀,但幻讀和不可重復讀仍可發生

REPEATABLE_READ--對相同字段的多次讀取是一致的,除非數據被事務本身改變??煞乐古K、不可重復讀,但幻讀仍可能發生

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

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容