Java編程基礎(2)

1、main方法

(1)main方法被聲明爲public,這樣Java虛擬機中的任何對象都能夠調用它,同時它還被聲明爲static,這意味着main方法屬於這個類,並不與該類的某個特定對象相關聯

2、static方法

(1)這裏提到了static方法,就要說一下,在一個方法前聲明static的作用

  • 用static修飾後,它就會在內存中單獨存放在一塊內存中,跟變量、對象不是在一塊內存中,當程序運行的時候,直接加載就好,無需new一個對象來調用,直接通過“類名.方法名”就可以調用
  • 被static修飾的成員變量和成員方法獨立於該類的任何對象,也就是說它不依賴於特定類的實例,被類的所有實例共享
  • 靜態方法不能直接訪問非靜態成員
  • 詳細資料可以參考:Java中static作用詳解

(2)一個類中一旦出現一個靜態字段(也就是添加static),那麼無論你創建多少個類對象,甚至一個對象也不創建,這個靜態字段也都是存在的(且只有一個副本),不會隨着你的對象變化而變化,它是獨立,初始化的時候,也是初始化在對象創建之前,舉個例子:

public class xyz {
	static double min=100000;
	
	public static double solution(int N) {   //一個靜態方法
		for(int x = 1;x<N;x++){
			for(int y=1;y<N/x;y++) {
				double z =  Math.ceil(N/(x*y));
				double temp = x*y*z;
				if(temp<min)
					min = temp;
			}
		}
		return min*1000;
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		System.out.println(solution(9));  //這裏我調用上面的方法,卻沒有建立類對象,就是因爲上面的方法是靜態static方法
	}

}

(3)方法的名字和它的參數列表一起組成了方法的簽名(signature,獨一無二),這個說法很有道理

3、封裝類

每一種基本數據類型(一共八種)都有與其對應的對象類型,一般稱爲包裝器(wrapper)類,或者是封裝類,類Integer就是int的包裝器類。

4、註釋

(1)單行註釋——//,編譯器會忽視出現在“//”之後的文字

(2)多行註釋——/*和*/之間的文字

(3)文檔註釋——/**和*/之間的文字,這個一般出現在代碼最上面,用於標註這個文檔代碼的功能和注意事項還有作者,創作日期等等

5、控制流

說起來非常簡單,就是決定程序轉給你待執行語句及其執行順序的機制,比如while循環、for循環、if-else等等

6、創建對象

(1)通過包含有new關鍵字的表達式來創建的,從類的定義中創建對象也被稱爲實例化(instantiation),所以對象通常也被稱爲實例(instance)

(2)新建的對象將被分配到一個稱作堆(heap)的系統內存區域中(這個可以參考:深入理解java的運行時區

(3)所有對象都是通過對象引用(object reference)來訪問的,任何看起來存有某個對象的變量實際上保存的都是該對象的引用,這種變量類型成爲引用類型,可以參考下面的代碼:

int[]  reference = new int[3];

上面的代碼中,reference就對象引用,而對象則是一個int數組,這個過程其實分爲兩步,第一步:new int[3]——名爲創建了一個對象,第二步:int[] reference = ——這一步名爲對象賦值給對象引用(實際就是將地址賦值給了reference)

7、垃圾回收器

在使用new創建一個對象之後,如何在我們不需要它的時候,去除這個對象呢?那就不再引用它,這就用到了垃圾回收器(Java虛擬機的一部分),未被引用的對象會自動地被垃圾回收器回收掉,垃圾回收器在後臺運行,並跟蹤着各個對象的引用,當一個對象不再被引用的時候,攔擊回收器就可以將它從內存分配堆中移除,但是這並不是瞬時的,可能會出現延遲(比如隔一段時間,批量清理垃圾對象)

8、爲什麼要有接口

(1)這是一個初學者問題,可以說接口是爲了定義某種標準,有時候我們只是想聲明某個對象必須支持的某些方法,而不會爲這些方法提供實現,只要這些方法的行爲符合特定的標準,它們的實現細節無關緊要,這些聲明定義了一個類型,任何實現這些方法的類都可以被認爲具有這種類型,而不管這些方法到底是如何實現的。

(2)首先,接口與類相似,但是它的方法都是空的聲明,實現接口的類必須支持實現方法(implements,也就是說要把這些空聲明變爲實際的方法)

(3)一個類可以實現多個接口

9、修飾符:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章