91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java和c語言的差異

發布時間:2020-06-26 17:45:13 來源:億速云 閱讀:165 作者:Leah 欄目:編程語言

本篇文章給大家分享的是有關java和c語言的差異,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

1、標識符:

C可用的標識符為數字、大小寫字母、下劃線,不能以數字開頭;

Java可用的標識符除了C的三種以外,多一種美元符號($),同樣不能以數字開頭。

2、關鍵字:

C中的關鍵字有:

auto   break    case    char   const

continue   default    do    double   else

enum   extern    float    for   goto

if   int    long    register   return

short   signed    sizeof    static   struct

switch   typedef    union    unsigned   void

volatile   while

Java中的關鍵字有:

abstract   boolean    break    byte   case

catch   char    class    continue   default

do   double    else    extends   false

final   finally    float    for   if

implements    import   instanceof    int    interface

long   native    new    null   package

private   protected    public    return   short

this   throw    throws    transient   true

try   static    super    switch   synchronized

void   volatile    while

3、數據類型:

C中的數據類型有:

  1. 基本類型:整型(基本整型int、短整型short[int]和長整型long [int]以及有符號型[signed]、無符號型unsigned)、字符型[signed/unsigned ]char、浮點型(單精度型float、雙精度型double和長雙精度long double)、枚舉類型

  2. 構造類型:數組類型、結構體類型、共用體類型

  3. 指針類型

  4. 空類型

注意下各類型一般所占字節數:

int:2字節

short:2字節

long:4字節

char:1字節

float:4字節

double:8字節

long double:16字節

以上存儲除char類型外,其他視系統不同略有不同,但低精度的位數不可以超過高精度的。

Java中的數據類型:

  1. 基本類型:字符型(char)、數值型(整型(字節型byte、短整型short、整型int、長整型long)、浮點型(單精度型float、雙精度型double))、布爾型(boolean(true或false))

  2. 復合類型:類、接口、數組

注意下各類型存儲所占字節數:

byte:1字節

short:2字節

int:4字節

long:8字節

char:2字節(Unicode編碼)

float:4字節

double:8字節

以上數據類型對應的存儲空間與平臺無關,固定為該值。

4、常量和變量

1)常量

Java和C中整型常量定義相同,除長整型數據在其末尾加l或L外,其他類型均直接顯示數值。C中無符號常量在其后加u或U。對于不同進制,十進制直接顯示最高位不能有0,八進制以0開頭,十六進制以0x或0X開頭。

對于浮點類型,C和Java均只能采用十進制表示。可使用小數形式和指數形式,指數形式表示時小數與指數之間用e或E分隔。注意Java中要求單精度后要加f或F,雙精度后要加d或D以示區分。

字符型常量都是以單引號引起來的單個字符或轉義字串表示。特別注意,C中字符型只能表示ASCII碼從0~255的字符,Java中使用Unicode編碼2字節存儲單元可以表示特殊字符,表示unicode編碼時使用\u加4位16進制字串。

布爾類型只有Java中才有,需特別注意。

Java中常量用關鍵字final修飾,一經賦值不可更改;C中表示不可更改的關鍵字是const,其修飾的變量(注意是變量,不是常量)必須在定義時賦初值,另外用#define定義的宏常量沒有類型。

2)變量

Java和C中變量的定義基本相同,即:

數據類型變量名[ = 變量初值];

變量可賦初值也可不賦,但Java中長整型和浮點型數后要加相應識別標志(如l、f)。

特別注意:由于編譯器的不同,C申明變量要放在可執行語句之前,否則可能發生編譯錯誤。

5、邏輯運算符和位運算符

C和Java中都有的邏輯運算符&&||三種,且意義相同,區別在于C中運算結果為0和非0,Java中只能是ture或false。Java中還存在&、|、^(異或),&和&&、|和||的區別在于前者是非捷徑運算符而后者是捷徑運算符,即&前后都做判斷,&&前為假不做后面的判斷,|前后都做判斷,||前為真不做后面的判斷。^表示兩者相同為假。

C和Java中都有的位運算符是:&|^~(取反)<<(左移)>>(右移),意義基本相同。負數的右移運算在C中視不同系統有所不同(可能是算術右移也可能是邏輯右移),而Java中>>表示的是算術右移,即最高位填充符號位。Java中邏輯右移(無符號右移)運算符是>>>,采用補碼右移,高位添0。

PS:有心的讀者可能會發現,如果你定義了一個byte或者short類型的負數,如-10,采用>>>方法進行無符號右移后輸出的結果是-5,按照上面說的高位添0應該是正數。而int或long類型的就不會是負數,這是為什么呢?我認為這是因為Java在進行>>>運算時采用的最低數據類型是int類型,導致高位數據全為1(計算機內存儲的數據是以補碼存儲的,所以負數的byte或short類型轉成int類型高位全填充1),移位時高位的最后一個1移到低位的第一位,然后截取成我們定義的數據類型(byte或short),所以我們看到的數還是負數。從這里我們可以看出,在byte和short類型的數據做>>>運算的時候可能得不到我們想要的值,千萬注意。

6、數組

C中數組的定義如下:

類型說明符數組名[常量表達式];

定義可與初始化同時進行,如:int a[10] = {0,1,2,3,4,5,6,7,8,9};中括號內的常量可以省略。

Java中數組定義有兩種方式:

數據類型數組名[];
//或
數據類型 []數組名;

定義和初始化可同時進行,如:int []a = {0,1,2,3,4,5,6,7,8,9};

注意:Java中數組如果在定義時沒有進行初始化,在進行初始化的時候需要先分配內存,即:

數組名 = new 數據類型[常量表達式];

也可在定義同時進行內存分配:

數據類型數組名[] = new 數據類型[常量表達式];

C和Java都不支持變長數組,引用的時候都是 數組名[下標]。區別是:

Java的下標范圍為0~數組長度-1,不在該范圍會拋出數組下標越界異常,而C有效范圍也是0~數組長度-1,但下標超出此界不會報錯。

多維數組中,數組元素都是按行排列的。

還有一點要注意:C中定義數組不進行初始化則數組元素值是不可預知的,而Java中分配內存而不進行初始化數組中是有默認值的。

7、語句

C和Java語句區別不大,主要是:

1)方法/函數調用時C直接調用函數,Java調用方法時方法名前面要加對象名。

2)C中兩個嵌套的復合語句同時定義同名變量是可以的,而Java不可以。

以上就是java和c語言的差異,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥中县| 江口县| 陆良县| 金山区| 长葛市| 镇江市| 襄垣县| 松潘县| 亳州市| 枣强县| 汨罗市| 云南省| 历史| 巩义市| 巧家县| 镶黄旗| 孟津县| 南充市| 阿图什市| 沂南县| 九龙城区| 张北县| 宿迁市| 嵊泗县| 桦川县| 根河市| 大厂| 聂拉木县| 定日县| 南漳县| 清新县| 田阳县| 邳州市| 怀柔区| 洛隆县| 咸宁市| 焉耆| 时尚| 井研县| 明水县| 淮滨县|