原创 隱藏某一控件結果多個控件隱藏的原因

從事安卓開發,往往需要切換頁面時隱藏某一控件,但有時一個控件設置隱藏會導致其他控件也隱藏。很大可能就是使用了相對佈局Relativelayout。      相對佈局所有控件均根據某一現有控件的位置來設置其他控件的位置,比如      

原创 LeetCode242 Valid Anagram

題目 Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = “anagram”, t

原创 JVM學習筆記——Java內存區域與內存溢出異常

運行時數據區域 其中,其中Method Area 和 Heap 是線程共享的 ,VM Stack,Native Method Stack 和Program Counter Register 是非線程共享的。JVM初始運行的

原创 JVM學習筆記——java內存模型與線程(2)

Java與線程 併發不一定要依賴多線程(如PHP中很常見的多進程併發),但是在Java裏面談論併發,大多數都與線程脫不開關係。 線程的實現 線程是比進程更輕量級的調度執行單位,線程的引入,可以把一個進程的資源分配和執行調度分開,各

原创 LeetCode409 Longest Palindrome

題目 Given a string which consists of lowercase or uppercase letters, find the length of the longest palindromes that

原创 JVM學習筆記——線程安全與鎖優化

線程安全 定義:當多個線程訪問一個對象時,如果不用考慮這些線程在運行時環境下的調度和交替執行,也不需要進行額外的同步,或者在調用方進行任何其他的協調操作,調用這個對象的行爲都可以獲得正確的結果,那這個對象是線程安全的。 java語

原创 JVM學習筆記——java內存模型與線程(1)

概述 多任務處理出現的重要原因是計算機的運算速度與存儲及通信子系統的速度差距太大,大量的時間花費在磁盤I/O,數據庫訪問或者數據庫訪問上。除了充分利用計算機處理器的能力外,一個服務端同時對多個客戶端提供服務則是另一個更具體的併發應

原创 Android拍照或者選取本地圖片

總體流程 從selectPhotoActivity中啓動圖冊或者相機,再根據獲取的uri進行裁剪,返回uri,再對這個uri執行一系列操縱。 從相冊選取圖片 private void pickPhoto() {

原创 在viewPager裏使用高德地圖

懶加載 因爲viewpager的預加載機制,使得聯網應用會多出內存以及網絡的使用量,同時,在viewpager下使用高德地圖,也會因此出現各種莫名其妙的問題,因此,需要使用懶加載的手段。 實現懶加載,只需繼承fragment類然

原创 JVM學習筆記——垃圾收集器與內存分配策略(1)

概述 上一篇文章介紹了java運行時內存的各個區域,其中虛擬機棧,程序計數器,本地方法棧三個區域隨線程而生,隨線程而滅。棧中的棧幀隨着方法的進入和退出有條不紊的執行着出棧與入棧的操作,每一個棧幀分配多少內存基本是類結構確定下來就已

原创 JVM學習筆記——垃圾收集器與內存分配策略(2)

垃圾收集器 java虛擬機規範中並沒有對垃圾收集器如何實現有任何規定,因此,不同的廠商,不同版本的虛擬機所提供的垃圾收集器可能會有很大差別,這裏只討論基於JDK1.7之後的HotSpot虛擬機。這個虛擬機包括的收集器如下圖所示:

原创 LeetCode202 Happy Number

題目 Write an algorithm to determine if a number is “happy”. A happy number is a number defined by the following proc

原创 LeetCode171 Excel Sheet Column Number

題目 Given a column title as appear in an Excel sheet, return its corresponding column number. For example: A -> 1 B

原创 分配問題與匈牙利算法

分配問題與匈牙利算法 例1 假如你是個玩具工廠的銷售經理,你現在有三個銷售人員要去不同城市見買家。你的銷售人員分別在在奧斯丁,得克薩斯州;波士頓、馬里蘭州;和芝加哥,伊利諾伊州。你想讓他們飛往其他三個城市:丹佛,埃德蒙頓,法戈。下

原创 LeetCode13 Roman to Integer

題目 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 解題思路