原创 Java基本功之i++、i--、++i、--i
今天敲代碼的時候被基礎給擊倒了(難受 while (i < j) { res = height[j] > height[i] ? Math.max(res, he
原创 GitHub源碼學習筆記之TableView(一)
寫在前面: 最近發現一個很酷的開源項目,正好自己也打算寫一個TableView,但是。。。寫代碼哪有抄代碼爽!所以我決定來學習一下大佬的代碼(先貼出來Github地址---->TableView) 學習第一步,先看基本架構圖: 按照圖上
原创 LeetCode刷題記錄 Z字型變換
下面是我在LeetCode中看到的題目,然後自己寫的解決方法 /** * Z字型變化 * 原字符串“LEETCODEISHIRING” * after-> * L C I
原创 算法學習---貪心算法
想通過這篇博客來分享一下學習貪心算法和動態規劃的過程 首先什麼是貪心算法? 百度百科給出的釋義是:貪心算法(又稱貪婪算法)是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的是在某種意義上的局
原创 Android Handler知識學習記錄(一)Handler的postDelayed和postAtTime
//Handler中的源碼 public final boolean postDelayed(Runnable r, long delayMillis) { return sendMessageD
原创 Android環境下OpenGL ES的學習
寫在前面:我也是OpenGL的初學者,本篇是作爲一個學習筆記來寫的。 首先學習一下關於OpenGL中的重要概念:矩陣 你做了一個物體想放在空間某一個座標上,需要一個World矩陣吧?然後你需要一個攝像機來拍攝這個物體,讓這個物體可見,對吧
原创 Android View.getLocationOnScreen的作用
Android View.getLocationOnScreen 記錄一下getLocationOnScreen方法的作用 /** * <p>Computes the coordinates of this v
原创 java中Matcher類的find()和matches()的區別
String str = "m222"; Pattern p = Pattern.compile("[0-9]+");//0至9,出現一次或多次 Matcher m = p.matcher
原创 LeetCode解題記錄之隊列最大值
題目: 請定義一個隊列並實現函數 max_value 得到隊列裏的最大值,要求函數max_value、push_back 和 pop_front 的均攤時間複雜度都是O(1)。 若隊列爲空,pop_front 和 max_value 需要
原创 Android之AlertController的源碼學習記錄
這裏節選了AlertController的源碼,它是AlertDialog.Builder中非常重要的工具類,主要作用是根據Builder中配置好的參數來生成對應的Dialog。 我節選下面這段代碼的原因就是因爲我們通過AlertDia
原创 Android中的Gradle知識學習記錄(一)
目前Android Studio創建項目的時候都是依賴於Gradle的,每個項目都有兩個build.gradle,一個是app.gradle另一個是項目gradle。 項目gradle就是用來配置整個項目的基礎資源引用,包括gradle版
原创 Android原生Dialog的使用
原文鏈接 /** * 兩個按鈕的 dialog */ private void showTwo() { builder = new AlertDialog.Builder(this).se
原创 在Android開發中不要再用new Thread的方式開啓線程啦
正如標題所言,如果直接使用new Thread的方法創建一個線程,很大概率就會導致內存泄漏。因爲一個內部類始終會持有外部類的引用,如果這個內部類恰好是一個Thread對象,它拿着外部類的引用跑在另一個線程中,這就很容易導致外部類在應該釋放
原创 java中volatile關鍵字的作用和原理
在之前的一篇博客中挖過坑,今天來填一下。之前挖坑的博客 在那篇博客中,我提到了volatile關鍵字,它的作用比較和synchronized類似,但又區別很大。。。要理解它就得要從java中的內存管理講起了。 在java虛擬機的內存模型中
原创 Dialog的彈出位置控制
Dialog一般出現都是屏幕中心,但有的時候我們希望它能在屏幕左側,或者右側亦或者是屏幕頂部。這時候我們就需要用的Dialog.getWindow().getAttributes()方法啦 dialog = new Dialog(get