日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

Java编译型语言还是解释型语言

發(fā)布時(shí)間:2025/3/21 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java编译型语言还是解释型语言 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(zhuǎn)自:http://blog.csdn.net/xxb2008/article/details/7924676

JAVA是解釋型語(yǔ)言還是編譯型語(yǔ)言

Under?J2SE?| 三月 10th, 2010

1 comment

?

JAVA是解釋型語(yǔ)言還是編譯型語(yǔ)言

概念:

  • 編譯型語(yǔ)言:把做好的源程序全部編譯成二進(jìn)制代碼的可運(yùn)行程序。然后,可直接運(yùn)行這個(gè)程序。
  • 解釋型語(yǔ)言:把做好的源程序翻譯一句,然后執(zhí)行一句,直至結(jié)束!

?

區(qū)別:

  • 編譯型語(yǔ)言,執(zhí)行速度快、效率高;依賴編譯器、跨平臺(tái)性差些。如C、C++、Delphi、Pascal,Fortran。
  • 解釋型語(yǔ)言,執(zhí)行速度慢、效率低;依賴解釋器、跨平臺(tái)性好。如Java、Basic.

?

通俗的講,編譯語(yǔ)言是在編譯后可以直接運(yùn)行,而解釋語(yǔ)言的執(zhí)行需要一個(gè)解釋環(huán)境。

?java很特殊,java程序也需要編譯,但是沒有直接編譯稱為機(jī)器語(yǔ)言,而是編譯稱為字節(jié)碼,然后用解釋方式執(zhí)行字節(jié)碼。

JIT:

  • 首先采用編譯形式生成某種中介代碼(Java bytecode/MSIL),然后在運(yùn)行時(shí)將其(通常以函數(shù)或Block為單位)最終轉(zhuǎn)換成機(jī)器碼,然后執(zhí)行,轉(zhuǎn)化的機(jī)器碼可以被cache,以提高重復(fù)執(zhí)行的效率

動(dòng)態(tài)語(yǔ)言和靜態(tài)語(yǔ)言

Under?J2SE?| 三月 10th, 2010

No comment

?

1.動(dòng)態(tài)語(yǔ)言Dynamically?Typed?Language

例如:ECMAScript(JavaScript)、Ruby、Python、VBScript、php

也叫動(dòng)態(tài)類型定義語(yǔ)言

與靜態(tài)類型定義相反,一種在執(zhí)行期間才去發(fā)現(xiàn)數(shù)據(jù)類型的語(yǔ)言,

動(dòng)態(tài)語(yǔ)言是指程序在運(yùn)行時(shí)可以改變其結(jié)構(gòu):新的函數(shù)可以被引進(jìn),已有的函數(shù)可以被刪除等在結(jié)構(gòu)上的變化。

動(dòng)態(tài)語(yǔ)言的類型檢查是在運(yùn)行時(shí)做的。

它的優(yōu)點(diǎn)是方便閱讀,不需要寫非常多的類型相關(guān)的代碼;

缺點(diǎn)是不方便調(diào)試,命名不規(guī)范時(shí)會(huì)造成讀不懂,不利于理解等。

目前java平臺(tái)下的動(dòng)態(tài)語(yǔ)言有Groovy、nice、BeanShell、Jython、JRuby、Rhino(JavaScript)、 Jacl(TCL)、Bistro(SmallTalk)、Kawa(Lisp/Schema),真是越來越多了。java下這么多的動(dòng)態(tài)語(yǔ)言建議選擇 Groovy,感覺血統(tǒng)較為正宗,兼容Java的語(yǔ)法,java程序員學(xué)習(xí)起來較為容易,上手較快。

2.靜態(tài)語(yǔ)言Statically?Typed?Language

例如:C、C++、Java

也叫靜態(tài)類型定義語(yǔ)言。即一種在編譯時(shí),數(shù)據(jù)類型是固定的語(yǔ)言。大多數(shù)靜態(tài)類型定義語(yǔ)言強(qiáng)制這一點(diǎn),它要求你在使用所有變量之前要聲明它們的數(shù)據(jù)類型。

在使用數(shù)據(jù)之前,我們必須首先定義數(shù)據(jù)類型,這些數(shù)據(jù)類型包括int ,float,double等等。就相當(dāng)于在使用它們之前,首先要為它們分配好內(nèi)存空間。

靜態(tài)類型語(yǔ)言的主要優(yōu)點(diǎn)在于其結(jié)構(gòu)非常規(guī)范,便于調(diào)試,方便類型安全;

缺點(diǎn)是為此需要寫更多的類型相關(guān)代碼,導(dǎo)致不便于閱讀、不清晰明了。

3.強(qiáng)類型定義語(yǔ)言

一種總是強(qiáng)制類型定義的語(yǔ)言。Java和Python是強(qiáng)制類型定義的。如果你有一個(gè)整數(shù),如果不顯示地進(jìn)行轉(zhuǎn)換,你不能將其視為一個(gè)字符串

4.弱類型定義語(yǔ)言

一種類型可以被忽略的語(yǔ)言,與強(qiáng)類型定義相反。VBScript是弱類型定義

的。在VBScript中,可以將字符串 ’12′ 和整數(shù) 3 進(jìn)行連接得到字符串 ’123′,

然后可以把它看成整數(shù) 123,而不需要顯示轉(zhuǎn)換。

5.腳本語(yǔ)言

腳本語(yǔ)言代表一套與系統(tǒng)程序設(shè)計(jì)語(yǔ)言不同的協(xié)定。

它們犧牲執(zhí)行速度和與系統(tǒng)程序設(shè)計(jì)語(yǔ)言相關(guān)的類型長(zhǎng)度而提供更高的編程創(chuàng)作力和軟件重用。

腳本語(yǔ)言更適合在聯(lián)系復(fù)雜的應(yīng)用程序中進(jìn)行膠著。

為了簡(jiǎn)化連接組件的工作,腳本語(yǔ)言被設(shè)計(jì)為無類型的,腳本語(yǔ)言一般是面向字符的,因?yàn)樽址麨樵S多不同的事物提供了一致的描述。

事實(shí)上,腳本語(yǔ)言都是動(dòng)態(tài)語(yǔ)言,而動(dòng)態(tài)語(yǔ)言都是解釋型語(yǔ)言,不管它們是不是面向?qū)ο蟆?/p>

總結(jié)

以上是生活随笔為你收集整理的Java编译型语言还是解释型语言的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。