本篇文章為大家展示了Java項目中如何實現(xiàn)動態(tài)與靜態(tài)編譯,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

網(wǎng)站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、微信小程序、集團企業(yè)網(wǎng)站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了三山免費建站歡迎大家使用!
Java中的動態(tài)和靜態(tài)編譯實例詳解
首先,我們來說說動態(tài)和靜態(tài)編譯的問題。
Q: java和javascript有什么區(qū)別?
總結了一下:有以下幾點吧:
1.首先從運行環(huán)境來說java代碼是在JVM上編譯成class文件,而javascript則直接在瀏覽器上加載運行。
2.由第一點可看出,java代碼需要編譯,而javascript不需要編譯。
3.從語言性質來說,java是一種高級編程語言,對變量檢查要求嚴格,javascript只是一個簡單的解釋性的腳本語言,對變量檢查及要求很弱。
4.javascript是一種動態(tài)的語言,java則是"半動態(tài)"的。
javascript是動態(tài)的,這無須質疑。為什么java是半動態(tài)的?請看下列代碼:
public class Color{
public void changeColor(){
System.out.println("要改變的顏色是紅色");
}
}
public class Frame{
public static void main(String args[]){
Color c=new Color();
c.changeColor();
}
}
Frame類中通過直接new一個Color對象從而調(diào)用其方法,這是在編譯時確定對象,從而確定關系。我認為這是java語言靜態(tài)性的一個體現(xiàn)。而且如果編譯后的Color.class文件丟失,會報一個錯誤。
java.lang.NoClassDefFoundError........
如果通過以下代碼,我們則可以發(fā)現(xiàn)java的動態(tài)性:
public interface Color{
public void changeColor();
}
public class ColorImp implements Color{
public void changeColor(){
System.out.println("顏色改變?yōu)榧t色");
}
}
public class Frame{
public static void main(String args[])throws Exception{
System.out.println("請輸入您要輸入的類的名字");
//輸入一個類的名字
java.util.Scanner sc=new java.util.Scanner(System.in);
String s=sc.next();
//加載這個類
Class c=Class.forName(s);
//獲得這個類的實例化對象
Object obj=c.newInstance();
//強制轉型
Color color=(Color)obj;
color.changeColor();
}
}
注意Frame類,當我們編譯它的時候,只會出現(xiàn)兩個class文件--Frame.class和Color.class,然后我們運行這個程序,由于沒有編譯ColorImp,會拋出一個異常-- java.lang.ClassNotFoundException。
于是,我們打開另一個cmd進程,單獨編譯ColorImp類,再在上一個cmd對話框中輸入ColorImp,則程序會正常運行。
這樣我們可以在不停止程序運行的情況下,動態(tài)地加載一個類。我認為這體現(xiàn)出了Java的動態(tài)性。通過上面的例子,我認為java語言是一種“半動態(tài)”語言。
我們可以看出,上述例子使用了Color接口類。這里不得不提我對接口的一點小小感觸。
在使用數(shù)據(jù)庫的時候,Java語言只是定義了一個數(shù)據(jù)庫接口,然后不同的數(shù)據(jù)庫來實現(xiàn)這個借口。這些包括了(以MySQL數(shù)據(jù)庫為例)
加載數(shù)據(jù)庫驅動:
Class.forName("com.mysql.jdbc.Driver"); 建立與數(shù)據(jù)庫的鏈接:
java.sql.Connection conn = java.sql.DriverManager.getConnection(
url, user, password); 取得編譯對象和結果集對象等,這些都只是定義了接口,具體的實現(xiàn)則交給了數(shù)據(jù)庫開發(fā)商,只要實現(xiàn)了這個接口就行。這就體現(xiàn)了接口的擴展性和規(guī)范性。
上述內(nèi)容就是Java項目中如何實現(xiàn)動態(tài)與靜態(tài)編譯,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
分享題目:Java項目中如何實現(xiàn)動態(tài)與靜態(tài)編譯
當前地址:http://www.chinadenli.net/article16/pgdpgg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站營銷、全網(wǎng)營銷推廣、定制開發(fā)、網(wǎng)站改版、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)