標籤:
1、設定了環境變數之後,在命令列中輸入“javac”命令,是可以啟動並執行,在不進入java檔案路徑的前提下,執行javac ***.java檔案,報錯
C:\>javac Test.java
javac: 找不到檔案: Test.java
用法: javac <options> <source files>
-help 用於列出可能的選項
有點繞暈了,為什麼設定好了環境變數,在任意的路徑下執行javac編譯某個java檔案,卻不行呢?
其實是自己誤解了,path環境變數的作用是設定作業系統去尋找和執行應用程式的路徑,也就是說,如果作業系統在目前的目錄下沒有找到我們想要執行的程式和命令時,作業系統就會按照path環境變數指定的目錄依次去尋找以最先找到的為準。它是為了找到javac.exe程式,而不是你所寫的java源檔案,必須指定某個路徑下的java源檔案,系統才能將其找到並運行。
2、一個.java源檔案中如果包含多個類,則編譯之後,會產生多個以類名為檔案名稱的.class檔案
3、在編譯過程中一定要注意,所編譯的副檔名必須是.java
4、現有一個Test.java檔案,內容如下
public class Test1
{
}
class Test2
{
}
經編譯之後,報錯如下
D:\example>javac Test.java
Test.java:1: 錯誤: 類Test1是公用的, 應在名為 Test1.java 的檔案中聲明
public class Test1
^
1 個錯誤
這個錯誤,說明了如果某個類的前面加上了public關鍵字,那麼這個類所在的源檔案名稱必須是與這個類名一致。同理可得,一個源檔案中是不可能存在兩個public類
5、如下一個例子
public class Test
{
public static void main(String args[])
{
system.out.print("Hello!");
System.out.println("Hello,");
System.out.println("Welcome to java world!");
}
}
經編譯之後報錯
D:\example>javac Test.java
Test.java:5: 錯誤: 程式包system不存在
system.out.print("Hello!");
^
因為java是嚴格區分大小寫,所以對小寫system無法識別
6、修改完後,執行5中的代碼,得到
D:\example>java Test
Hello!Hello,
Welcome to java world!
print和println都能輸出,但是print的輸出不換行,println會自動換行
println=print+\n
7、繼6後,將路徑切到D盤符中,執行java Test
D:\example>cd ..
D:\>java Test
錯誤: 找不到或無法載入主類 Test
D:\>set classpath=d:\example
D:\>java Test
Hello!Hello,
Welcome to java world!
D:\>set classpath=d:\example
D:\>java Test
Hello!Hello,
Welcome to java world!
D:\>cd example
D:\example>set classpath=c
D:\example>java Test
錯誤: 找不到或無法載入主類 Test
D:\example>set classpath=
D:\example>java Test
Hello!Hello,
Welcome to java world!
經過這些例子,我們可以知道,java虛擬機器尋找類時,不是在目前的目錄下尋找,而是在classpath指定目錄中尋找。當取消了classpath環境變數(set classpath=),則在目前的目錄下尋找。設定classpath時,注意等號兩邊不能有空格,所輸入的路徑名中也不要帶空格,還有中文
8、Java-記憶體回收行程
java類的執行個體對象和數組所需的儲存空間是在堆上分配的,解釋其具體承擔為類執行個體分配空間的工作。解譯器在為一個執行個體對象分配完儲存空間後,便開始記錄對該執行個體對象所佔用的記憶體地區的使用。一旦對象使用完畢,便將其會收到垃圾箱中
9、反編譯工具-jad
Java基礎-學習筆記(一)