1. 程式人生 > >黑馬程式設計師_Java學習日記2_面向物件總結1

黑馬程式設計師_Java學習日記2_面向物件總結1

----------------------android培訓java培訓、期待與您交流! ---------------------

1.關於main函式的講解
主函式,是一個特殊的函式,作為程式的入口,可以被jvm呼叫。
主函式的定義:
public:代表該函式的許可權是最大的
static:代表著主函式隨著類的載入就已經存在了。
void:主函式沒有具體的返回值。
main:不是關鍵字,但是,是一個特殊的單詞,可以被jvm識別。

(String[] args):函式的引數,引數型別是一個數組,該陣列中的元素是字串。字串型別的陣列。
主函式是固定格式的:jvm識別。
arguments(引數) == args

jvm在呼叫主函式時,傳入的是new String[0];
----------------------實驗-------------------------

class MainDemo
{
public static void main(String[] args)
{
String[] arr = {"hah","heihei","xixi"};

MainTest.main(arr);
}
}

class MainTest
{
public static void main(String[] args)
{
for(int x=0; x<args.length;x++)
System.out.println(args[x]);
}
}
----------------------實驗-------------------------
javac MainDemo.java
java MainDemo hah hei xix //後面的引數傳入args陣列中,args的長度變為3,;如果後面沒有引數,則args長度為0

2.Java設計模式之單例模式

單例設計模式,解決一個類在記憶體只存在一個物件。
想要保證物件唯一,需要達到以下3個要求。
1.為了避免其他程式過多建立該類物件。先禁止其他程式建立該類物件。
2.還為了讓其他程式可以訪問到該類物件,只好在本類中自定義一個物件。
3.為了方便其他程式對自定義物件的訪問,可以對外提供一些訪問方式。

這3步用程式碼實現,如下。
1.將建構函式私有化
2.在類中建立一個本類物件
3.提供一個方法可以獲取到該物件。

單例模式有兩種實現方法,分別是餓漢式和懶漢式。

餓漢式:

class Single()
{
	private Single(){}	
	private static Single s = new Single();
	public static Single getInstance()
	{
		return s;
	}
}

懶漢式(去掉程式中的//,即為實際使用中優化過的方法):

class Single
{
	private static Single s = null;
	private Single(){}
	//同步鎖synchronized,會降低程式的效率;以下是最終解決方案。但還是會有點低效
	public static Single getInstance()
	{
//		if(null==s)
//		{
//			synchronized(Single.class)
//			{
				if(null==s)
					s = new Single();
//			}
//		}
		return s;
	}
}
最後,關於單例模式的幾點說明。

1.如果要用單例模式,對於事物該怎麼描述,還怎麼描述。當需要將該事物的物件保證在記憶體中唯一時,就將“單例模式”需要的3個條件加上即可。

2.實際開發時,多用餓漢式,安全,簡潔!

3.懶漢式的延遲載入,Single類進記憶體,物件還沒有存在,只有呼叫了getInstance方法時,才建立物件,也叫物件的延時載入。

4.單例設計模式,定義單例,建議使用餓漢式!懶漢式面試時考得多,還要涉及多執行緒和鎖機制。

-----------------------android培訓java培訓、期待與您交流! ----------------------