黑馬程式設計師_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培訓、期待與您交流! ----------------------