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

溫馨提示×

溫馨提示×

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

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

c語言和java的區別是什么

發布時間:2021-07-07 14:52:38 來源:億速云 閱讀:168 作者:Leah 欄目:編程語言

今天就跟大家聊聊有關c語言和java的區別是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

  

c語言和java的區別:

  1、調法結構

  C與Java的詞法結構很相似,針對程序中的空白符、標識符、注釋、常量、運算符、分隔符和關鍵字等進行詳細對比分析。

  1.1、空白符和注釋

  空白符包括空格、制表符和換行符。

  C中存在兩種注釋:

  1)注釋語句以/*開頭,以*/結束。

  2)注釋可以用//開始,延伸到下一個行終結符。

  Java包含了C的兩種注釋和空白符。

  1.2、標識符

  C的標識符集合是Java 的標識符集合的一個子集。C中標識符由大小寫拉丁字符、數字和下劃線組成的,且不能以數字開頭,不能與關鍵字相同;

  Java的標識符由大小寫拉丁字符、數字、下劃線以及$組成,也不能以數字開頭;

  1.3、關鍵字和保留標識符

  關鍵字是語言的特殊符號,C和Java的關鍵字較相似。

  有些關鍵字Java中獨有的,如下圖所示:

  abstract

  assert

  boolean

  byte

  catch

  class

  extends

  Final

  finally

  implements

  import

  instranceof

  interface

  native

  New

  package

  private

  protected

  public

  strictfp

  super

  synchronized

  this

  throw

  throws

  transient

  try

  有些關鍵字在C中使用而Java未使用,下表所示為C中獨有的關鍵字。

  Auto _bool _Complex extern _Imaginary inline register

  restrict signed sizeof struct typedef union Usigned

  1.4、常量

  常量包括4中類型:整形、浮點型、字符型和字符串型。對于常量,C與Java存在細微的差別。

  1) C中整型常數中只有無符號整型常數比Java的整型常數大,Java中沒有后綴long long型和unsigned;

  2) C 和 Java 的字符常量和字符串常量很接近,C中有續行機制,即如果字符串太長,一行放不下,則可以在行末加上一個反斜杠,反斜杠和行終結符被忽略,使字符串常量可以寫在多行中,并且所有的源行都可以續航。但Java 中,不允許字符串跨越多行。

  3) C中每個字符串都是由空字符("\0")來結尾,而Java 的字符串中沒有如此的終結符。

  4) 在C中,"0"還可以表示布爾值假(false)或指針空(NULL),在Java采用保留標識符false 或 NULL。

  1.5、運算符和分隔符

  Java 中大多數運算符和分隔符與C是兼容的,C中提供的運算符幾乎完全適合于Java語言。兩者的細微差別是:

  1)C中獨有間接成員運算符(->)、取值運算符(*)、地址運算符(&)、逗號運算符(,);

  2)Java 不提供指針運算符,增加了對象操作符 instanceof、字符串運算符+和零填充的右移》等;

  3)與C不同的是,Java中算數運算符不能用在布爾類型上,邏輯運算符的操作數只能是布爾型而不能是整型,在轉換中需要進行特殊處理;

  4)C中利用 sizeof 進行數據分配和釋放內存以及獲取的數據的個數,但在java中沒有此運算符,因為所有的數據類型在所有機器中的大小都是相同的;

  2、數據類型

  C中數據類型分為:算書類型、指針類型、數組類型、結構類型、聯合類型、枚舉類型、函數類型和void類型,以下對上述類型在Java與C的異同以及類型轉異換進行比較分析。

  2.1、算術類型

  C中算術類型包括整型和浮點型。C中的整型有字符類型、布爾類型和枚舉類型。C中類型大小依賴于C編譯器的具體實現;

  Java對基本數據類型大小有明確約定,其中char 是一個2字節的無符號整數,用來存儲Unicode字符。除char類型外,Java不支持無符號整型,其它整型都是無符號的;

  并且C中char類型的用法比Java中靈活。C中char類型的數組和指針可以用來表示字符串,而Java須使用string類表示。

  2.2、結構和聯合類型

  Java中沒有結構類型;在C中聲明結構變量時編譯器會為其分配內存空間,而在Java中需要用new來分配空間;C中允許不完整初始化以及聲明匿名結構(可嵌套),在Java中確實不被允許的;Java中沒有與C中對應的聯合類型這種語言結構。

  2.3、枚舉類型

  C中,枚舉類型聲明代表整數常量的符號名稱,枚舉常量事實上是int 類型;

  Java 中,存在枚舉類型,關鍵字enum 聲明的枚舉變量事實上是java.lang.Enum 的一個子類,可以為其添加屬性和方法,雖然其中的枚舉常量也是int 類型,但不能用整數初始化,也不能作為整型使用。

  2.4、void類型

  C 和 Java 都支持 void 類型。

  C 中void 可代替函數參數表以及表示函數不帶參數,在建立 void * 類型時,void * 類型的變量可以存儲一個指向任意類型或函數的指針;

  Java 中的 void 僅表示方法沒有返回值。

  2.5、typedef

  C 中 typedef 不是預處理指令,而是為某一類型創建另外名字的,并且C允許在一個typedef 中引用另一個 typedef 定義的名字;

  Java 中沒有與之對應的機制;

  2.6、數據類型轉換

  Java 語言屬于強類型語言,對數據類型兼容性要求比C更嚴格,這保障了他的安全性和健壯性。Java中所有的數值傳遞,無論是直接還是通過參數傳遞的都先要進行類型兼容性的檢查,任何類型的不匹配的都會產生編譯錯誤。在Java 中,整數類型、浮點數類型和字符類型是彼此兼容的,但和布爾類型是不兼容的,除了布爾型和枚舉類型,Java中允許吧任何基本類型轉換成別的基本類型;

  C中表示真/假的變量一直是由int 類型來表示的。C允許從算術類型轉換為布爾類型。Java 不允許在這兩種類型之間進行隱式和顯式的轉換,也不能比較布爾型和算術型。

  3、表達式和語句

  Java的表達式和語句與C的幾近一致,存在一些細微差別:在Java 中 if、write、for 語句中的條件表達式應該是布爾型,在C中可以是整形;Java 不提供goto語句,goto語句的存在可以改變程序的運行方式,是程序的安全性和穩定性降低,Java利用代表號的break 語句和continue語句實現轉移功能;表達式語句在Java中比C有更多的限制,Java中只允許復制、函數調用、自增減、new 表達式等出現在表達式語句中。

  4、函數

  1)對于變量和函數,C需要實現聲明和定義,而Java中只有定義,沒有聲明;

  2)由于C不是面向對象的,所以C中所有全局變量和函數本質上對Java而言都是靜態的。Java是一種面向對象語言,它不允許在類和接口之外聲明函數,包括 main 函數和變量。而在C中,常會出現在一個文件中定義大量的全局變量,在其他文件中通過引用聲明這些變量來實現共享,但Java不允許有全局變量或函數;

  3)當C中函數返回值的類型和聲明時類型不相符時,函數的返回值會自動轉換為這個類型之后再進行函數返回;而在Java中面對次情況時,需要加入強制類型轉換;

  4)C中函數調用參數計算的順序是未定義的,而Java 是從左到右有順序的;

  5)C中如果變量或函數在別的文件中定義的,必須使用extern 來聲明該變量或函數。在單個文件編譯的時候它們是不可見,而在鏈接階段才可見。Java的編譯器沒有這種鏈接階段,所有需要的文件在編譯時必須可見;

  6)C和Java程序都從 main 函數開始執行。C中main 函數一般需要有 argc,argv 兩個參數,argc 存在命令行參數個數,argv 存在實際的命令行參數;java 中main 必須用 stringargs[] 作為方法的參數,它是用來接收運行系統啟動Java 應用程序時所用的命令行的參數;

  7)C和Java中可以調用 exit 函數來終結程序;C中可利用abort 函數來退出非正常終止的程序,Java 中沒有相對應的策略。

  5、數組

  1)數組是同一類型的數據元素的有序序列。Java 程序在編譯和運行時嚴格地檢查所有數組的邊界,提高了程序的安全性;在C中并沒有提供邊界檢查功能,如此可以提供程序的運行速度;

  2)在C中,數組一般是在定義時就指定其大小,由編譯器分配數組所需的一塊連續的內存空間,而且數組中的元素是按順序存儲的;在Java 中,數組定義時不被允許指定數組的大小,同時也不會為其分配內存空間,需要用new 運算符顯示創建,或者通過初始化方法隱式創建,數組所占用的空間由Java的來及收集器自動地回收;

  3)C 中如果部分初始化數組,未促使花的元素則被設置為0。Java并不直接支持多維數組,但可以創建數組的數組,用這種方法可以實現多維數組;

  4)值得注意的是,在C中數組實際得到的是它的指針,而在Java中得到的是引用,不是指針。在Java中程序只能通過下標運算符和訪問數組元素,不能像C中的指針那樣通過整數加減運算來訪問元素;

  5)C允許數組的牽引類型可以為long型,而Java 的要求是 int 型。

  6、預處理器及頭文件的比較

  Java沒有預處理器,也沒有頭文件;C中預處理器只是接收一些文本并將其轉換成為其他文本,編譯器對預處理的源程序進行編譯,在C中通常用頭文件來聲明原型以及全局變量、庫函數等。

  當然Java和c的主要用途也不一樣,Java主要針對的是互聯網應用的開發,而c主要偏向于底層的開發,所以現在我們所看到的的操作系統,智能設備這些都是使用的c,而我們平時的一些大數據平臺,網站開發,比如我們經常使用的電商網站,還有一些企業管理網站等用到的則大都是java。

看完上述內容,你們對c語言和java的區別是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

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

AI

英超| 高台县| 开平市| 鹰潭市| 龙山县| 宁陵县| 卫辉市| 呼和浩特市| 当阳市| 长治县| 姚安县| 石狮市| 隆德县| 乌兰察布市| 木里| 桐柏县| 延安市| 湖口县| 昭平县| 离岛区| 芦溪县| 南溪县| 阿克| 温泉县| 岐山县| 拜城县| 梓潼县| 永胜县| 巫山县| 聊城市| 兴安盟| 治多县| 广南县| 北宁市| 图木舒克市| 绵竹市| 阿拉善右旗| 顺义区| 宁陵县| 板桥市| 临沧市|