Java和C語(yǔ)言的對(duì)比_第1頁(yè)
Java和C語(yǔ)言的對(duì)比_第2頁(yè)
Java和C語(yǔ)言的對(duì)比_第3頁(yè)
Java和C語(yǔ)言的對(duì)比_第4頁(yè)
Java和C語(yǔ)言的對(duì)比_第5頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余22頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、C 語(yǔ)言和 java 的對(duì)比學(xué)習(xí) z 、.前言這里說(shuō)寫(xiě)的都是我的學(xué)習(xí)筆記, 然后這里的是很簡(jiǎn)單的對(duì)比學(xué)習(xí),全部都是自己所理解的東西,而且都是很基礎(chǔ)的 , 很簡(jiǎn)明的輔助自己理解學(xué)習(xí)而已。C語(yǔ)言不會(huì)涉及到指針以及比指針更難更深層次的內(nèi)容; Java 也不會(huì)涉及到面向?qū)ο笠约氨让嫦驅(qū)ο蟾顚哟胃y的內(nèi)容。2015 年 12 月 20 日運(yùn)行機(jī)制源文件可運(yùn)行文件運(yùn)行環(huán)境C語(yǔ)百HelloWorld.cHelloWorld.exeWindowsJavaHelloWorld.javaHelloWorld.classJVM(JavaVirtualMachine )Java虛擬機(jī)C語(yǔ)百:源代碼 編譯 匯編 機(jī)器

2、碼 可運(yùn)行程序Java源代碼(*java)編譯 字節(jié)碼(*class)t單釋 程序運(yùn)行相當(dāng)于:把"魚(yú)(源代碼)”買回來(lái) 用”刀(編譯器)”宰魚(yú) 處理好的"魚(yú)(字節(jié)碼)” 用鍋(JVMff釋/運(yùn)行環(huán)境:java虛擬機(jī))把魚(yú)煮熟 可以吃的魚(yú)(可運(yùn)行程序)PS:Java程序分為兩種類型,一種是Application程序,也就是一般的桌面程序.還有一種就是Applet程序,主要是應(yīng)用(嵌入)到網(wǎng)頁(yè)編程上的.開(kāi)發(fā)環(huán)境搭建(簡(jiǎn)單入門)C語(yǔ)言VC+ 6.0(直接安裝直接用)JavaEclipse EE1.下載安裝 JDK(Java 開(kāi)發(fā)工具包=java development kit)2

3、.下載 eclipse(Mars, J2SE = java 2 standard edition標(biāo)準(zhǔn)版,J2EE=企業(yè)版,下載是下載EE版本的,EE版本可以做網(wǎng)頁(yè)程序)3.配置環(huán)境變量S.114it MI:1S瞰件 嗎服 車現(xiàn)保步|遠(yuǎn)程煢進(jìn)行大拓地審改.需必焦作力*百員置重.仕能和噪效嵬,處理需討劃,內(nèi)用由用,以及宸損內(nèi)存田戶配里文件啟動(dòng)如故怏黛調(diào)定鞅洎' 金不-V浜院保于a 打開(kāi)(S r 嗨*回m l v管理Ljarl .3呻。拄制面整廉帔和安全第鐮文件 隔舊 查xw® 幫助幅控制面板主甄映的何品光的都叫 哥開(kāi)網(wǎng)祠g破商仁L.2.GF電話號(hào)碼:克制也詆400-028-470

4、07k24H另調(diào)叁離操作中心Windows Update性1顆德和工JISupplkanl QTES育 一"JAVA_HOME: C:Program FilesJavajdk1.8.0_45CLASSPATH%JAVA_HOME%lib;%JAVA_HOME%libtools.jar 或者 CLASSPAT%JAVA_HOME%librt.jar;.;PATH: %JAVA_HOME%bin工程 工作區(qū)I耳它文檔IActive Server Page IBinary File阿如Source File即件件件件本楨SC文文文文腳模隊(duì)行標(biāo)圖本源源SQ光困位文資資GF就緒.第一個(gè)程序C語(yǔ)

5、言洶 Microsoft Visual C + +浸舊 弼輯 查君M 插入齒工程0 組建坦)工具口 由口型幫助出)Java1.新建一個(gè)項(xiàng)目曲 rtdQ*Open File;InterfaceConcert tine DeFimitert ToAlt+EnterPfopertiesProblems0 itemsDescHptionNew Java ClassBrowie,PackageEnclosing tpeBitq電Name:Modifiers:Interfaces:gemoveini±hCancelUnmted Text FileJUtijt Test CaseSwitch Wo

