原创 Kotlin 中的判空操作 Elvis 操作符使用踩坑

Kotlin 作爲一門有着所謂空安全特性的(年輕)編程語言,有時出於實際業務場景需要還是會把變量聲明成可空(Null-able)的,好在由於空安全特性,編譯器會強制我們對可空變量進行判空檢查(除非你使用了非空斷言 !! 強制讓編譯器閉嘴)。

原创 邏輯之美(7)_快速排序 正文 總結

快速排序的高效性依賴於一定的運氣成分 ↑這麼講其實不嚴謹。準確來講,快速排序的高效性依賴於數學概率,且這裏的數學概率可以保證——你的電腦在使用快速排序(正確實現的)給一組數據排序時,比插入排序或選擇排序要低效的概率比你的電腦此時被閃電擊

原创 邏輯之美(5)_優先隊列、二叉堆和堆排序 開篇 正文 尾巴

二叉堆其實就是一棵堆有序的二叉樹 開篇 本篇文章主要講什麼 此文是排序算法系列文章的倒數第三篇,因此本文的主要意圖還是講排序算法,這次我們一起聊聊堆排序。 在正式開始之前,我們先要花些篇幅聊兩種很重要的基礎數據結構——優先隊列和二叉堆。

原创 邏輯之美(6)_歸併排序 開篇 正文 尾巴

開篇 上篇聊到的堆排序僅用線性對數級別的時間複雜度 O(n log n) 和常數級別的額外輔助空間即可將一個數組排序,已然十分高效。這篇我們來聊一種同樣高效但要更古老的排序算法——歸併排序。 正文 何爲歸併排序 此算法於 1945 年由計算

原创 Android 的揭露(CircularReveal)動畫 正文

完整叫法應該是圓形揭露動畫,下文簡稱揭露動畫,因爲 Android 系統中只提供了這一種圓形的(Circular)揭露動畫! 所謂揭露動畫,就是一種用於 View 之間,甚至界面之間的特殊過渡動畫效果。 AndroidPlatform 的

原创 Kotlin 委託模式用於 Android 開發

委託模式被證明是一種很好的替代繼承的方式,Kotlin 在語言層面對委託模式提供了非常優雅的支持(語法糖)。 先給大家看看我用 Kotlin 的屬性委託語法糖在 Android 工程裏面做的一件有用工作——SharedPreferences

原创 安卓畫筆setShadowLayer與SetMaskFilter繪製圖片無效

安卓自定義 View 踩坑筆記,特作文記錄 安卓 Paint 類用於自定義 View 時↑這兩個方法能用來幹嘛我就不細說了,大家應該都瞭解,總結而言我們可以用這兩個方法給要繪製的東西添加陰影和發光效果。發光效果我們這裏只討論內外發光。

原创 邏輯之美(4)_希爾排序 開篇 正文 結尾

希爾排序是一種改進後的,更高效的插入排序 開篇 本文最好結合上篇插入排序閱讀,因爲希爾排序其實是插入排序改進而來的一種更高效的插入排序。此排序算法由 Donald Shell 於 1959 年提出,故得此名。 希爾排序是比普通插入排序要

原创 邏輯之美(8)_排序總結

排序算法相當重要,它和查找算法一起作爲整個算法體系的基石 對用例來說,處理一組有序數據總要比處理一組無序數據容易得多。 比如要在數組中查找特定元素,如果數組是整體有序的,查找會非常輕鬆(經典的二分查找算法就要求數據集的是整體有序的,其運

原创 Java 位運算超全面總結(以及Koltin)

1.原碼、反碼、補碼 關於原碼、反碼、補碼的相關知識作者不打算在這裏長篇大論,相關知識已有別的大佬總結很好了,還請老鐵自行 Google,不過有篇知乎回答是作者學編程以來見過對相關知識最通俗易懂,生動簡潔的解釋:對原碼、反碼、補碼最通俗易懂

原创 關於閱讀的一些微小經驗

週末無事,在家聽了場張佳瑋同學的知乎Live——關於閱讀的一些微小經驗,留一波筆記。 1,讀書要專注,不要邊刷朋友圈邊讀書,投入閱讀的時間要利用充分,具體多少時間用來閱讀了要精確計算,別搞形式欺騙自己 2,世界上沒人任何一本書是非讀不可的(

原创 AndroidStudio .9圖片編輯問題

在實際安卓項目中我們一般都會用到 .9.png 圖片來實現一些 UI 效果,筆者主要在這裏簡單記錄下 AS 自帶 .9 圖片編輯工具使用上的一個小坑。 當下我的項目裏要用到一張這樣的 .9.png 圖片: 看到這張圖片不要困惑,並不是你

原创 layui.layer 彈出層背景透明,前景無陰影實現方案

先上具體實現方法。 首先,在 css 裏給 layer 彈出層寫個自定義 skin (這點不明白的同學請出門左轉 layui 官網文檔): .myskin{ background-color: transparent;/*背

原创 AndroidStudio 性能優化指南(Windows 篇)

注意:文中提及所有針對 AndroidStudio 的性能優化建議均實踐於 Windows 平臺,Mac 和 Linux 用戶僅供參考(下面 AndroidStudio 簡稱 AS,手打英文很累的>︿<)! 首先,關於 AS 以及 AS

原创 AndroidStudio 3.0 找不到 module下所依賴 jar 文件中方法?

Android 項目從 AS 2.3.x 遷移至 AS 3.0 踩坑記錄。 昨天把手裏面一個基於 AS 2.3.3 開發的大項目遷移至 AS 3.0.1 的時候,還專門參考了下別的大佬寫的踩坑記錄博文,比如 這篇。新版本的的 AS 3.