原创 面試官最想要的synchronized,你值得擁有

synchronized簡介synchronized 是Java語言的一個關鍵字,它本身的意思爲同步,是用來保證線程安全的,可用來給對象和方法或者代碼塊加鎖,當它鎖定一個方法或者一個代碼塊的時候,同一時刻最多隻有一個線程執行這段代碼。s

原创 (java)MD5生成文件的MD5值

package com.md5.test1; import java.io.File; public class Test { public static void main(String[] args) {

原创 volatile面試的連環追擊,你還頂得住嗎?

本文腦圖 volatile是java中熱門關鍵字,也是面試中的高頻問點,今天就來深入的從各種volatile面試題中剖析它的底層原理實現,並通過簡單的代碼去證明。 在深入volatile之前,我們先從原理入手,然後層層深入,逐步

原创 面試造飛機系列:面對Redis持久化連環Call,你還頂得住嗎?

本文腦圖 Redis是一個基於內存的非關係型的數據庫,數據保存在內存中,但是內存中的數據也容易發生丟失。這裏Redis就爲我們提供了持久化的機制,分別是RDB(Redis DataBase)和AOF(Append Only Fi

原创 這幾個月我到底做了什麼?

數據庫系列文章面試官:聽說你sql寫的挺溜的,你說一說查詢sql的執行過程深入mysql的innodb存儲引擎之文件結構Mysql優化提高筆記整理,來自於一位鵝廠大佬的筆記爲了把mysql的索引底層原理講清楚,我把計算機翻了個底朝天淺談

原创 Mysql優化提高筆記整理,來自於一位鵝廠大佬的筆記

概述對於mysql的優化是一個綜合性的技術,sql的優化只是其中的一種,其中主要包括 表的設計合理化(符合3大範式)。添加索引(index) [普通索引、主鍵索引、唯一索引unique、全文索引]。分表技術(水平分割、垂直分割)。讀寫[

原创 SpringCloud學習之Eureka集羣搭建

一.爲什麼需要集羣上一篇文章講解了如何搭建單個節點的eureka,這篇講解如何搭建eureka集羣,這裏的集羣還是本地不同的端口執行三個eureka,因爲條件不要允許,沒有三臺電腦,所以大家將就一下吧,eureka集羣的目的就是防止一個

原创 Git快速入門之提交代碼和更新代碼命令

1.Git提交代碼利用命令提交代碼的步驟:1.1.拉取服務器代碼,避免覆蓋他人的代碼git pull 1.2.查看當前項目中有哪些文件被修改git status 具體狀態如下:Untracked:爲跟蹤,一般爲新增文件,此文件在文件夾中

原创 面試官再問ConcurrentHashMap,就把這篇文章甩給他

ConcurrentHashMap的介紹 ConcurrentHashMap是線程安全並且高效的一種容器,我們就需要研究一下ConcurrentHashMap爲什麼既能夠保證線程安全,又可以保證高效的操作。 爲什麼使用Concur

原创 學習資源獲取

關注公衆號:非科班的科班。超過1024G的IT學習資源獲取,JAVA、C++、C、C#、Python、PHP、.NET,大數據等電子書以及學習視頻,價值百萬值得你獲取,獲取方式如下。JAVA類資源獲取回覆 "springboot實戰項目

原创 淺談數據庫樂觀鎖、悲觀鎖

併發問題當程序中出現併發的問題時,我們就要有相應的手段保證數據的正確性,防止多個用戶在操作數據的時候,出現和預期數據不一樣的現象,產生髒數據,在數據庫的層面如果沒有做好併發控制,就可能導致髒讀、幻讀和不可重複讀等問題,所以對於併發場景鎖

原创 【源碼篇】深入Lock鎖底層原理實現,手寫一個Lock鎖

synchronized與lock lock是一個接口,而synchronized是在JVM層面實現的。synchronized釋放鎖有兩種方式: 獲取鎖的線程執行完同步代碼,釋放鎖 。 線程執行發生異常,jvm會讓線程釋放鎖。

原创 爲了把mysql的索引底層原理講清楚,我把計算機翻了個底朝天

什麼是索引 概念:索引是提高mysql查詢效率的數據結構。總的一句話概括就是索引是一種數據結構。 數據庫查詢是數據庫的最主要功能之一。設計者們都希望查詢數據的速度能儘可能的快,因此數據庫系統的設計者會從查詢算法的角度進行優化。最

原创 淺談數據庫悲觀鎖、樂觀鎖。

併發問題 當程序中出現併發的問題時,我們就要有相應的手段保證數據的正確性,防止多個用戶在操作數據的時候,出現和預期數據不一樣的現象,產生髒數據,在數據庫的層面如果沒有做好併發控制,就可能導致髒讀、幻讀和不可重複讀等問題,所以對於併