最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

首先,我們來(lái)說(shuō)說(shuō)動(dòng)態(tài)和靜態(tài)編譯的問(wèn)題。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

  • Springcloud微服務(wù)架構(gòu)基礎(chǔ)知識(shí)解析

    Springcloud微服務(wù)架構(gòu)基礎(chǔ)知識(shí)解析

    這篇文章主要介紹了Springcloud微服務(wù)架構(gòu)基礎(chǔ)知識(shí)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java基于TCP協(xié)議的Socket通信

    Java基于TCP協(xié)議的Socket通信

    本文詳細(xì)講解了Java基于TCP協(xié)議的Socket通信,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • java數(shù)據(jù)結(jié)構(gòu)與算法之簡(jiǎn)單選擇排序詳解

    java數(shù)據(jù)結(jié)構(gòu)與算法之簡(jiǎn)單選擇排序詳解

    這篇文章主要介紹了java數(shù)據(jù)結(jié)構(gòu)與算法之簡(jiǎn)單選擇排序,結(jié)合實(shí)例形式分析了選擇排序的原理、實(shí)現(xiàn)方法與相關(guān)操作技巧,需要的朋友可以參考下
    2017-05-05
  • SpringBoot中時(shí)間類(lèi)型 序列化、反序列化、格式處理示例代碼

    SpringBoot中時(shí)間類(lèi)型 序列化、反序列化、格式處理示例代碼

    這篇文章主要介紹了SpringBoot中時(shí)間類(lèi)型 序列化、反序列化、格式處理示例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • java常見(jiàn)的序列化方式

    java常見(jiàn)的序列化方式

    這篇文章主要為大家詳細(xì)介紹了java中兩種常見(jiàn)的序列化方式,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Java中volatile關(guān)鍵字的線程的可見(jiàn)性、有序性詳解

    Java中volatile關(guān)鍵字的線程的可見(jiàn)性、有序性詳解

    這篇文章主要介紹了Java中volatile關(guān)鍵字的線程的可見(jiàn)性、有序性詳解,在juc多線程并發(fā)編程中,常常需要關(guān)注線程的"可見(jiàn)性"與"有序性",本文將詳細(xì)介紹這兩部分內(nèi)容,以及volatile關(guān)鍵字的使用,需要的朋友可以參考下
    2024-01-01
  • Java小程序賽馬游戲?qū)崿F(xiàn)過(guò)程詳解

    Java小程序賽馬游戲?qū)崿F(xiàn)過(guò)程詳解

    這篇文章主要介紹了Java小程序賽馬游戲?qū)崿F(xiàn)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • IntellJ idea使用FileWatch實(shí)時(shí)編譯less文件的方法

    IntellJ idea使用FileWatch實(shí)時(shí)編譯less文件的方法

    這篇文章主要介紹了IntellJ idea使用FileWatch實(shí)時(shí)編譯less文件的相關(guān)資料,需要的朋友可以參考下
    2018-02-02
  • JDK生成WebService客戶端代碼以及調(diào)用方式

    JDK生成WebService客戶端代碼以及調(diào)用方式

    WebService 是一種跨編程語(yǔ)言和跨操作系統(tǒng)平臺(tái)的遠(yuǎn)程調(diào)用技術(shù),下面這篇文章主要給大家介紹了關(guān)于JDK生成WebService客戶端代碼以及調(diào)用方式的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • 詳談Servlet和Filter的區(qū)別以及兩者在Struts2和Springmvc中的應(yīng)用

    詳談Servlet和Filter的區(qū)別以及兩者在Struts2和Springmvc中的應(yīng)用

    下面小編就為大家?guī)?lái)一篇詳談Servlet和Filter的區(qū)別以及兩者在Struts2和Springmvc中的應(yīng)用。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08

最新評(píng)論

泗洪县| 江都市| 高唐县| 呼图壁县| 靖宇县| 漯河市| 北碚区| 新疆| 沂源县| 乌兰县| 红桥区| 镇康县| 永吉县| 耿马| 旬邑县| 清原| 且末县| 宣汉县| 临海市| 伊吾县| 崇阳县| 庆安县| 拉萨市| 江山市| 白玉县| 富裕县| 陇西县| 沙洋县| 木里| 郓城县| 铜川市| 炎陵县| 棋牌| 新乡县| 论坛| 武宁县| 鲜城| 台安县| 神农架林区| 奉化市| 开平市|