原创 HashMap的實現原理(上)

前言:要分析HashMap的實現,首先要知道爲什麼需要HashMap?它究竟解決了什麼問題?它又是如何解決問題的?爲了回答上面三個問題,我們先來看一下,數組與鏈表這兩種數據結構的優劣。 一、數組與鏈表的優劣。 1、數組的優劣: 1

原创 A trick about not-null type in kotln

Note: 原創,非翻譯。 What is “A trick about not-null type in Kotlin?” The trick is that: "not-null type isn’t always being

原创 Bat 等待一段指定的時間

以下代碼,直接放在.bat文件中執行,就可以指定停留30秒。 timeout /t 30 如果不想被中斷,除非關閉程序或按ctrl+c,就加這個指令 /nobreak。 timeout /t 30 /nobreak 如果還不想

原创 Let's talk about the relationship of Androidx, Support, Jetpack.

You may heard AndroidX, Support, Jetpack, but do you know what are the differences between them? Okay, Let me walk

原创 couldn't find "libc++_shared.so"

Android 項目,運行時遇到這個問題時,刪除build文件夾,然後Rebuild項目就行了。

原创 淺析SparseArray的源碼實現

前言: 在我們學習一個新技術,新東西之前,我們往往會先考慮到以下幾個問題: SparseArray是什麼? SparseArray有什麼優點和缺點? SparseArray是如何實現這些優點? SparseArray爲什麼會有這

原创 Tcp and Three-Way handshake

一、The TCP Protocol TCP is a protocol which belongs to the Transfer Layer of the four protocol layers. UDP is anothe

原创 Kotlin需要注意的知識點

1、當擴展函數與重載操作符函數或、成員函數有相同簽名時。編譯器不會報錯,但是擴展函數會被忽略掉,不會被調用,只調用重載操作符函數或成員函數。 2、重載操作符函數與成員函數有相同簽名時,編譯器會報錯,簡而言之,重載操作符函數,只是成

原创 Git通過命令忽略指定文件

進入要忽略的文件的所在目錄,點擊鼠標右鍵,選擇Git Bash Here,如圖所示。 以下命令,是忽略指定文件 git update-index --assume-unchanged test.txt 以下命令,是取消忽略指定

原创 紅黑樹的時間複雜度分析

一、紅黑樹的基本屬性。 紅黑樹的每個結點,要麼是黑色,要麼是紅色,不可能是黃色或其它顏色。 根結點(root)一定是黑色,簡稱爲黑頭。 所有紅色結點不可以直接相鄰。 也即是,如果一個結點爲紅色,那麼,它的爸爸或兒子,一定就是黑色

原创 Android如何使用Camera2拍照【簡易快速上手篇】

因爲大部分的需求,並沒有那麼複雜,只需要簡單的拍照功能,對於這種簡單的需求,本文可以很好的滿足。本文,是對Camera2做一個極簡易的封裝,以及去掉其它不重要的API,幫助你在幾分鐘內,使用Camera2實現拍照功能。一共4個文件

原创 Android 四大組件之Broadcast【一】

一,什麼是廣播? 廣播, 做爲Android的四大組件之一,被用於發送和接收,來自系統或其它app的消息。其設計原理,是基於觀察者模式來設計的,即先訂閱,後接收。廣播消息,並不受限於某一個單一進程。因此,它可以用於跨進程間的通信,

原创 Github login 一直彈(AndroidStudio)

最近,在Github上又創建了一個分支,在push時,老是彈這個login彈窗,配置了AndroidStuiod裏面的github賬號也沒用。後來,根據這篇博文,解決了這個問題。 進入用戶目錄(一般爲C:\users\yourUs

原创 淺析SparryArray的源碼實現

前言: 在我們學習一個新技術,新東西之前,我們往往會先考慮到以下幾個問題: SparseArray是什麼? SparseArray有什麼優點和缺點? SparseArray是如何實現這些優點? SparseArray爲什麼會有這

原创 Android Studio 提示Please select android sdk

圖文解釋這個問題,遇到這個問題,只要配置一下module對應的sdk就行了。 這是出錯的圖片,如果是這樣,再照着做就行。 第一步:打開File->Project Structure… 第二步:選中,對應的Module,這裏是