原创 【LeetCode】441. 排列硬幣

題目描述 你總共有 n 枚硬幣,你需要將它們擺成一個階梯形狀,第 k 行就必須正好有 k 枚硬幣。 給定一個數字 n,找出可形成完整階梯行的總行數。 n 是一個非負整數,並且在32位有符號整型的範圍內。 示例 示例一 n = 5 硬幣

原创 【LeetCode】938. 二叉搜索樹的範圍和

題目描述 給定二叉搜索樹的根結點 root,返回 L和 R(含)之間的所有結點的值的和。 二叉搜索樹保證具有唯一的值。 示例 示例1 輸入:root = [10,5,15,3,7,null,18], L = 7, R = 15 輸出:

原创 【LeetCode】804. 唯一摩爾斯密碼詞

題目描述 國際摩爾斯密碼定義一種標準編碼方式,將每個字母對應於一個由一系列點和短線組成的字符串, 比如: "a" 對應 ".-", "b" 對應 "-...", "c" 對應 "-.-.", 等等。 爲了方便,所有26個英文字母對應摩爾斯密

原创 【LeetCode】709. 轉換成小寫字母(簡單)

題目描述 實現函數 ToLowerCase(),該函數接收一個字符串參數 str,並將該字符串中的大寫字母轉換成小寫字母,之後返回新的字符串。 示例 示例 1: 輸入:“Hello” 輸出:“hello” 示例 2: 輸入:“here

原创 【LeetCode】1021. 刪除最外層的括號

題目描述 有效括號字符串爲空 ("")、"(" + A + ")" 或 A + B,其中 A 和 B 都是有效的括號字符串,+ 代表字符串的連接。例如,"","()","(())()" 和 "(()(()))" 都是有效的括號字符串。 如果

原创 【LeetCode】237. 刪除鏈表中的節點

請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。 現有一個鏈表 -- head = [4,5,1,9],它可以表示爲: 示例 1: 輸入: head = [4,5,1,9], node = 5

原创 【白盒測試】Junit測試(一)

1 JUnit導包 JUnit是Java最基礎的測試框架,主要的作用就是斷言。 使用時需要在app的build.gradle文件裏添加依賴,如下所示: testImplementation "junit:junit:4.12" 使用tes

原创 【Android組件化】app殼工程

組件化中需要一個app殼工程,這個殼工程中不處理任何業務,就只是一個空殼,由它將所需要的各個組件模塊組合起來,構成一個完整的應用。 直接new一個module 接着進入app的AndroidManifest文件將註冊A

原创 【項目FJU】構建Library模塊

【FJU項目】構建Library模塊 第一步,創建Library Module,點擊File->New->New Module 選擇Android Library,然後點擊Next 然後命名爲FJULibrary,點擊Fi

原创 強引用、軟引用、弱引用和虛引用

強引用:是指創建一個對象並把這個對象賦給一個引用變量。 軟引用:如果一個對象具有軟引用,內存空間足夠,垃圾回收器就不會回收它;如果內存空間不足了,就會回收這些對象的內存。只要垃圾回收器沒有回收它,該對象就可以被程序使用。 弱引用:弱引用

原创 一個線程能否創建多個Handler,Handler跟Looper之間的對應關係 ?

1 一個線程能否創建多個Handler,Handler跟Looper之間的對應關係 ? 一個線程能夠創建多個Handler,Handler跟Looper沒有對應關係,線程纔跟Looper有對應關係,一個線程對應着一個Looper,如下所示:

原创 【設計模式】迪米特法則

1 迪米特法則概述 迪米特法則來自於1987年美國東北大學(Northeastern University)一個名爲“Demeter”的研究項 目。迪米特法則又稱爲最少知識原則(LeastKnowledge Principle, LKP),

原创 【面試題】Handler/Runnable造成的內存泄漏

1 內存泄漏根本原因 內存泄漏的根本原因是:長生命週期的對象持有短生命週期的對象,短生命週期的對象就無法及時釋放。 2 Handler錯誤用法 private Handler handler = new Handler() {

原创 【Android面試】面試題集錦

持續更新... Handler 談談消息機制Handler作用 ?有哪些要素 ?流程是怎樣的 ? 一個線程能否創建多個Handler,Handler跟Looper之間的對應關係 ? Handler 引起的內存泄露原因以及最佳解決方案 軟引

原创 【項目FJU】自定義Toast

【項目FJU】自定義Toast 系統自帶的Toast因爲沒有界面,往往無法滿足我們自己需求,所以經常需要自己定製Toast來實現我們想要的效果。 1 效果圖 截圖如下: 2 源碼 FToast源碼,makeText有多個重載,滿足大