Java 語言是一種具有動態(tài)性的解釋型編程語言,當指定程序運行的時候, Java 虛擬機就將編譯生成的 . class 文件按照需求和一定的規(guī)則加載進內(nèi)存,并組織成為一個完整的 Java 應(yīng)用程序。
Java 語言把每個單獨的類 Class 和接口 Implements 編譯成單獨的一個 . class 文件,這些文件對于 Java 運行環(huán)境來說就是一個個可以動態(tài)加載的單元。正是因為 Java 的這種特性,我們可以在不重新編譯其它代碼的情況下,只編譯需要修改的單元,并把修改文件編譯后的 . class 文件放到 Java 的路徑當中, 等到下次該 Java 虛擬機器重新激活時,這個邏輯上的 Java 應(yīng)用程序就會因為加載了新修改的 .class 文件,自己的功能也做了更新,這就是 Java 的動態(tài)性。
下面用一個簡單的例子讓大家對 Java 的動態(tài)加載有一個基本的認識:
class TestClassA{
public void method(){
System.out.println("Loading ClassA");
}
}
public class ClassLoaderTest {
public static void main(String args[]){
TestClassA testClassA = new TestClassA();
testClassA.method();
}
}
Java 語言把每個單獨的類 Class 和接口 Implements 編譯成單獨的一個 . class 文件,這些文件對于 Java 運行環(huán)境來說就是一個個可以動態(tài)加載的單元。正是因為 Java 的這種特性,我們可以在不重新編譯其它代碼的情況下,只編譯需要修改的單元,并把修改文件編譯后的 . class 文件放到 Java 的路徑當中, 等到下次該 Java 虛擬機器重新激活時,這個邏輯上的 Java 應(yīng)用程序就會因為加載了新修改的 .class 文件,自己的功能也做了更新,這就是 Java 的動態(tài)性。
下面用一個簡單的例子讓大家對 Java 的動態(tài)加載有一個基本的認識:
class TestClassA{
public void method(){
System.out.println("Loading ClassA");
}
}
public class ClassLoaderTest {
public static void main(String args[]){
TestClassA testClassA = new TestClassA();
testClassA.method();
}
}