6、rkspace RestartAnnatatidinSource FolderJsvd Working Set Folderjava而辦包的名字(這里先不管什么叫做色中出private staticMyTest class的彳 public package dlbistract finalJ public static Yoid mdiM£tinq拼凝 _ Constructors from superclass7 lnheriijd abstract m巨出口dsExampleQther.-java-langrObjectBrowser,protected3.運(yùn)行Helloworl

7、d程序(程序主體)C語(yǔ)言#include<stdio.h>int main()口)int a=1;的整型變量printf( “HelloWorld”);printf( “%d”,a);return 0;/ 頭文件/ 定 義 主函 數(shù)(程序的 入/ 定義一個(gè)值為 1/ 輸出語(yǔ)句/ 函數(shù)返回值/ 定義 HelloWorld/ 主方法定義在HelloWorld 類/ 定義一個(gè)值為 1 的/ 輸出語(yǔ)句Java 語(yǔ)言public class HelloWorld類public static void main(String args) int a=1;整型變量System.out.print

8、ln( Hello“World” );System.out.println(a);數(shù)據(jù)類型C語(yǔ)言數(shù)據(jù)類型關(guān)鍵字示例范圍基本整型Int4(32 位)(VC)Int a; int a=1; int a,b,c;-2A31(2A31-1)短整型short2short a;-2A15(2A15-1)長(zhǎng)整型long4long a;-2A31(2A31-1)雙長(zhǎng)整型long long8long long a;-2A63(2A63-1)無(wú)符號(hào)基本整 型unsigned int4unsigned int a;0(2A32-1)單精度浮點(diǎn)型float4float a=1.234f;K位小數(shù)(6位啟 效數(shù)字)雙精

9、度浮點(diǎn)型double8double a=1.234;15位小數(shù)長(zhǎng)雙精度浮點(diǎn) 型long double16longdoublea=1.234;19位小數(shù)字符型char1char a= m'*布爾型(判斷 用的)boolbool a=true;只有true和false字符串(字符數(shù) 組/函數(shù))gets或 chargets(happy同 charstr= happy”數(shù)據(jù)類型關(guān)鍵字示例范圍基本整型Int4(32 位)(VC)Int a; int a=1; int a,b,c;-2A31(2A31-1)短整型short2short a;-2A15(2A15-1)長(zhǎng)整型long4long a;-

10、2A31(2A31-1)雙長(zhǎng)整型long long8long long a;-2A63(2A63-1)無(wú)符號(hào)基本整 型unsigned int4unsigned int a;0(2A32-1)單精度浮點(diǎn)型float4float a=1.234f;六位小數(shù)(6位 啟效數(shù)字)雙精度浮點(diǎn)型double8double a=1.234;15位小數(shù)長(zhǎng)雙精度浮點(diǎn) 型long double16long double a=1.234;19位小數(shù)字符型char2char ses=i1!'*布爾型(判斷 用的)Boolean2boolean a=true;只有true和 false字符串(引用數(shù) )Stri

11、ngString name= zhang ;輸出語(yǔ)句C語(yǔ)言printf(要輸出的內(nèi)容n=轉(zhuǎn)義字符 格式聲明:d= 百分號(hào)+ 格式字符 這里字符的都只是例子雙引號(hào)是 格式控制,后面的a 是輸出表列 說(shuō) 明那個(gè) %d 就是 a 的值;a);/為了避免出錯(cuò)那個(gè)格式聲明讀的時(shí)候還是讀百分號(hào)d這樣好一點(diǎn)例如 :a=1;printf( “a 的值是%d”,a);那么輸出的就是a 的值是 1Systemout.println(這里是字符串,外面是用符號(hào)鏈接的數(shù)據(jù)(變量)名”+a+”這里可 以連接多個(gè)字符串,在外面還可以輸入表達(dá)式,不一定是變量名稱” +(float)10/3);System.out.prin

12、tln("a"+i+" = "+(i+i);在這句話里加號(hào) 用于拼接字符串以及求和之用。("a" 這是一個(gè)字符串 用 加號(hào) 拼接上 i 然后再拼接上" = "括號(hào)里面的 i+i 這里的 加號(hào) 表示求和因?yàn)?String 類型的變量加上其他任何基本類型的變量都將被當(dāng)作字符串處理。這里 i+i 如果不用括號(hào)括起來(lái)就成了字符串,比如 1+1 就成了 11 而不是 2第一個(gè)加號(hào):拼接字符串 第二個(gè)加號(hào):拼接字符串 第三個(gè)加號(hào):拼接字符串 第四個(gè)加號(hào):求和也就是說(shuō) +在輸出語(yǔ)句中 ,如果是表達(dá)求和的話要加上括號(hào)例如Int a

13、=1;b=2;在輸出語(yǔ)句里(a+b)就是3而 a+b 就是 12數(shù)據(jù)類型轉(zhuǎn)換C語(yǔ)百例如想把int double a=3.2;改成int只要直接用的時(shí)候(int)a這樣就可以了轉(zhuǎn)換語(yǔ)法:(要轉(zhuǎn)換的類型)變量名稱; 例如:main()float f=5.75;printf("f=%d,f=%fn",(int)f,f);f=5,f=5.750000Java自動(dòng)類型轉(zhuǎn)換Int a1=12;double a2=a1;這樣子a2就是12.0 了強(qiáng)制類型轉(zhuǎn)換double a1=12.8;int a2=(int)a1;這樣子 a2 就是 12 了 ,強(qiáng)制轉(zhuǎn)換會(huì)導(dǎo)致數(shù)據(jù)常量定義C 語(yǔ)言# d

14、efine 常量名 值# define SIZE 50Javafinal 類型 常量名 = 值 ; /final 的意思是不可更改的 例如 final double PI=3.14;注意的是常量名一般是大寫(xiě)字符,類型不能省運(yùn)算符號(hào)C 語(yǔ)言 和 java 的運(yùn)算符號(hào)都是一樣的,只是輸出語(yǔ)句的表達(dá)方式不一樣.還有就是java使用布爾值(true或false)來(lái)表達(dá)對(duì)錯(cuò),而C語(yǔ)言卻是用0和非0(多 數(shù)是1)來(lái)表達(dá)對(duì)錯(cuò).(這里補(bǔ)充一個(gè)java中的:aAb是異或,也就是有且只有一個(gè)true是就是 true)符號(hào)優(yōu)先級(jí)也是一樣的 .賦值符號(hào)也是一樣的三元運(yùn)算符(?:)也是一樣的,用法(布爾表達(dá)式)?表達(dá)式

15、1:表達(dá)式 2流程控制語(yǔ)句C和Java的條件語(yǔ)句,選擇語(yǔ)句,循環(huán)語(yǔ)句都是一樣的條件語(yǔ)句 :If(布爾表達(dá)式)執(zhí)行代碼塊1;else if執(zhí)行代碼塊2;else執(zhí)行代碼塊3;選擇語(yǔ)句 :switch(表達(dá)式)你這里的表達(dá)式多數(shù)是變量名,例如int a=3,swich(a)case 值 1:執(zhí)行代碼塊1;break;Case 值 2:執(zhí)行代碼塊2;break;default;1、 switch 后面小括號(hào)中表達(dá)式的值必須是整型或字符型2、 case 后面的值 可以是常量數(shù)值 ,如 1 、 2;也可以是一個(gè)常量表達(dá)式 ,如2+2 ;但不能是變量或帶有變量的表達(dá)式,如 a * 23、 case 匹配后

16、,執(zhí)行匹配塊里的程序代碼,如果沒(méi)有遇見(jiàn) break 會(huì)繼續(xù)執(zhí)行下一個(gè)的 case 塊的內(nèi)容,直到遇到 break 語(yǔ)句或者 switch 語(yǔ)句塊結(jié)束循環(huán)語(yǔ)句 :常用的 3 種循環(huán):while 、(但條件滿足時(shí),執(zhí)行循環(huán)操作)While(判斷條件)循環(huán)操作do.while 、 (先進(jìn)行一次循環(huán)操作,再判斷條件是否滿足,滿足則執(zhí)行)do循環(huán)操作while(判斷條件)for 、 (先將循環(huán)變量初始化,然后當(dāng)判斷循環(huán)變量條件成立時(shí)執(zhí)行循環(huán)操作(體 ),然后讓循環(huán)變量變化,再判斷)for(循環(huán)變量初始化;循環(huán)條件;循環(huán)變量變化)循環(huán)操作/ /這里的循環(huán)變量初始化是:變量類型變量名=值 ; 例如 int

17、i=0;break 和 continue例如 for(i=1;i<10;i+)If(i<5)continue; 第一次是結(jié)束i=1的循環(huán),直接進(jìn)入i=2的循環(huán),,不會(huì)執(zhí)行后面的語(yǔ)句 ,如此類推sum=3;elsebreak; / 直接結(jié)束,跳出整個(gè)循環(huán)printf( “結(jié)束了 ”);數(shù)組C語(yǔ)言數(shù)據(jù)類型(符)數(shù)組名元素個(gè)數(shù)n(常量表達(dá)式);例子 :int a10;/ 這個(gè)是以為數(shù)組的定義Int b=1,2,4;/ 這個(gè)是以為數(shù)組的初始化,這里如果后面填了多少個(gè)數(shù)目,里面的書(shū)就是多少.如果是int b4=1,3,的話,里面沒(méi)有的數(shù) 就會(huì)默認(rèn)為 0;For(i=0;i<=9;i+)

18、scanf(“%d”,&ai);/ 賦值語(yǔ)句也是有雙引號(hào)” 的,而且也要注意是有取地址符號(hào) &的 .這個(gè)是以為數(shù)組的賦值這樣就定義了一個(gè)有10個(gè)元素的一維數(shù)組a了,其中第一個(gè)元素是a0, 第九個(gè)元素是a9,至于為什么a0是第一個(gè)元素,原因是這里的a10是表示整一 個(gè)數(shù)組,而且a10是一個(gè)偽代碼,真正用到的其實(shí)是a0卜a9,這里里面的09其實(shí) 是表示與第一個(gè)元素的偏移量(也叫索引值).例如第二個(gè)元素和第一個(gè)元素的偏移量是2-1=1所以第二個(gè)元素就是a1了.Java1、 聲明數(shù)組語(yǔ)法: 數(shù)據(jù)類型 數(shù)組名;或者 數(shù)據(jù)類型 數(shù)組名 ;2、 分配空間簡(jiǎn)單地說(shuō),就是指定數(shù)組中最多可存儲(chǔ)多少

19、個(gè)元素語(yǔ)法: 數(shù)組名 = new 數(shù)據(jù)類型 數(shù)組長(zhǎng)度 ;其中,數(shù)組長(zhǎng)度就是數(shù)組中能存放元素的個(gè)數(shù)例子 :int a;a=new int5;或者int a=new int5;或者int a=new int1,2,3,5;/ 在聲明數(shù)組的同時(shí)賦值不能指定長(zhǎng)度.或者int a=1,5,6,8;或者int a=5,5,7,6;使用Arrays類操作Java中的數(shù)組1 排序語(yǔ)法: Arrays.sort( 數(shù)組名 );2 、 將數(shù)組轉(zhuǎn)換為字符串語(yǔ)法: Arrays.toString( 數(shù)組名 );類的使用Java中的包 >類 >方法(函數(shù)).<br>包里面有很多類,類里面有很多方

20、法.<br>使用的時(shí)候先導(dǎo)入 (import 包 .類;)類,然后聲明方法,然后使用方法例如 :在class前面的地方import java.util.Arrays;然后就可以用Arrays中的方法了,例如Arrays.sort(數(shù)組名)當(dāng)然,如果不導(dǎo)入的話,也可以直接使用例如 java.util.Arrays.sort(數(shù)組名);使用 foreach 操作數(shù)組foreach 并不是 Java 中的關(guān)鍵字,是for 語(yǔ)句的特殊簡(jiǎn)化版本,在遍歷數(shù)組、集合時(shí),foreach更簡(jiǎn)單便捷。從英文字面意思理解 foreach也就是“ fo海 一個(gè) ” 的意思語(yǔ)法 :for(元素類型元素變量(

21、名):遍歷對(duì)象) 執(zhí)行的代碼綜合示例 :import java.util.Arrays; 導(dǎo)入 Arrays類public class HelloWorld public static void main(String args) / 定義一個(gè)整型數(shù)組,保存成績(jī)信息int scores = 89, 72, 64, 58, 93 ;/又t Arrays類對(duì)數(shù)組進(jìn)行排序Arrays.sort(scores);/ 使用 foreach 遍歷輸出數(shù)組中的元素for (int score:scores) System.out.println(score);二維數(shù)組C 語(yǔ)言數(shù)據(jù)類型 數(shù)組名行數(shù)列數(shù) ;例子

22、 :1. Int a33=1,4,7,5,6,9,7,2,5; 這里可以缺省成 int口3,但是不可以 a3.2. Int a33=1,2,5,5,6,7,5,4,6;3. Int a33=1,5;/ 里面缺省的值都是默認(rèn)值0.Java1. 聲明數(shù)組并分配空間數(shù)據(jù)類型 數(shù)組名 =new 數(shù)據(jù)類型 行數(shù) 列數(shù) ;例如 :int a=new int33;2. 賦值數(shù)組名 行的索引 列的索引=值 ;例如 :a00=1;二維數(shù)組靜態(tài)初始格式數(shù)據(jù)類型 數(shù)組名 =第0 行初值,第1 行初值,第2 行初值.,第n 行初值 ;函數(shù)(C語(yǔ)言”方法(Java)C語(yǔ)言有多個(gè)頭文件,是庫(kù)函數(shù),也就是* h,里面包含了

23、函數(shù)聲明,宏定義,函數(shù)原型. 比如 #include<stdio.h> 標(biāo)準(zhǔn)輸入輸出頭文件 .頭文件里面包含有多個(gè)函數(shù),要使用這些函數(shù)必須先聲明頭文件 .Java也有類庫(kù),里面有多個(gè)包,包里面有多個(gè)方法.原理也是差不多的.實(shí)質(zhì)上兩者沒(méi)有本質(zhì)上的區(qū)別 ,其實(shí)方法就是成員函數(shù).Java 中,在類中創(chuàng)建對(duì)象,然后對(duì)象.方法();這樣用,也就是說(shuō),方法是同一個(gè),但是對(duì)象不同,:.類=class戈有相同或者相似特征的一類事物的統(tǒng)稱。對(duì)象=object二類的某一個(gè)特例,叫做對(duì)象。類是一個(gè)抽象的概念,對(duì)象是一個(gè)具體的個(gè)體。一切事物都是對(duì)象。比如說(shuō) :人,是類 ,一個(gè)抽象的概念.小紅 ,就是對(duì)象,

24、怎具體的指出哪一個(gè).函數(shù) (function)(C 語(yǔ)言 )基礎(chǔ)c語(yǔ)言程序包括:頭文件(公有知識(shí))/主函數(shù)(程序入口)/其他函數(shù)(自定義函數(shù))函數(shù)就是功能,每一個(gè)函數(shù)用來(lái)實(shí)現(xiàn)一個(gè)特定的功能,函數(shù)名字反映其代表的功能調(diào)用函數(shù)的步驟 :定義 ->聲明 ->調(diào)用Int max(int a,int b) -> int max(); / 聲明的時(shí)候里面有沒(méi)有int a,int b 都可以,但是一定要有分號(hào)-> max(x,y);如果函數(shù)是定義主函數(shù)前面的話可以不用聲明.調(diào)用函數(shù)之前必須要聲明或者定義函數(shù), 當(dāng)然定義函數(shù)可以寫(xiě)在主函數(shù)后面,但是 必須在調(diào)用函數(shù)之前聲明該函數(shù).1.

25、定義函數(shù)a. 定義無(wú)參函數(shù)類型名 函數(shù)名 () 函數(shù)體 或類型名 函數(shù)名 (void) /void 是空的意思,表示函數(shù)沒(méi)有參數(shù)函數(shù)體 例如 : int message()printf( “How are you”);b. 定義有參函數(shù)類型名 函數(shù)名(形式參數(shù)表列)/ 形式參數(shù)也叫做虛擬函數(shù),簡(jiǎn)稱 形參 ,調(diào)用的時(shí)候函數(shù)名后面的參數(shù)就是 實(shí)際參數(shù),簡(jiǎn)稱實(shí)參 .可以是常量,變量或表達(dá)式.函數(shù)體例如 :int max(int a,int)Int z;z=x>y?x:y;return z;這里也可以寫(xiě)成return(z);,表示max調(diào)用的時(shí)候?qū)?yīng)返回的值什么那個(gè).例如max(5,7),那么這

26、時(shí)候z=7也就是說(shuō)max(5,7) 的值就是7.(這里的7 由函數(shù)里面運(yùn)行完的時(shí)候 z 的值返回所得 )c. 空函數(shù)類型名 函數(shù)名()無(wú)實(shí)際作用 ,只是用于編寫(xiě)程序開(kāi)始階段可以在將來(lái)準(zhǔn)備擴(kuò)充功能的地方寫(xiě)上一個(gè)空函數(shù),命名取將來(lái)去用的實(shí)際函數(shù)名.(其實(shí)也就是想到這個(gè)功能,但是又想不出來(lái),或者暫時(shí)沒(méi)有必要去寫(xiě)而已)舉個(gè)例子 :#include<stdio.h>int main()int max(int a,int b);/ 聲明 max 函數(shù) int x=3,y=5;printf( %d”,max(a,b); / 調(diào)用 max函數(shù) return 0;int max(int a,int b) / 定義 max 函數(shù) Int z;zx>y?x:yreturn z;

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論