Java項(xiàng)目中如何實(shí)現(xiàn)動(dòng)態(tài)與靜態(tài)編譯

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

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了三山免費(fèi)建站歡迎大家使用!

Java中的動(dòng)態(tài)和靜態(tài)編譯實(shí)例詳解

首先,我們來說說動(dòng)態(tài)和靜態(tài)編譯的問題。

   Q: java和javascript有什么區(qū)別?

   總結(jié)了一下:有以下幾點(diǎn)吧:

      1.首先從運(yùn)行環(huán)境來說java代碼是在JVM上編譯成class文件,而javascript則直接在瀏覽器上加載運(yùn)行。

      2.由第一點(diǎn)可看出,java代碼需要編譯,而javascript不需要編譯。

      3.從語言性質(zhì)來說,java是一種高級(jí)編程語言,對(duì)變量檢查要求嚴(yán)格,javascript只是一個(gè)簡單的解釋性的腳本語言,對(duì)變量檢查及要求很弱。

      4.javascript是一種動(dòng)態(tài)的語言,java則是"半動(dòng)態(tài)"的。

   javascript是動(dòng)態(tài)的,這無須質(zhì)疑。為什么java是半動(dòng)態(tài)的?請(qǐng)看下列代碼:

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一個(gè)Color對(duì)象從而調(diào)用其方法,這是在編譯時(shí)確定對(duì)象,從而確定關(guān)系。我認(rèn)為這是java語言靜態(tài)性的一個(gè)體現(xiàn)。而且如果編譯后的Color.class文件丟失,會(huì)報(bào)一個(gè)錯(cuò)誤。

   java.lang.NoClassDefFoundError........

  如果通過以下代碼,我們則可以發(fā)現(xiàn)java的動(dòng)態(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("請(qǐng)輸入您要輸入的類的名字"); 
      //輸入一個(gè)類的名字 
      java.util.Scanner sc=new java.util.Scanner(System.in);  
      String s=sc.next(); 
      //加載這個(gè)類 
      Class c=Class.forName(s); 
      //獲得這個(gè)類的實(shí)例化對(duì)象 
      Object obj=c.newInstance(); 
      //強(qiáng)制轉(zhuǎn)型 
      Color color=(Color)obj; 
      color.changeColor(); 
    } 
 
} 

    注意Frame類,當(dāng)我們編譯它的時(shí)候,只會(huì)出現(xiàn)兩個(gè)class文件--Frame.class和Color.class,然后我們運(yùn)行這個(gè)程序,由于沒有編譯ColorImp,會(huì)拋出一個(gè)異常-- java.lang.ClassNotFoundException。

     于是,我們打開另一個(gè)cmd進(jìn)程,單獨(dú)編譯ColorImp類,再在上一個(gè)cmd對(duì)話框中輸入ColorImp,則程序會(huì)正常運(yùn)行。

     這樣我們可以在不停止程序運(yùn)行的情況下,動(dòng)態(tài)地加載一個(gè)類。我認(rèn)為這體現(xiàn)出了Java的動(dòng)態(tài)性。通過上面的例子,我認(rèn)為java語言是一種“半動(dòng)態(tài)”語言。

     我們可以看出,上述例子使用了Color接口類。這里不得不提我對(duì)接口的一點(diǎn)小小感觸。

     在使用數(shù)據(jù)庫的時(shí)候,Java語言只是定義了一個(gè)數(shù)據(jù)庫接口,然后不同的數(shù)據(jù)庫來實(shí)現(xiàn)這個(gè)借口。這些包括了(以MySQL數(shù)據(jù)庫為例)
    加載數(shù)據(jù)庫驅(qū)動(dòng):

Class.forName("com.mysql.jdbc.Driver"); 

 建立與數(shù)據(jù)庫的鏈接:

java.sql.Connection conn = java.sql.DriverManager.getConnection( 
          url, user, password); 

取得編譯對(duì)象和結(jié)果集對(duì)象等,這些都只是定義了接口,具體的實(shí)現(xiàn)則交給了數(shù)據(jù)庫開發(fā)商,只要實(shí)現(xiàn)了這個(gè)接口就行。這就體現(xiàn)了接口的擴(kuò)展性和規(guī)范性。  

上述內(nèi)容就是Java項(xiàng)目中如何實(shí)現(xiàn)動(dòng)態(tài)與靜態(tài)編譯,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享題目:Java項(xiàng)目中如何實(shí)現(xiàn)動(dòng)態(tài)與靜態(tài)編譯
當(dāng)前地址:http://muchs.cn/article16/pgdpgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、網(wǎng)站營銷、全網(wǎng)營銷推廣定制開發(fā)、網(wǎng)站改版靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)