當前位置:編程學習大全網 - 源碼下載 - 大學女生都會的Java拿offer的偏方!

大學女生都會的Java拿offer的偏方!

我好像掌握了JAVA 拿offer的偏方

java中的集合框架用過哪些?

java中的集合分為單列集合和雙列集合, 單列集合頂接口為Collection, 雙列集合頂級接口為Map-

collection的子接口有兩個:List和Se to

List接口的特點; 無素可重復, 有序(存取順序) ,

list接口的實現類:

ArrayList:底層實現是數組, 查詢快, 增刪慢, 線程不安全, 效豐高;

LinkedList:底層實現是謎表, 增刪快, 查詢慢, 線程不安全, 效率高;

set接口的特點:元素唯壹, 不可重復, 無序,

set接口實現具:

HashSet:底層實現hashMap, 數組十鏈表實現, 不允許元素重復, 無序。

Tree Set:底層實現紅黑二叉樹, 實現元素排序

Map-接口的特點:key-value健值對形式存儲數據

Map接口實現類;

Hash Nap:底層數組十鏈表實現, 線程不安全效率高:

TreeMap:底層紅黑二叉樹實現, 可實現元素的排序;

Linked Hash Nap:底層hash nap+linkedList實現, 通過hashmap實現key-value鍵值對存鍺, 通過徒表實現元素有序。

說壹下妳對Spring的理解?

Spring這個框架做項目壹直都在用吧, 現在月的最多的是Spring Boot和Spring Cloud Alibaba裏那些組

件。我先說壹下Spring*, Spring的核心主要的就三個點吧I0C, D 1和AOP。

10C控制反轉, 不用Spring框架的話如果想創建壹個對象, 就new壹個。用了Spring以後直接把類交

給Spring來管理, 讓Spring給創建對象, Spring就是壹個大工廠模式, 底層創建對象的方式是通過配置文

件+反射的方式.

D 1就是依賴註入, 把Spring框架創建好的對象註入到使用的地方, 我們項目中都是用O Auto Mired照

類型註入的方式, 直接獲取到這個類的對象。還有AOP, 就是面向切面編程, 它的原理的話, 我看過

它的底層代碼,它實際上就是實現了動態代理權制,以前的話用這個做過事務的控制,現在的話我們

都用e Transaction nal註解來控制事務, 其實他底層實現還是aop那壹套。

哪些場景不適用索引?

大概分三種情況吧:

第壹種情況是:做查詢的時候很少用到的列、某個列中包含的數據很少

第二種情況是; 數據類型的宇段是TEXT、BLOB、BIT等數據類型的宇段、

第三種情況是:當在數據表中修改數據的頻率大於查詢數據頻率時等,這些場景不適合創建索引,還有

查詢宇投不會做為where條件或者order by字段時也不適合創建索引

什麽是死鎖

打個比方,低設有P1和P2兩個進程,都需要A和B兩個資源,現在P1持有A等待B資源,而P2持有B等持

A資源,兩個都等持另壹個資源而不肯釋放資源,就這樣無限等持中,這就形成死鎖,這也是無鎖的壹

種情,給死鎮下個定義,如果壹組進程中每壹個進程都在等待僅由該組進程中的其他進程才能引發

的事件,那麽讀組進程是死鎮的。競爭不可搶占資源引起死鎮,也就是我們說的第壹種情況,而這都在

等待對方占有的不可撿古的資源。

mysql內部西數多了解壹下

concat, trim, replace, substring.cur date 0#返回當前日期, cur time 0#返回當前時間, now 0#返回當前

日期十時間i(value, true, false) #如果value值為真, 則回true, 否則, 返田false

select if(salary>3000, 'Hight', 'Low') fron salary;

select id, salary, if(salary<=>NULL, 'NULL', 'NDT NULL') fron salary;

2、if null(value 1, value 2) #如果value 1不為空, 則延四value l, 不然返回value z

#可以用來進行空值替換

select if null(salary, 0.00) from salary; 等等,

如果數據庫誤操作,如何執行數據恢復?

看妳ny sql有沒有開啟那個binlog, 然後用mysql自常的mysqlbinlog工具找到最近誤操作時間節點的

binlog, 重放到臨時數據庫裏, 然後選擇誤刪的數據節點, 恢復壹下。

主庫從庫數據延遲的問題有遇到過嗎?

主要原回:數據庫在業務上讀寫壓力太大, CPU井算負磚大, 網卡負荷大, 硬盆隨機10太高(本要原回:讀寫binlog帶來的性能影響, 網絡傳輸延遲My5al數據庫從庫同步的延遲解決方案:

架構方面

1) .業務的持久層采用分庫架構, ny sql服務能力水平擴展, 分散壓力

