📚 歡迎來到我的Java八股文專欄! 🎉
各位程序員小伙伴們好呀~ 👋 我是雪碧聊技術,很高興能在CSDN與大家相遇!?
🚀 專欄介紹
這個專欄將專注于分享Java面試中的經典"八股文"知識點 💡,內容涵蓋:
📌 Java基礎核心概念
🧠 JVM原理與性能調優
🔄 多線程與并發編程
🏗? 設計模式實戰
🗃? 常用框架源碼解析
?? 系統架構設計思想
🌟 為什么選擇這個專欄?🎯 精準定位:直擊大廠Java面試高頻考點
🧩 系統全面:從基礎到進階,構建完整知識體系
💎 實戰導向:理論+代碼示例,拒絕空談
🔍 深度解析:不只是背誦,更要理解原理
🆕 持續更新:緊跟技術發展趨勢
📖 學習建議建議大家可以這樣使用本專欄:
📅 每日一讀:每天消化1-2個知識點
?? 動手實踐:所有代碼建議親自敲一遍
🗂? 分類整理:建立自己的知識腦圖
🔄 定期復習:對抗遺忘曲線
💬 互動討論:評論區歡迎交流探討
🛠? 工具推薦學習過程中這些工具可能會幫到你:
🔧 IDEA:Java開發神器
📊 JProfiler:性能分析工具
🧪 JUnit:單元測試框架
📝 Markdown:筆記整理
🖇? Git:版本控制
💌 致讀者技術之路道阻且長,但行則將至 ?
在這個專欄中,我會:
? 用最通俗的語言解釋復雜概念
? 提供可直接運行的代碼示例
? 標注每個知識點的面試權重
? 分享實際項目中的經驗教訓
? 及時回復大家的疑問🌈 最后寄語
"八股文"雖被詬病,但扎實的基礎知識永遠是程序員的立身之本 💪
希望這個專欄能成為你:
🎯 面試沖刺的利器
🏗? 技術進階的階梯
🤝 結識同好的平臺
讓我們攜手并進,在技術的星辰大海中揚帆遠航! ?記得??收藏 ??關注 ??不迷路哦~ 😊
目錄
一.樂觀鎖
二.悲觀鎖
三.共享鎖(讀鎖)
四.排它鎖(寫鎖)
五.表級鎖
六.行級鎖
一.樂觀鎖
樂觀鎖用數據版本(Version)記錄機制實現,這是樂觀鎖最常用的一種實現方式。何謂數據版本?即為數據增加一個版本標識,一般是通過為數據庫表增加一個數字類型的“version”字段來實現。當讀取數據時,將version字段的值一同讀出,數據每更新一次,對此version值加1。當我們提交更新的時候,判斷數據庫表對應記錄的當前版本信息與第一次取出來的version值進行比對,如果數據庫表當前版本號與第一次取出來的version值相等,則予以更新,否則認為是過期數據。
二.悲觀鎖
悲觀鎖在進行每次操作時都要通過獲取鎖才能進行對相同數據的操作,這點跟java中synchronized很相似,共享鎖(讀鎖)和排它鎖(寫鎖)是悲觀鎖的不同的實現。
三.共享鎖(讀鎖)
共享鎖又叫做讀鎖,所有的事務只能對其進行讀操作不能寫操作,加上共享鎖后在事務結束之前其他事務只能再加共享鎖,除此之外其他任何類型的鎖都不能再加了。
四.排它鎖(寫鎖)
若某個事物對某一行加上了排他鎖,只能這個事務對其進行讀寫,在此事務結束之前,其他事務不能對其進行加任何鎖,其他進程可以讀取,不能進行寫操作,需等待其釋放。
五.表級鎖
innodb的行鎖是在有索引的情況下,沒有索引的表是鎖定全表的。
六.行級鎖
行鎖又分共享鎖和排他鎖,由字面意思理解,就是給某一行加上鎖,也就是一條記錄加上鎖。
注意:行級鎖都是基于索引的,如果一條SQL語句用不到索引是不會使用行級鎖的,會使用表級鎖。