Java和C语言的对比_第1页
Java和C语言的对比_第2页
Java和C语言的对比_第3页
Java和C语言的对比_第4页
Java和C语言的对比_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C 语言和 java 的对比学习 z 、.前言这里说写的都是我的学习笔记, 然后这里的是很简单的对比学习,全部都是自己所理解的东西,而且都是很基础的 , 很简明的辅助自己理解学习而已。C语言不会涉及到指针以及比指针更难更深层次的内容; Java 也不会涉及到面向对象以及比面向对象更深层次更难的内容。2015 年 12 月 20 日运行机制源文件可运行文件运行环境C语百HelloWorld.cHelloWorld.exeWindowsJavaHelloWorld.javaHelloWorld.classJVM(JavaVirtualMachine )Java虚拟机C语百:源代码 编译 汇编 机器

2、码 可运行程序Java源代码(*java)编译 字节码(*class)t单释 程序运行相当于:把"鱼(源代码)”买回来 用”刀(编译器)”宰鱼 处理好的"鱼(字节码)” 用锅(JVMff释/运行环境:java虚拟机)把鱼煮熟 可以吃的鱼(可运行程序)PS:Java程序分为两种类型,一种是Application程序,也就是一般的桌面程序.还有一种就是Applet程序,主要是应用(嵌入)到网页编程上的.开发环境搭建(简单入门)C语言VC+ 6.0(直接安装直接用)JavaEclipse EE1.下载安装 JDK(Java 开发工具包=java development kit)2

3、.下载 eclipse(Mars, J2SE = java 2 standard edition标准版,J2EE=企业版,下载是下载EE版本的,EE版本可以做网页程序)3.配置环境变量S.114it MI:1S瞰件 吗服 车现保步|远程茕进行大拓地审改.需必焦作力*百员置重.仕能和噪效嵬,处理需讨划,内用由用,以及宸损内存田户配里文件启动如故怏黛调定鞅洎' 金不-V浜院保于a 打开(S r 嗨*回m l v管理Ljarl .3呻。拄制面整廉帔和安全第镰文件 隔旧 查xw® 帮助幅控制面板主甄映的何品光的都叫 哥开网祠g破商仁L.2.GF电话号码:克制也诋400-028-470

4、07k24H另调叁离操作中心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工程 工作区I耳它文档IActive Server Page IBinary File阿如Source File即件件件件本桢SC文文文文脚模队行标图本源源SQ光困位文资资GF就绪.第一个程序C语

5、言汹 Microsoft Visual C + +浸旧 弼辑 查君M 插入齿工程0 组建坦)工具口 由口型帮助出)Java1.新建一个项目曲 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.运行Helloworl

7、d程序(程序主体)C语言#include<stdio.h>int main()口)int a=1;的整型变量printf( “HelloWorld”);printf( “%d”,a);return 0;/ 头文件/ 定 义 主函 数(程序的 入/ 定义一个值为 1/ 输出语句/ 函数返回值/ 定义 HelloWorld/ 主方法定义在HelloWorld 类/ 定义一个值为 1 的/ 输出语句Java 语言public class HelloWorld类public static void main(String args) int a=1;整型变量System.out.print

8、ln( Hello“World” );System.out.println(a);数据类型C语言数据类型关键字示例范围基本整型Int4(32 位)(VC)Int a; int a=1; int a,b,c;-2A31(2A31-1)短整型short2short a;-2A15(2A15-1)长整型long4long a;-2A31(2A31-1)双长整型long long8long long a;-2A63(2A63-1)无符号基本整 型unsigned int4unsigned int a;0(2A32-1)单精度浮点型float4float a=1.234f;K位小数(6位启 效数字)双精

9、度浮点型double8double a=1.234;15位小数长双精度浮点 型long double16longdoublea=1.234;19位小数字符型char1char a= m'*布尔型(判断 用的)boolbool a=true;只有true和false字符串(字符数 组/函数)gets或 chargets(happy同 charstr= happy”数据类型关键字示例范围基本整型Int4(32 位)(VC)Int a; int a=1; int a,b,c;-2A31(2A31-1)短整型short2short a;-2A15(2A15-1)长整型long4long a;-

10、2A31(2A31-1)双长整型long long8long long a;-2A63(2A63-1)无符号基本整 型unsigned int4unsigned int a;0(2A32-1)单精度浮点型float4float a=1.234f;六位小数(6位 启效数字)双精度浮点型double8double a=1.234;15位小数长双精度浮点 型long double16long double a=1.234;19位小数字符型char2char ses=i1!'*布尔型(判断 用的)Boolean2boolean a=true;只有true和 false字符串(引用数 )Stri

