java中使用的集合框架有哪些?
java中的集合分為單列集合和雙列集合。單列集合的頂層接口是collection,雙列集合的頂層接口是Map-
collection有兩個子接口:List和Se to。
列表界面的特點;沒有質數可以重復,有序(存取順序),
列表接口的實現類:
ArrayList:底層實現是array,查詢快,增刪慢,線程不安全,效率高;
LinkedList:底層實現是拼圖表,增刪快,查詢慢,線程不安全,效率高;
集合界面的特點:獨特的元素,不重復,無序,
設置接口實現工具:
HashSet:底層實現hashMap,數組由十個鏈表實現,不允許元素重復和無序。
樹集:底層實現紅黑二叉樹,實現元素排序。
Map- interface的特性:數據存儲在鍵值對中。
地圖接口實現類;
Hash Nap:底層數組由十個鏈表實現,線程不安全高效;
TreeMap:底層紅黑二叉樹的實現,可以實現元素的排序;
鏈接Hash Nap:實現底層hash nap+linkedList。鍵-值鍵對通過hashmap用鍺存儲,元素通過表排序。
說說妳對春天的理解?
Spring框架已經用於項目了吧?現在Spring Boot和春雲集團是使用最頻繁的。
件。先說春天吧。Spring的核心由三點組成:I0C,D 1,AOP。
10C控制反轉。如果妳想創建壹個沒有Spring框架的對象,妳可以創建壹個新的。用了Spring之後直接交班。
讓Spring管理,讓Spring創建對象。Spring是大廠模式,底層創建對象的方式是通過配置文件。
小品+反射模式。
D 1是依賴註入,將Spring框架創建的對象註入到使用它們的地方。在我們的項目中,使用O Automirrored。
類型註入,直接獲取這個類的對象。還有AOP,面向方面編程。我見過它的原理。
它的底層代碼,實際上實現了動態代理系統,過去用這個來控制事務,但是現在我們
大家都用e Transaction nal註釋來控制事務,但其實他的底層實現還是aop。
哪些場景不適合索引?
大概有三種情況:
第壹種情況是:進行查詢時很少使用的列,列包含的數據很少。
第二種情況是;段譽的數據類型是段譽的文本、BLOB、BIT等數據類型,
第三種情況是,當修改數據表中數據的頻率大於查詢數據的頻率時,這些場景不適合創建索引,並且
查詢Yutou不會用作where條件或order by字段,也不適合創建索引。
什麽是死鎖?
比如有兩個進程,P1和P2,都需要A和B兩個資源,現在P1持有A等待B的資源,而P2持有B的資源等等。
壹個資源,兩個都在等待另壹個資源,拒絕釋放,於是無限期等待,形成了死鎖,也是沒有鎖的那個。
在這種情況下,定義死亡城鎮。如果壹組進程中的每個進程都在等待,那麽它只能由該組中的其他進程觸發。
事件,那麽讀組進程就死了。爭奪奪不到的資源導致死城,這是我們說的第壹種情況,這都在
等待對方無法挽回的資源。
了解更多關於mysql內部西部數據。
Concat,trim,replace,substring.cur date 0#返回當前日期,cur time 0#返回當前時間,now 0#返回當前日期。
Date Ten Time i(value,true,false) #如果value值為true,則返回true,否則,返回字段false。
選擇如果(薪金& gt3000,“高”,“低”)fron工資;
選擇id,薪金,如果(薪金& lt= & gtNULL,“NULL”,“NDT NULL”)來自工資;
2.如果為null(值1,值2) #如果值1不為空,則將值l延遲4,否則返回值z。
#可用於空替換。
從薪金中選擇是否為空(薪金,0.00);等等,
如果數據庫出錯,如何進行數據恢復?
看看妳的ny sql有沒有打開那個binlog,然後用mysql自帶的mysqlbinlog工具找到最近誤操作時間的節點。
Binlog,放回臨時數據庫,然後選擇誤刪的數據節點,恢復。
妳遇到過主庫和從庫數據延遲的問題嗎?
主要原因:數據庫讀寫壓力過大,CPU井過重,網卡負載過高,硬盤隨機10過高(原因:讀寫binlog造成的性能影響,網絡傳輸延遲,My5al數據庫從庫同步延遲解決方案;
建築方面
1).業務持久層采用子數據庫結構,擴展了ny sql的服務能力,分散了壓力。
2)單庫讀寫分開,壹主多從,主讀寫從,分散壓力。這樣,從庫比主庫有更高的壓力,保護了主庫。
3).服務增加了ner cache和red的緩存層,在服務和DB之間,減輕了讀取的壓力。
4)不同業務的mysql放在不同的物理機上,減輕壓力。
5)、使用比主庫更好的硬件設備,Mq sql壓力小,靈活性降低。
您在使用Red is緩存時遇到過任何問題嗎?
妳指的是緩存雪崩和緩存擊穿。我知道暖存儲雪崩是多個紅色的鍵同時失效後大量請求直接請求數據庫的情況,導致數據庫服務器的宏機。壹般這種情況可以通過給red is中的key設置不同的生命周期來解決,或者我們可以使用分布式鎖來解決;如果有緩存穿透,那麽過來查詢壹個連數據庫都沒有的數據,就是壹個很大的並發請求。對數據庫的頻繁請求導致了數據庫宏機器。這個解決方案依賴於我們用null保存壹個紅色的鍵值,並給出壹個到期時間。這個問題也是可以避免的。
說說那個紅色的光腦集群?
Red is本身支持集群操作red is _ A集群,red is也支持主從復制。在之前的老版本中,有哨兵模式。當使用主服務器時,從服務器可以自動轉換為主服務器。我們公司搭建的REDIS集群是用ruby腳本搭建的。我們壹去茶,就建了6個服務器,3個主服務器,3個備用服務器。它們之間的通信原理是有乒乓協議進行通信。他們判斷壹個節點的狀態是通過投票機制來判斷的。如果超過壹半判斷某個接口是宏,備用節點就會啟動對,我會告訴妳他們下壹步存儲數據的機制。事實上,在這個red is構建集群之後,每個節點存儲壹個hash slot。每次在裏面存儲數據的時候,Red is都會根據存儲的鍵值計算出壹個哈希值,通過這個哈希值可以判斷應該存儲在哪個哈希槽,取的時候包是這樣取的。這就是我所知道的紅色星團。
Spring MVC如何與Spring集成?
簡單來說,在ssm中集成spring MVC就是配置spring MVC Leopard核心控制器:Dispatch-
Er servlet,就是剪指定的紙;然後,在spring NVC.x nl中配置壹個掃描器,它可以掃描這些帶有control-ler註釋的類。現在,spring NVC是基於和註解開發的,比如e service,Repository B Request nap-
Ping,O響應體,這些註釋都是開發用的,每個註釋標簽都有自己的功能;還配備了視圖解析器,主要是統壹配置後期處理,僅此而已。如何使用spring MVC獲取表中的數據?它可以通過保持形式參數與形式中的nane值壹致來獲得。
Spring Boot怎麽樣?
Spring Boot:定值大於配置:同樣通過自動配置,引入依賴關系後,加載默認配置文件。如果要自定義,可以通過java類實現,也可以在全局配置文件(application.properties,application.yml)中定義;Spring Boot的優勢
1.快速創建獨立的Spring項目,並將其與主流框架集成。
2.嵌入式Servlet容器應用程序不需要被類型化為WAR包(jar)。
3.啟動器(場景啟動器)自動依賴和版本控制。
4.大量的自動配置可以簡化開發,默認值也可以修改。
5.5.無需配置大量X NL,無需代碼生成,開箱即用。
簡單說說sql語句是如何優化的?
我們在開發時壹般需要註意SOL規範。比如最基本的不要用*查詢所有字段,還要經常使用表別名。corm it經常提交事務試圖及時釋放國家,如果使用函數,盡量使用內部函數。還有壹個優化就是項目上線後,產生大量數據後,測試人員發現有些功能點響應慢,反映給我們開發人員。我們開發人員找到這個功能點對應的sql語句。如果這個sql語句比較復雜,我們就要用explain來分析下壹個5QL語句的執行計劃,看看是不是索引無效,或者是某個子查詢的執行比較慢,然後我們會優化壹些sql。優化方法是什麽?例如,添加索引或創建視圖。