Java程序與C語言的區(qū)別淺析
Java和C語言雖有相同性,但兩者也有一定的不同。Java程序是面向?qū)ο蟮囊环N簡單、分布式 、解釋、健壯、安全、結(jié)構(gòu)中立、可移植、高效能、多線程、動態(tài)的語言它是面向?qū)ο蠖鳦語言是面向過程的,這是最大的不同,對于學(xué)過C語言的我們來說,Java可以說是比較簡單的編程語言。
在Java語言中,所有的變量必須要首先聲明,然后才能使用。
Java中可以有若干類但有且只有一個public,一個類中至少含有一個main方法,否則程序不能運(yùn)行。而一個C語言由若干函數(shù)構(gòu)成,其中必須且只有一個main的主函數(shù),程序執(zhí)行時,都是由main這個主函數(shù)開始的。
*以下從類型、變量和表達(dá)式三方面分別說明兩者的不同。
一、類型
1》 C語言:
1、字符型。2、整型(短整型、整型、長整型)。3、實(shí)型(單精度、雙精度、長雙精度)。4、空類型。
2》 Java語言:
1、邏輯性。2、字符型。3、整型(字節(jié)型、短整型、整型、長整型)。4、實(shí)型(單精度、雙精度)。
標(biāo)識符:
在Java編程語言中,標(biāo)識符是賦予變量、類或方長度法的名稱,它的命名規(guī)則如下:
1) 標(biāo)識符可從一個字母、下劃線(-)或美元符號($)開始,隨后可跟除了在Java中作為運(yùn)算符之外的任何可見字符。
2) 標(biāo)識符是連續(xù)的字符串,不能被空格或制表符隔開。
3) 標(biāo)識符不能是關(guān)鍵字,但是它可包含一個關(guān)鍵字作為它的名字的一部分。例如,thisone是一個有效的標(biāo)識符,但this卻不是,因?yàn)閠his是一個java關(guān)鍵字。
4) Java語言嚴(yán)格區(qū)分標(biāo)識符的大小寫,如A和a、Day和day都是兩個不同的標(biāo)識符
5) 標(biāo)識符未規(guī)定最大長度。
在C語言中,標(biāo)識符就是一個名字。用來表示符號常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列成為標(biāo)識符。
1)C語言中規(guī)定標(biāo)識符只能由字母、數(shù)字、和下劃線三種字符組成,且第一個字符必須是字母或下劃線。
2)C語言中大小寫字母不等效,如,A和a、Sum和sum分別表示兩個不同的標(biāo)識符。
3)C語言中標(biāo)識符可以是關(guān)鍵字。
4)C語言中,標(biāo)識符可以任意長度。
二、
1》 在文本的輸出方面的不同:
1)C語言:
printf語句實(shí)現(xiàn)文本的輸出,例如:printf(“C語言”);
2)Java語言:
例如System.out.print(“Java語言”);
2》在文本的鍵盤輸入方面的不同:
1)C語言:
scanf語句就可實(shí)現(xiàn)語句輸入。
2)Java語句:
1、利用scanner類實(shí)現(xiàn)鍵盤輸入
Scanner是JDK1.5新增的一個類,一個可以使用正則表達(dá)式來解析基本類型和字符串的簡單文本掃描器。例如:
import java.unil.Scanner; public class ScannerDemo{ public staticvoid main(String[] args){ Scanner sc=newScanner(system.in); System.out.println(“請輸入一個整數(shù),敲回車結(jié)束”); intnum=sc.nextInt(“你輸入了一個:”+num); System.out.println(“請輸入一個字符串,敲回車結(jié)束”); Strings=sc.next(); System.out.println(“你輸入了一個:”+s); Sc.close(); } }
2、利用Console類實(shí)現(xiàn)鍵盤輸入
相比較而言,在格式化輸入方面Console類要比Scanner類更方便靈活一些。
三、除此之外,在注釋上兩者也存在著差異。
1、C語言
C語言只用/*……*/將需要注釋的包括起來就可以完成注釋。
2、Java語言中有三種注釋語言:
1)符號“//”用于注釋一行,可單獨(dú)占一行,也可放到代碼行的最后。
2)/*……*/用于注釋一段代碼,開始處用/*,中間為注釋內(nèi)容,結(jié)束處用*/,此處倒是和C語言注釋方式相同。
3)/**……*/是Java特有的doc注釋,目的是為工具javadoc而采用。
補(bǔ)充:c語言和java的區(qū)別
語法不同;
單文件的編譯時間java比C語言快;
C語言可以直接操作內(nèi)存,java不能直接操作;
C語言可以封裝動態(tài)庫,java不行;
C語言的代碼不容易跨平臺,java的代碼容易跨平臺;
C語言有指針,java沒有指針;
C語言可以直接操作串口,java需要第三方j(luò)ar包支持;
C語言的線程更加靈活,java的線程都已經(jīng)封裝好了;
C語言做單獨(dú)功能,可以增加效率,java適用做web應(yīng)用開發(fā);
unix是C語言編寫的,java也是C語言編寫的;
JAVA做web開發(fā)的時候,已經(jīng)有很多成型的框架技術(shù),C語言很少,且需要處理底層內(nèi)容,對應(yīng)不熟悉計算機(jī)原理的開發(fā)者難度很大;
JAVA的開源包太多了,C語言也有但是偏少,而且面向某個業(yè)務(wù)應(yīng)用領(lǐng)域的框架沒java多;
以下省略1萬字。。。
C語言結(jié)合java語言開發(fā),這樣就碉堡了,可以解決很多應(yīng)用問題
以上所述是小編給大家介紹的Java程序與C語言的區(qū)別,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復(fù)大家的,在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Java多線程Thread基礎(chǔ)學(xué)習(xí)
每一個正在執(zhí)行的程序都是一個進(jìn)程,資源只有一塊,所以在同一時間段會有多個程序同時執(zhí)行,但是在一個時間點(diǎn)上,只能由一個程序執(zhí)行,多線程是在一個進(jìn)程的基礎(chǔ)之上的進(jìn)一步劃分,需要的朋友可以參考下2023-04-04java 實(shí)現(xiàn)MD5加密算法的簡單實(shí)例
這篇文章主要介紹了java 實(shí)現(xiàn)MD5加密算法的簡單實(shí)例的相關(guān)資料,這里提供實(shí)例幫助大家應(yīng)用這樣的加密算法,需要的朋友可以參考下2017-09-09如何通過Java監(jiān)聽MySQL數(shù)據(jù)的變化
對于二次開發(fā)來說,很大一部分就找找文件和找數(shù)據(jù)庫的變化情況,下面這篇文章主要給大家介紹了關(guān)于如何通過Java監(jiān)聽MySQL數(shù)據(jù)的變化的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03關(guān)于elcipse 安裝lombok插件解決 @Slf4j 等找不到log變量問題
這篇文章主要介紹了關(guān)于elcipse 安裝lombok插件解決 @Slf4j 等找不到log變量問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01Spring+SpringMVC+MyBatis整合實(shí)戰(zhàn)(SSM框架)
框架整合難不難?難!東西多,配置文件復(fù)雜不好記憶,本文就來介紹一下Spring+SpringMVC+MyBatis整合實(shí)戰(zhàn),具有一定的參考價值,感興趣的可以了解一下2021-08-08Intellij?IDEA根據(jù)maven依賴名查找它是哪個pom.xml引入的(圖文詳解)
這篇文章主要介紹了Intellij?IDEA根據(jù)maven依賴名查找它是哪個pom.xml引入的,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08Java判斷一個時間是否在當(dāng)前時間區(qū)間代碼示例
這篇文章主要給大家介紹了關(guān)于使用Java判斷一個時間是否在當(dāng)前時間區(qū)間的相關(guān)資料,在日常開發(fā)中我們經(jīng)常會涉及到時間的大小比較或者是判斷某個時間是否在某個時間段內(nèi),需要的朋友可以參考下2023-07-07