欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的動態(tài)和靜態(tài)編譯實例詳解

 更新時間:2017年04月01日 10:59:05   投稿:lqh  
這篇文章主要介紹了Java中的動態(tài)和靜態(tài)編譯實例詳解的相關(guān)資料,需要的朋友可以參考下

Java中的動態(tài)和靜態(tài)編譯實例詳解

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

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

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

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

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

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

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

   javascript是動態(tài)的,這無須質(zhì)疑。為什么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)用其方法,這是在編譯時確定對象,從而確定關(guān)系。我認為這是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(); 
      //強制轉(zhuǎn)型 
      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ù)庫驅(qū)動:

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

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

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

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

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

  • JDK、J2EE、J2SE、J2ME四個易混淆概念區(qū)分

    JDK、J2EE、J2SE、J2ME四個易混淆概念區(qū)分

    這篇文章將向你詳細介紹JDK、J2EE、J2SE、J2ME的概念以及他們的關(guān)系區(qū)別。
    2015-09-09
  • Java HashSet集合存儲遍歷學生對象代碼實例

    Java HashSet集合存儲遍歷學生對象代碼實例

    這篇文章主要介紹了Java HashSet集合存儲遍歷學生對象代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • SpringBoot中使用Redis的完整實例

    SpringBoot中使用Redis的完整實例

    這篇文章主要給大家介紹了關(guān)于SpringBoot中使用Redis的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • java request.getParameter中文亂碼解決方法

    java request.getParameter中文亂碼解決方法

    今天跟大家分享幾個解決java Web開發(fā)中,request.getParameter()獲取URL中文參數(shù)亂碼的解決辦法,需要的朋友可以參考下
    2020-02-02
  • Java JDK動態(tài)代理(AOP)的實現(xiàn)原理與使用詳析

    Java JDK動態(tài)代理(AOP)的實現(xiàn)原理與使用詳析

    所謂代理,就是一個人或者一個機構(gòu)代表另一個人或者另一個機構(gòu)采取行動。下面這篇文章主要給大家介紹了關(guān)于Java JDK動態(tài)代理(AOP)實現(xiàn)原理與使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • 在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的方法

    在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的方法

    這篇文章主要介紹了在IntelliJ IDEA中創(chuàng)建和運行java/scala/spark程序的教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • 新手入門學習Spring Freemarker教程解析

    新手入門學習Spring Freemarker教程解析

    這篇文章主要介紹了新手入門學習Freemarker教程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • Java自動讀取指定文件夾下所有文件的方法

    Java自動讀取指定文件夾下所有文件的方法

    這篇文章主要為大家詳細介紹了Java自動讀取指定文件夾下所有文件的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • 一篇文章徹底解決IDEA輸出中文亂碼問題

    一篇文章徹底解決IDEA輸出中文亂碼問題

    IDEA輸出中文是亂碼的問題,網(wǎng)上教程很多,很復(fù)雜,作者測試了很多種辦法,現(xiàn)在將總結(jié)的方法提供給大家,下面這篇文章主要給大家介紹了關(guān)于徹底解決IDEA輸出中文亂碼問題的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • IDEA中Services欄不顯示的解決方案小結(jié)

    IDEA中Services欄不顯示的解決方案小結(jié)

    正常編譯完一個SpringBoot或者SringCloud項目之后,Services都會顯示出你有哪些服務(wù),如果沒有services欄怎么解決呢?下面小編給大家分享IDEA中Services欄不顯示的解決方案小結(jié),感興趣的朋友一起看看吧
    2021-08-08

最新評論