原创 java學習筆記4——不可變類

class Name{   private String firstName;  private String lastName;  public Name(){}  public Name(String firstName , Str

原创 java學習筆記1——面向對象的一些性質

   statics 是一個特殊關鍵字,可用於修飾方法、Field等成員。Filed這個東西又可以翻譯成成員變量。static修飾的成員表面它屬於這個類本身,兒不屬於該類的丹哥實例,因爲通常把static修飾的Filed和方法也稱爲類Fi

原创 java學習筆記3——重載

構造器的重載,同一個類中具有多個構造器,多個構造器的形參列表不同,被稱爲構造器重載。可以在一個構造器裏直接調用另一個構造器。 例: public class Apple{ public String name; public Strin

原创 Java方法參數太多怎麼辦—Part4—重載

在Java編程中,如果一個方法帶太多的參數被會給調用者帶來很多困擾。調用者必須考慮是否按照正確的參數順序給傳入合適的值。在前面的文章中,先後探討了通過自定義類型、參數對象、Builder模式來解決這個問題。還有一種方法,也是今天探討的

原创 Java方法參數太多怎麼辦—Part6—方法返回值

在前面文章中,討論瞭如何直接減少構造函數和方法的參數,比如通過自定義類型、引入參數對象、Builder模式、重載和方法命名來減少參數。你可能會奇怪爲什麼會討論方法返回值。然而,實際開發中開發者會使用參數作爲返回值,從而增加了額外的參數

原创 Java方法參數太多怎麼辦—Part 2—引入參數對象

在前一篇文章中,我關注了一些關於構造函數或方法參數過多的問題。文中我討論了用自定義類型代替基本、內置類型以獲得良好的可讀性和安全性。然而這並不能減少參數的數量。這次,我將用參數對象方法給構造函數和方法的參數“瘦身”。 通常你會看到

原创 Java方法參數太多怎麼辦—Part 1—自定義類型

我認爲構造函數和方法過長的傳遞參數列表是一種紅色警告(”red flag“)。在開發過程中,從邏輯的和功能的角度來看並非錯誤,但是通常意味着現在或者將來犯錯誤的可能性更高。通過閱讀一系列文章,我發現一些解決參數列表過長的辦法,或者

原创 Java方法參數太多怎麼辦—Part5—方法命名

在前面文章(“Java方法參數太多怎麼辦”系列之四)中,討論瞭如何使用方法重載減少方法和構造函數的參數,指出了這種方式的一些不足並建議使用多個不同的函數名代替重載。本文將深入討論如何通過函數命名解決參數過多的問題,並且可以彌補方法重載

原创 Git/Github的使用並與Eclipse整合

Git簡介       Git是一個免費的、分佈式的版本控制工具,或是一個強調了速度快的源代碼管理工具。每一個Git的工作目錄都是一個完全獨立的代碼庫,並擁有完整的歷史記錄和版本追蹤能力,不依賴於網絡和中心服務器。        G

原创 java學習筆記18——內部類

  外部類的上一級程序單元是包,所以它只有2個作用域:同一個包內和任何位置。因此只需要2種訪問權限:包訪問權限和公開訪問權限,正好對應省略訪問控制符和public訪問控制符。省略訪問控制符是包訪問權限,即同一包中的其他類可以訪問省略訪問

原创 Intent匹配規則以及解析框架深入分析

關於Intent以及IntentFilter的基本知識,大家可以參閱如下資料,                       SDK中對Intent與IntentFilter的介紹  ---- 英文                  

原创 Java方法參數太多怎麼辦—Part3—Builder模式

在前兩篇文章中,我分別使用了自定義類型和參數對象方法來減少構造器或方法調用傳入的參數數量。本文關注的是Builder模式。我認爲它不僅能夠幫助構造函數“瘦身”,甚至可以對非構造函數也能發揮同樣的作用。 在Effective J

原创 Android中Context詳解 ---- 你所不知道的Context

大家好,  今天給大家介紹下我們在應用開發中最熟悉而陌生的朋友-----Context類 ,說它熟悉,是應爲我們在開發中    時刻的在與它打交道,例如:Service、BroadcastReceiver、Activity等都會利用到

原创 java學習筆記25——HashMap

前幾天電話面試了阿里,問到了HashMap源碼,之前粗略看過,有些地方沒有答對,今天才重新看了源碼。列一些關鍵方法以供後續面試。 /** * Constructs an empty <tt>HashMap</tt> wi

原创 java學習筆記24——String類不可變性

如果我們需要修改一個String對象,最好使用StringBuffer或StringBuilder。否則,會在每次創建一個新的String對象時消耗垃圾回收器大量時間。 例 How to read file content into