11、ngString name= zhang ;输出语句C语言printf(要输出的内容n=转义字符 格式声明:d= 百分号+ 格式字符 这里字符的都只是例子双引号是 格式控制,后面的a 是输出表列 说 明那个 %d 就是 a 的值;a);/为了避免出错那个格式声明读的时候还是读百分号d这样好一点例如 :a=1;printf( “a 的值是%d”,a);那么输出的就是a 的值是 1Systemout.println(这里是字符串,外面是用符号链接的数据(变量)名”+a+”这里可 以连接多个字符串,在外面还可以输入表达式,不一定是变量名称” +(float)10/3);System.out.prin

12、tln("a"+i+" = "+(i+i);在这句话里加号 用于拼接字符串以及求和之用。("a" 这是一个字符串 用 加号 拼接上 i 然后再拼接上" = "括号里面的 i+i 这里的 加号 表示求和因为 String 类型的变量加上其他任何基本类型的变量都将被当作字符串处理。这里 i+i 如果不用括号括起来就成了字符串,比如 1+1 就成了 11 而不是 2第一个加号:拼接字符串 第二个加号:拼接字符串 第三个加号:拼接字符串 第四个加号:求和也就是说 +在输出语句中 ,如果是表达求和的话要加上括号例如Int a

13、=1;b=2;在输出语句里(a+b)就是3而 a+b 就是 12数据类型转换C语百例如想把int double a=3.2;改成int只要直接用的时候(int)a这样就可以了转换语法:(要转换的类型)变量名称; 例如:main()float f=5.75;printf("f=%d,f=%fn",(int)f,f);f=5,f=5.750000Java自动类型转换Int a1=12;double a2=a1;这样子a2就是12.0 了强制类型转换double a1=12.8;int a2=(int)a1;这样子 a2 就是 12 了 ,强制转换会导致数据常量定义C 语言# d

14、efine 常量名 值# define SIZE 50Javafinal 类型 常量名 = 值 ; /final 的意思是不可更改的 例如 final double PI=3.14;注意的是常量名一般是大写字符,类型不能省运算符号C 语言 和 java 的运算符号都是一样的,只是输出语句的表达方式不一样.还有就是java使用布尔值(true或false)来表达对错,而C语言却是用0和非0(多 数是1)来表达对错.(这里补充一个java中的:aAb是异或,也就是有且只有一个true是就是 true)符号优先级也是一样的 .赋值符号也是一样的三元运算符(?:)也是一样的,用法(布尔表达式)?表达式

15、1:表达式 2流程控制语句C和Java的条件语句,选择语句,循环语句都是一样的条件语句 :If(布尔表达式)执行代码块1;else if执行代码块2;else执行代码块3;选择语句 :switch(表达式)你这里的表达式多数是变量名,例如int a=3,swich(a)case 值 1:执行代码块1;break;Case 值 2:执行代码块2;break;default;1、 switch 后面小括号中表达式的值必须是整型或字符型2、 case 后面的值 可以是常量数值 ,如 1 、 2;也可以是一个常量表达式 ,如2+2 ;但不能是变量或带有变量的表达式,如 a * 23、 case 匹配后

16、,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束循环语句 :常用的 3 种循环:while 、(但条件满足时,执行循环操作)While(判断条件)循环操作do.while 、 (先进行一次循环操作,再判断条件是否满足,满足则执行)do循环操作while(判断条件)for 、 (先将循环变量初始化,然后当判断循环变量条件成立时执行循环操作(体 ),然后让循环变量变化,再判断)for(循环变量初始化;循环条件;循环变量变化)循环操作/ /这里的循环变量初始化是:变量类型变量名=值 ; 例如 int

17、i=0;break 和 continue例如 for(i=1;i<10;i+)If(i<5)continue; 第一次是结束i=1的循环,直接进入i=2的循环,,不会执行后面的语句 ,如此类推sum=3;elsebreak; / 直接结束,跳出整个循环printf( “结束了 ”);数组C语言数据类型(符)数组名元素个数n(常量表达式);例子 :int a10;/ 这个是以为数组的定义Int b=1,2,4;/ 这个是以为数组的初始化,这里如果后面填了多少个数目,里面的书就是多少.如果是int b4=1,3,的话,里面没有的数 就会默认为 0;For(i=0;i<=9;i+)

18、scanf(“%d”,&ai);/ 赋值语句也是有双引号” 的,而且也要注意是有取地址符号 &的 .这个是以为数组的赋值这样就定义了一个有10个元素的一维数组a了,其中第一个元素是a0, 第九个元素是a9,至于为什么a0是第一个元素,原因是这里的a10是表示整一 个数组,而且a10是一个伪代码,真正用到的其实是a0卜a9,这里里面的09其实 是表示与第一个元素的偏移量(也叫索引值).例如第二个元素和第一个元素的偏移量是2-1=1所以第二个元素就是a1了.Java1、 声明数组语法: 数据类型 数组名;或者 数据类型 数组名 ;2、 分配空间简单地说,就是指定数组中最多可存储多少

19、个元素语法: 数组名 = new 数据类型 数组长度 ;其中,数组长度就是数组中能存放元素的个数例子 :int a;a=new int5;或者int a=new int5;或者int a=new int1,2,3,5;/ 在声明数组的同时赋值不能指定长度.或者int a=1,5,6,8;或者int a=5,5,7,6;使用Arrays类操作Java中的数组1 排序语法: Arrays.sort( 数组名 );2 、 将数组转换为字符串语法: Arrays.toString( 数组名 );类的使用Java中的包 >类 >方法(函数).<br>包里面有很多类,类里面有很多方

20、法.<br>使用的时候先导入 (import 包 .类;)类,然后声明方法,然后使用方法例如 :在class前面的地方import java.util.Arrays;然后就可以用Arrays中的方法了,例如Arrays.sort(数组名)当然,如果不导入的话,也可以直接使用例如 java.util.Arrays.sort(数组名);使用 foreach 操作数组foreach 并不是 Java 中的关键字,是for 语句的特殊简化版本,在遍历数组、集合时,foreach更简单便捷。从英文字面意思理解 foreach也就是“ fo海 一个 ” 的意思语法 :for(元素类型元素变量(

21、名):遍历对象) 执行的代码综合示例 :import java.util.Arrays; 导入 Arrays类public class HelloWorld public static void main(String args) / 定义一个整型数组,保存成绩信息int scores = 89, 72, 64, 58, 93 ;/又t Arrays类对数组进行排序Arrays.sort(scores);/ 使用 foreach 遍历输出数组中的元素for (int score:scores) System.out.println(score);二维数组C 语言数据类型 数组名行数列数 ;例子

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;/ 里面缺省的值都是默认值0.Java1. 声明数组并分配空间数据类型 数组名 =new 数据类型 行数 列数 ;例如 :int a=new int33;2. 赋值数组名 行的索引 列的索引=值 ;例如 :a00=1;二维数组静态初始格式数据类型 数组名 =第0 行初值,第1 行初值,第2 行初值.,第n 行初值 ;函数(C语言”方法(Java)C语言有多个头文件,是库函数,也就是* h,里面包含了

23、函数声明,宏定义,函数原型. 比如 #include<stdio.h> 标准输入输出头文件 .头文件里面包含有多个函数,要使用这些函数必须先声明头文件 .Java也有类库,里面有多个包,包里面有多个方法.原理也是差不多的.实质上两者没有本质上的区别 ,其实方法就是成员函数.Java 中,在类中创建对象,然后对象.方法();这样用,也就是说,方法是同一个,但是对象不同,:.类=class戈有相同或者相似特征的一类事物的统称。对象=object二类的某一个特例,叫做对象。类是一个抽象的概念,对象是一个具体的个体。一切事物都是对象。比如说 :人,是类 ,一个抽象的概念.小红 ,就是对象,

24、怎具体的指出哪一个.函数 (function)(C 语言 )基础c语言程序包括:头文件(公有知识)/主函数(程序入口)/其他函数(自定义函数)函数就是功能,每一个函数用来实现一个特定的功能,函数名字反映其代表的功能调用函数的步骤 :定义 ->声明 ->调用Int max(int a,int b) -> int max(); / 声明的时候里面有没有int a,int b 都可以,但是一定要有分号-> max(x,y);如果函数是定义主函数前面的话可以不用声明.调用函数之前必须要声明或者定义函数, 当然定义函数可以写在主函数后面,但是 必须在调用函数之前声明该函数.1.

25、定义函数a. 定义无参函数类型名 函数名 () 函数体 或类型名 函数名 (void) /void 是空的意思,表示函数没有参数函数体 例如 : int message()printf( “How are you”);b. 定义有参函数类型名 函数名(形式参数表列)/ 形式参数也叫做虚拟函数,简称 形参 ,调用的时候函数名后面的参数就是 实际参数,简称实参 .可以是常量,变量或表达式.函数体例如 :int max(int a,int)Int z;z=x>y?x:y;return z;这里也可以写成return(z);,表示max调用的时候对应返回的值什么那个.例如max(5,7),那么这

26、时候z=7也就是说max(5,7) 的值就是7.(这里的7 由函数里面运行完的时候 z 的值返回所得 )c. 空函数类型名 函数名()无实际作用 ,只是用于编写程序开始阶段可以在将来准备扩充功能的地方写上一个空函数,命名取将来去用的实际函数名.(其实也就是想到这个功能,但是又想不出来,或者暂时没有必要去写而已)举个例子 :#include<stdio.h>int main()int max(int a,int b);/ 声明 max 函数 int x=3,y=5;printf( %d”,max(a,b); / 调用 max函数 return 0;int max(int a,int b) / 定义 max 函数 Int z;zx>y?x:yreturn z;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论