原创 Redis 數據結構——SDS

簡單動態字符串(sds) 定義 Redis沒有直接使用C語言傳統的字符串表示(以空字符結尾的字符數組),而是自己構建了一種名爲簡單動態字符串(simple dynamic string,SDS)的抽象類型,並將SDS用作Redis的默認字

原创 Redis 數據結構——鏈表

鏈表 鏈表在Redis中的應用非常廣泛,比如列表鍵的底層實現之一就是鏈表。當一個列表鍵包含了數量比較多的元素,又或者列表中包含的元素都是比較長的字符串時,Redis就會使用鏈表作爲列表鍵的底層實現。 除了鏈表鍵之外, 發佈與訂閱、慢查詢、

原创 Redis 數據結構——字典

字典 一個鍵(key)可以和一個值(value)進行關聯(或者說將鍵映射爲值), 這些關聯的鍵和值就被稱爲鍵值對。 字典在 Redis 中的應用相當廣泛, 比如 Redis 的數據庫就是使用字典來作爲底層實現的, 對數據庫的增、刪、查、改

原创 Java 死鎖的概念及排查

什麼是死鎖 死鎖是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力干涉那它們都將無法推進下去,如果系統資源充足,進程的資源請求都能夠得到滿足,死鎖出現的可能性就很低,否則就會因爭奪有限的資源而陷入死鎖。

原创 leetcode 658 | 找到 K 個最接近的元素

給定一個排序好的數組,兩個整數 k 和 x,從數組中找到最靠近 x(兩數之差最小)的 k 個數。返回的結果必須要是按升序排好的。如果有兩個數與 x 的差值一樣,優先選擇數值較小的那個數。 示例 1: 輸入: [1,2,3,4,5], k

原创 leetcode 695 | 島嶼的最大面積

給定一個包含了一些 0 和 1的非空二維數組 grid , 一個 島嶼 是由四個方向 (水平或垂直) 的 1 (代表土地) 構成的組合。你可以假設二維矩陣的四個邊緣都被水包圍着。 找到給定的二維數組中最大的島嶼面積。(如果沒有島嶼,則返回

原创 leetcode 面試題17.16按摩師

一個有名的按摩師會收到源源不斷的預約請求,每個預約都可以選擇接或不接。在每次預約服務之間要有休息時間,因此她不能接受相鄰的預約。給定一個預約請求序列,替按摩師找到最優的預約集合(總預約時間最長),返回總的分鐘數。 注意:本題相對原題稍作改

原创 Java 聊聊Spring框架AOP和IoC

Spring框架 Spring 框架是當前主流的 Java 應用程序開發框架。Spring使Java編程對每個人來說都更快、更簡單、更安全。Spring對速度、簡單性和生產力的關注使它成爲世界上最流行的Java框架。 spring 的優點

原创 leetcode 121 | 買賣股票的最佳時機

給定一個數組,它的第 i 個元素是一支給定股票第 i 天的價格。 如果你最多隻允許完成一筆交易(即買入和賣出一支股票),設計一個算法來計算你所能獲取的最大利潤。 注意你不能在買入股票前賣出股票。 示例 1: 輸入: [7,1,5,3,

原创 美團算法面試題|2020-3-12

題目描述:小美曾經有一個特殊的數組, 這個數組的長度爲n。但是她在打恐怖遊戲的時候被嚇得忘記了這個數組長什麼樣了。不過她還記得這個數組滿足一些條件。首先這個數組的每個數的範圍都在L和R之間。包括端點。除此之外,這個數組滿足數組中的所有元

原创 MySQL 簡單聊聊併發控制、事務及多版本併發控制(MVCC)

併發控制 讀寫鎖 在處理併發讀或者寫時,可以通過實現一個由兩種類型的鎖組成的鎖系統來解決問題。這兩種類型的鎖通常被稱爲共享鎖. (shared lock)和排他鎖(exclusive lock),也叫讀鎖(read lock)和寫鎖(wr

原创 Java 細聊JVM之堆與GC

JVM內存體系結構 堆體系結構 一個JVM實例只存在一個堆內存,堆內存的大小是可以調節的。類加載器讀取了類文件後,需要把類、方法、常變量放到堆內存中,保存所有引用類型的真實信息,以方便執行器執行,堆內存分爲三部分: Young Gene

原创 正則表達式 | 分類記憶法

正則 正則表達式是編程人員日常工作的非常重要的一個工具,可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。但是正則中的字符有很多,比較難記憶,這裏我們對它進行分類,幫助我們更好的以及這些字符。 功

原创 設計模式 適配器模式的寫法及分析

設計模式分類 創建型模式:單例模式、抽象工廠模式、原型模式、建造者模式、工廠模式。 結構型模式:適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。 行爲型模式:模版方法模式、命令模式、訪問者模式、迭代器模式

原创 阿里菜鳥實習生面經分享

因爲是實習生面試,而且是一面,所以問的問題也不算太難,面試時間也沒有太長,只有半個小時,總共問了18個問題。 1.問簡歷中的項目 這個基本每場面試都會問的,一般都問最近做的項目,主要用到什麼技術,功能是什麼,遇到什麼問題,怎麼解決的,有什