2).單個庫讀寫分離,壹主多從,主寫讀從,分散壓力。這樣從庫比主庫壓力高,保護主庫

3) .服務在業務和DB之間加入ner cache和red is的cache層, 降低讀的壓力

4) ·不同業務的mysql放在不同的物理機, 降低壓力

5) , 使用比主庫更好的硬件設備, Mq sql壓力小, 適迅就減少了

使用Red is緩存有沒有遇到什麽問題?

妳是說的那個緩存雪崩和緩存穿, 我知道暖存雪崩是國為red is中多個key同時失效後, 又透到高井發後就會造成大量的請求直接請求數據庫, 導致數據庫服務器宏機的情況, 壹般這種情況我們會給red is中的key設置不同的生命周期就能解決, 或者是我們給使用分布式鎖來解決; 還有緩存穿透的話就是大並發請求過來,查詢壹個連數據庫都沒有的數據,頻繁的請求數據庫導致數據庫宏機,這種解決方靠是我們會存到red is壹個key值value為null, 給個失效時間, 也可以避免這種問題,

說壹下red is集群嗎?

Red is本身支持集群操作red is_a luster, 另外red is還支持主從復制, 以前的老版本中有壹個哨兵模式, 在主服務器機時, 從服務器可以自動轉換為主服務器, 我們公司搭建的red is集群是用的ruby腳本配合搭建的,我們壹去茶建了6臺服務器,3主3備,他們之間通信的原理是有壹個乒乓協議進行通信的,他們判斷壹個節點的狀態是用投票選舉機制判斷的,半數以上判斷壹個接口是宏機了的話,備用節點就會啟動對, 我再給妳說下壹他們往裏存儲數據的機制, 其實這個red is搭建好集群以後每個節點都存放著壹個hash槽, 每次往裏存儲數據的時候, red is都會根據存儲進來的key值算出壹個hash值, 通過這個hash值可以判斷到底應該存諸到哪壹個哈希槽中, 取的時候包是這麽取的, 這就是我了解的red is集群。

簡單說壹下Spring MVC與Spring是如何整合的?

簡單的說spring MVC在ssm中整合就是在web.xml邊配置spring MVC豹核心控制器:Dispatch-

er servlet, 它就是對指定後紙進行櫃截; 然後在spring NVC.x nl裏邊配置掃描器, 可以掃插到帶a control-ler註解的這些類, 現在用spring NVC都是基與註解式開發, 像e service, Repository B Request nap-

ping, O response body啦這些註解標整等等都是開發時用的, 每個註解標簽都有自己的作用; 它還配置壹個視圖解析器, 主要就是對處理之後的轉進行統壹配置, 大致就是這些, 如何使用spring MVC獲取表早裏的數據?通過形參和表單裏的nane值保持壹致就能獲取到,

說壹下Spring Boot吧?

Spring Boot:的定大於配置:同樣通過自動配置, 引入依賴後, 加載默認配置文件, 如果要自定義的話可以通過java類實現, 也可以在全局配置文件(application.properties, application.yml) 中定義;Spring Boot優點

1.快速創建獨立運行的Spring項因以及與主流框架集成

2.使用嵌入式的Servlet容器應用無需打成WAR包(jar)

3.Starters(場景啟動器) 自動依賴與版本控制

4.大量的自動配置,簡化開發,也可修改默認值

5.5.無需配置大量的X NL, 無代碼生成, 開箱即用

簡單說壹下sql語句是怎麽優化的?

我們壹般在開發的時候需要註意SOL規範, 比如說最基本的不要用*查詢所有字段, 還要是經常用表別名, 經常corm it提交事務盡量讓及時釋放國滾點, 如果使用函數的話盡量使用內部的函數, 還有壹個優化的地方是項目上線後,產生大量數據後,由測試人員發現某些的功能點響應比較慢,反鏡給我們開發人員,我們開發人員找到這個功能點對應的sql語句, 如果這個sql語句寫的比較復雜, 我們就得用explain去分析-下5QL語句的執行計劃,看下是不是索引失效了,或者是執行到某壹個子查詢的語向執行比較慢,然後我們去優化達些個sql, 優化方式是什麽?比如說加索引, 或者創建視圖。

  • 上一篇:如何用C語言編程 掃雷!~
  • 下一篇:手機yy直播間簽到功能沒有了嗎?
  • copyright 2024編程學習大全網