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