菜鳥java
① java菜鳥學習編寫第一個java程序HelloWorld
不管學哪門語言,第一個HelloWorld程序成功運行起來的時候,代表著你的學習已經跨進了一小步。做這個java實驗之前,讀者最少要在自己的電腦上安裝好JDK(包括配置好環境變數),如果讀者還不會安裝JDK和配置環境變數可以看作者的另一遍經驗。
編寫並保存代碼。打開記事本編寫如圖1所示代碼,圖1代碼為(注意輸入代碼時輸入法一定切換到英文輸入狀態下):
public class HelloWorld {
/**
* 輸出一行字元串「Hello World!」
* @param args
*/
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
在D盤建立一個JAVA文件夾用於保存代碼,保存的時候一定要注意,如圖2所示,「保存類型(T)」要選擇「所有文件(*.*)」,「文件名(N)」一定要為 HelloWorld.java 。如圖3所示,保存後到D:JAVA下檢查下文件名是否正確,HelloWorld.java.txt,HelloWorld.txt都是錯誤的文件名。JAVA程序代碼後綴為.java,文件名常常要求保持和類名一致。JAVA語言是嚴格區分大小寫字母的,但是Windows的文件名卻不區分大小寫。
啟動命令提示符並進入到D:JAVA文件夾。如圖1所示,按下WIN+R鍵啟動運行命令框,輸入cmd命令後回車,就可以啟動命令提示符窗口。然後在命令提示符窗口中輸入下面命令進入D:JAVA目錄:
>D: <回車>
>cd JAVA <回車>
調用編譯指令javac把HelloWorld.java轉換為位元組碼文件HelloWorld.class 。如下圖所示,執行指令:
>javac HelloWorld.java <回車>
執行指令如果沒提示什麼信息就是最好的信息,這時檢查JAVA文件夾就會發現多了一個.class文件,這就是位元組碼文件了。如果提示錯誤信息就要回過頭檢查了。首先檢查JDK環境變數是否配置好,然後檢查類名和文件名是否一致,再檢查代碼是否有用正文輸入法輸入等等。
運行程序。代碼轉換為.class 文件後就可以在JVM虛擬機下運行了。在命令提示符敲入命令:
>java HelloWorld <回車>
如圖所示,回車後列印輸出:
HelloWorld!
注意,這時實際上是運行HelloWorld.class,但是命令中並不用加後綴名。
分析第三步的偽編譯原理。如圖所示,.java後綴的是源代碼,一個或者多個源代碼要經過java編譯器生產.class後綴的位元組碼。位元組碼是和平台無關的,和C語言編譯生成平台相關的機器碼是不一樣的。機器碼可以只能在對應的平台執行,位元組碼執行是平台無關的但是必須有解釋器。
分析第四部JAVA程序的執行過程。圖為.class文件被讀取後進行解釋為平台相關機器碼執行的過程。和編譯型語言(比如C)程序最大的不同是JAVA程序經過解釋器轉換為和平台相關的機器碼才可執行,可見這個過程在執行過程中動態解釋,而編譯型語言(比如C)是在執行之前就編譯成了和平台相關的機器碼了。這也是JAVA語言可以「一次(偽)編譯,到處運行」的重要原因。
② Java菜鳥問題
java中int類型是32位,long類型是64位,int類型的變數可以直接賦值給long類型的變數(因為不會超過long類型的數據范圍),因此AD正確。
x=(int)y;是顯式將long類型的變數y進行強制轉換後賦值給int類型的變數x,而java允許進行強制轉換,因此C正確。
x=y;是將高精度類型(long)的變數y的值隱式轉換(准確地說是隱式賦值轉換)為低精度類型(int)的值後,再賦給變數x。在java中,因為從高精度轉換為低精度可能會超出低精度類型能表示的數據范圍,所以這種轉換要求顯式強制轉換,即明確要求程序員自己指定確實要執行這種轉換(意思是決定是程序員做出的,一切後果由程序員自己承擔)。因此B錯。