本文是Java最最最最最基礎的知識點的,稍微深入的討論!
我覺得初學Java的還是值得一看的
**
以下進入主題
**
YOU:你這有啥意義?大家不在乎你幾歲,愛喫啥!
DOG:好吧,就讓狗狗實力分析一波這段代碼。
YOU:請開始你的表演!!!
//package 包名(com.demo); // 這東西到底有什麼用?
//class 類名(Dog) { // class類在運行時起到什麼作用?
// int age; // 它憑啥不能實例化,只需要聲明?
// String hobby; // 那hobby能實例化嗎?
//}
public class JavaBase {
// 使用JAVA這麼久了,你知道main方法的參數是什麼嗎?不寫或者寫其他的行麼?
public static void main(String[] args) {
Dog dog = new Dog(); //爲什麼必須要實例化?而基本類型不能實例化?
dog.age = 3;
dog.hobby = "喫骨頭!";
System.out.println("實例化Dog對象並賦值!狗狗今年"+dog.age+"歲啦,最大的愛好是"+dog.hobby);
}
}
DOG:其實,這些疑問是我的小女票問的,她初學JAVA,遇到的問題我竟然都沒深究過。(想當初初學JAVA,你愛啥啥,抄起鍵盤就是一頓擼。)
當時的話,我是想想竭力解釋一番,維護下我身爲高貴種族程序猿的尊嚴。(那時真的不知道啊,當時思考的淺,並沒在意。所有人告訴我的就是就是這麼寫!)
但越解釋越難受,各種坑填不上,問的我一時語塞。(最終被崩潰的女票狠狠鄙視了一番—你特麼是個假程序猿!!!)
(´╥ω╥`)無語凝噎~~~(我是誰?JAVA是什麼?我一定是個假的JAVA程序猿。)YOU:你在這虐單身狗呢?老子要撤了~~~
- DOG:英雄留步啊!小弟學識才淺,還請賜教!
.
…
…..
哇,走啦?這麼不給面子啊!那好吧,自己挖的坑,說啥也得填上!下面做出解釋!
1、首先說包名的作用。
Java開發過程中會產生大量的類文件,此時包機制就起到了管理組織的作用。不明白就可以想想摘蘋果。蘋果比作類,那我想要某一個個蘋果,我需要找到對應的枝幹。
這裏的枝幹就是包的作用。2、class類作用。
在Java中,當我們編寫一個類,經由JVM編譯完成後,在生成的.class文件,就會產生一個Class對象,用於表示這個類的類型信息。
3、基本數據類型不能實例化?
JVM已經給它們一家人賦予了初始值,不勞大家費心了。所以基本數據類型不需要實例化,但可以給他重新賦予初始值。所以String是可以滴。
4、JAVA main(String[] args)方法,爲啥要這麼寫,這個參數是啥?不寫行不?
首先Java Application 是必須有main方法的。這個main(String[] args)函數JVM已經壟斷了。就像你的名字,少寫一個字還是你嗎?
雖然main函數不是JVM的名字,但它是入口函數。如果你不寫參數,是運行不了滴。不信可以試試。
那args可以傳參數嗎?答案是肯定的。不信你去百度!至於如何給args賦值,有兩種方式。一種是CMD命令執行,直接加上參數;二是在IDE(我用的eclipse)
中run as–>run Confications…–>找到 program arguments,輸入你想傳入的值就好了。(單元單詞沒拼寫錯)5、對象爲什麼要實例化?
很明顯,大家都知道對象要實例化,那什麼時候需要實例化?
書上說類的初始化時機爲“initialize on first active use”,即“在首次主動使用時初始化”。(對象就叫實例化,好吧,大家都這麼叫,你不要搞事情)
書上說對象實例化有兩種方法,顯示對象創建和隱式對象創建;顯示就是new,太常見了,不羅嗦了。
爲什麼要實例化?創建對象的目的就是操作對象。而實例化過程就是JVM爲這個對象分配內存空間。這樣這個對象纔有存在的意義。6、JVM初始化順序
大概就是這麼個優先級的順序:靜態屬性=靜態代碼塊> 非靜態屬性 = 構造塊> 構造方法