原创 leetCode2:Add Two Numbers

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and eac

原创 Activity及其生命週期小結

Activity及其生命週期方法 △概述 Activity,是安卓裏與用戶交互的組件,通俗點說平時用手機的時候看到的一個個界面就是“Activity"所組成的(當然也有可能會是Fragment,這個不在本文討論),Activity類似一

原创 Java對象初始化的過程示例

單一對象的初始化過程 △概念 所謂對象的初始化過程,就是當你new了一個對象之後,對象所在類的各個成分執行順序。 △類的成分,各個成分的作用 →成員變量:分爲靜態成員變量以及普通成員變量。 →成員方法:如果僅僅只是new了一個對

原创 Git知識梳理

前言 本文不算專業教程,只是對Git的基礎知識和常用功能做梳理,以滿足日常開發的需求。 概述 Git是什麼:分佈式版本控制系統。 版本控制系統是什麼:版本控制系統是一個能夠記錄文件變更以及支持多人協同工作的軟件。 記錄文件變更:

原创 Java集合系列——LinkedList源碼解讀

之前寫過一篇解讀ArrayList源碼的文章(鏈接:Java集合系列——ArrayList源碼解讀),現在接着來寫與之關聯比較近的LinkedList的源碼解讀,對比着學習,體會以不同方式實現的List接口的異同。 概述 簡單說下Li

原创 一步步地分析排序——歸併排序

前言 本文是對《算法》第四版歸併排序所做的筆記,歸併排序之所以值得我們仔細學習,有幾個原因: 歸併排序是非常經典的基於分治法的遞歸排序算法。 和初級排序算法(冒泡、選擇、插入)在最壞的情況下時間複雜度會達到O(N2)相比,歸併排序在

原创 通過流程圖來分析Android事件分發

寫在前面 距離前一次寫博客,已經過去接近一年,回想起來這一年確實很忙,否則不會連寫博客都耽誤了。然而忙歸忙,也並沒有停下學習的腳步,趁着今天有時間,把最近學習並實踐於項目當中的知識點給梳理了,這就是今天要聊的話題——Android事件

原创 一步步地分析排序——插入排序

前言 本文是對《算法》第四版插入排序所做的筆記,與選擇排序相比較(之前也寫過一篇文章,簡單地分析了選擇排序,有興趣的可以看看:一步步地分析排序——選擇排序),雖然插入排序也是初級排序算法,排序過程也不復雜,雖然我們考慮最壞的情況時,他和選

原创 LeetCode219題:Contains Duplicate II

Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array su

原创 一步步地分析排序——選擇排序

前言 本文是對《算法》第四版選擇排序所做的筆記,可能因爲選擇排序比較基礎,所以該書將其作爲第一個排序算法。雖然算法本身不算複雜,但是通過一個簡單算法,詳細學習算法的分析過程,還是相當有意義的。本文的脈絡如下: 概念(對選擇排序做基本介紹

原创 一步步地分析排序——堆排序與優先隊列

寫在前面 本文是對《算法》第四版“優先隊列”章節做的筆記,在學習並理解了書本“優先隊列”這一節後,回過頭來看這些知識點,雖然內容多,但不算很難,然而想要徹底地把握這一節的所有內容,也並不容易。爲什麼呢,大概是由於如下幾點: 首先,爲了體

原创 Android自定義View分享——一個時鐘

寫在前面 這是筆者在學習自定義View以來,分享的第四篇不太複雜但是“長的”還算可以的View效果。之前分享過一篇圖片合併效果的自定義View,如果有興趣的可以看看: Android自定義View分享——仿微信朋友圈圖片合併效果 今天要

原创 Android自定義View分享——打鉤動畫

寫在前面 這是筆者在學習Android自定義View以來,分享的第五篇不太複雜但是“長的”還算可以的View效果。之前分享過一篇動態時鐘效果的自定義View,如果有興趣的可以看看: Android自定義View分享——一個時鐘 這是今

原创 文件存儲——安卓存儲方案之二

文件存儲 △概述 →安卓提供了相關API,讓你可以以流的方式去讀寫數據,這跟原來java裏的流操作的方式基本一致,如果你對java流操作很熟悉,其實安卓裏的文件操作沒有什麼特別新鮮的東西的。 →根據存儲位置不同,文件存儲可以分爲內部存儲(

原创 leetCode1: Two Sum

Given an array of integers, find two numbers such that they add up to a specific target number. The function twoSum