【程序源代碼】java 每日高頻面試題【day4】
“ 關(guān)鍵字: java 學(xué)習(xí) 每日 高頻 面試題 每日高頻面試題 ,一起沖進大廠"
導(dǎo)讀:
大家好,我是程序源代碼,算算入行的時候我已算入行10以上的老兵了,畢業(yè)在北京北漂8年,13年回到省會石家莊,一直就在河北這塊土地上生活著。現(xiàn)在人了快到了中年,感覺現(xiàn)在生活壓力都比較多大。夢想著有一天能進入大廠,實現(xiàn)一個大廠夢。其實我感覺大家應(yīng)該和我一樣,都想有進入大廠工作畢竟生活需要理想,還需要茍且(掙高工資),其實現(xiàn)在大廠并不是特別容易進,作為一名好多年的Java選手,其實我感覺進入大廠,首先要把自己的技術(shù)和面試這兩個重要點做好。
? 主要涵蓋的知識點我簡單列了一下,計劃從這些方面出發(fā)進行學(xué):Java基礎(chǔ)知識、集合容器、并發(fā)編程、JVM、Spring全家桶、MyBatis等ORMapping框架、MySQL數(shù)據(jù)庫、Redis緩存、RabbitMQ消息隊列、Linux操作技巧等。
01
—
死鎖、如何預(yù)防死鎖?
1、造成死鎖的四個必要條件
1、互斥條件:同一時間只有一個線程獲取到資源;2、不可剝奪條件:一個線程已占有資源,在釋放前不會被其它線程占用。
3、請求和保持條件:線程等待過程中不會釋放已占有的資源。
4、循環(huán)等待條件:多個線程相互等待對方釋放資源
2、如何預(yù)防死鎖?
采用trylock(timeout)方法,設(shè)置線程的超時時間,通過程序判斷線程主動退出,主動進行判斷如果不用資源后釋放占有的資源。這樣就可以讓資源得到釋放,從而其它線程就可以去獲取資源進行線程操作。就像一個十字口路一樣,大家按照指定紅綠燈進行通知 ,紅燈就暫停下來讓別的線程進行操作,別的進程操作完成通過后,綠燈時自己再獲取資源進行操作。
02
—
Cookie和 session的區(qū)別是什么?
Cookie:是將數(shù)據(jù)保存到客戶端(瀏覽器);
session:是將數(shù)據(jù)保存到服務(wù)端;一般情況下session用于服務(wù)端保存用戶狀態(tài)時使用。相對來說session比cookie更加安全些。因為它不容易通獲取到。瀏覽器經(jīng)常容易被一些程序進行惡意操作。
一般在實際使用時建議使用session;一般情況下如果涉及到用戶的敏感數(shù)據(jù)信息時,建議通過程序?qū)⒂脩舻男畔⑦M行加密后,通過session保存到服務(wù)端保存下來,不是直接放在瀏覽器客戶端里面。
比如我們在登錄驗證時,先驗證用戶名和密碼是否一樣,如果用戶和密碼完成符合后將用戶session信息保存session中,這樣在登錄后的一些操作就可以從session獲取到用戶信息。
04
—
聯(lián)
方
式
公眾號ID: itcode
微信ID: itcoder
免
聲
明
—————————————

———————

————————
