广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >c语法与java语法区别
  • 158
分享到

c语法与java语法区别

java入门java 2014-08-19 06:08:04 158人浏览 绘本
摘要

c语法与java语法区别:1、标识符: (推荐学习:java课程)C可用的标识符为数字、大小写字母、下划线,不能以数字开头;Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。2、关

c语法与java语法区别:

1、标识符: (推荐学习:java课程)

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不可以。

8、类、域、方法和全局变量、函数

1)类是C中没有的,Java中类定义如下:

[修饰符] class 类名[extends 父类名][implements 接口名]
{
//类体
}

其中修饰符可以为以下一个或多个访问修饰符:

abstract:抽象类。

final:最终类。

public:公共类。

2)域(成员变量)和全局变量类比:

Java中域的定义如下:

[修饰符] 类型 成员变量名;

修饰符可选以下一个或多个关键字:

public:公共成员。

protected:本类或同一个包的其他类以及其它包该类的子类可访问。

private:私有成员。

final:常量,确定后不能改变。

static:静态变量。

transient:临时变量。

volatile:备份变量。

各类型成员变量默认初始化为:

整型变量:0

浮点型变量:0.0

布尔型变量:false

字符型变量:空格

类变量:null

C中全局变量定义同一般变量:

[存储类别] 数据类型 变量表列;

其中存储类别可选:

auto:自动变量,当不申明存储类别时隐式默认该值。

static:静态变量。

register:寄存器变量。

extern:外部变量。

3)方法和函数类比:

Java中方法的定义如下:

[修饰符] 返回类型 方法名([参数表列])
{
//方法体
}

修饰符可选以下一个或多个:

public:公共方法。

protected:本类或同一个包的其他类以及其它包该类的子类可访问。

private:私有方法。

abstract:抽象方法,只有方法头没有方法体。

static:静态方法。

C中函数的定义如下:

[存储类别] [数据类型] 函数名([形参表列]) 
{
//函数体
}

存储类别可选:

extern:外部函数。

static:静态函数。

--结束END--

本文标题: c语法与java语法区别

本文链接: https://www.lsjlt.com/news/3029.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c语法与java语法区别
    c语法与java语法区别:1、标识符: (推荐学习:java课程)C可用的标识符为数字、大小写字母、下划线,不能以数字开头;Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。2、关...
    99+
    2014-08-19
    java入门 java
  • c语法与java语法有区别吗?
    C语言和java在语法上有区别,区别是:C语言可以直接操作内存,java不能直接操作;C语言可以封装动态库,java不行;C语言的代码不容易跨平台,java的代码容易跨平台;C语言有指针,java没有指针;C语言可以直接操作串口,java需...
    99+
    2018-10-16
    java基础 c java 语法
  • java与c语法上的区别是什么?
    java与c语法上的区别是什么?1、标识符:C可用的标识符为数字、大小写字母、下划线,不能以数字开头;【推荐教程:C语言教程】Java可用的标识符除了C的三种以外,多一种美元符号($),同样不能以数字开头。【推荐学习:java课程】2、关键...
    99+
    2021-09-30
    java教程 java c
  • c语言和java的语法区别是什么?
    c语言和java的语法区别单文件的编译时间java比C语言快;C语言可以直接操作内存,java不能直接操作;C语言可以封装动态库,java不行;C语言的代码不容易跨平台,java的代码容易跨平台;C语言有指针,java没有指针;C语言可以直...
    99+
    2017-01-22
    java教程 c语言 java
  • java与c语言的区别是什么
    这篇文章将为大家详细讲解有关java与c语言的区别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。java基本数据类型有哪些Java的基本数据类型分为:1、整数类型,用来表示整数的数据类...
    99+
    2023-06-14
  • java与c语言的区别有哪些?
    java与c语言的区别有哪些?1、Java与C内存分配不同:Java中内存分配五个区,分别为栈区(存储的是局部变量,使用完毕,立即回收),堆区(存储的是new出来的东西,实体,对象,每一个对象都有地址值,每个对象的数据都有默认值,使用完毕后...
    99+
    2020-10-28
    java教程 java c语言
  • php的语法和c语言有哪些区别
    这篇文章将为大家详细讲解有关php的语法和c语言有哪些区别,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。语法上的区别:1、PHP使用define函数来定义常量,c语言不是;2、php的所有的变量名前都要带...
    99+
    2023-06-14
  • C语言中break与continue的用法和区别详解
    目录前言一、循环体中两者的作用1.while循环2.for循环3.do while循环二、switch语句总结前言 本文将通过简单的实例来详细分析在C语言中break语句和conti...
    99+
    2022-11-12
  • 详解C语言中typedef和#define的用法与区别
    目录一、typedef的用法二、#define的用法三、typedef与#define的区别四、typedef的用途用途一用途二用途三用途四五、typedef的陷阱陷阱一陷阱二一、t...
    99+
    2022-11-13
  • MySQL语法中=与:=有什么区别
    这篇文章主要介绍“MySQL语法中=与:=有什么区别”,在日常操作中,相信很多人在MySQL语法中=与:=有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL语...
    99+
    2022-10-18
  • C++与C语言的区别是什么
    这篇“C++与C语言的区别是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C++与C语言的区别是什么”文章吧。1. 结构...
    99+
    2023-06-29
  • C++语言与其他语言有什么区别
    本篇内容主要讲解“C++语言与其他语言有什么区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++语言与其他语言有什么区别”吧!本文着重进行对C++语言来说,在语法上要简单得多,因此初学者很容...
    99+
    2023-06-17
  • c语言与go语言的区别有哪些
    小编给大家分享一下c语言与go语言的区别有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别:1、C语言源文件的扩展名是“.h”和“.c”,Go语言源文件的扩展名是“.go”。2、C语言中通过文件来管理代码,Go语言中...
    99+
    2023-06-06
  • Go与PHP的语法有什么区别
    这篇文章给大家分享的是有关Go与PHP的语法有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。概述Go 是由 Google 设计的一门静态类型的编译型语言。它有点类似于 C,但是它包含了更多的优点,比如垃圾...
    99+
    2023-06-15
  • golang与C语言有什么区别
    golang与C语言的区别:1、golang是一门面向对象的编程语言,而C语言是一门面向过程的编程语言;2、golang通过包来管理代码,而C语言通过文件来管理代码;3、golang中一共有25个关键字,而C语言中一共有32个关键字;4、占...
    99+
    2023-07-10
  • C语言malloc与calloc区别详解
    目录区别用法malloc用法calloc用法区别 开门见山,malloc与calloc在内存分配时,前者分配一整块,后者分配n块,并且后者在分配时会将内存置为0,前者不会内存里是垃圾...
    99+
    2023-01-13
    C语言 malloc calloc C语言 malloc C语言 calloc
  • C++与C语言的区别你知道吗
    目录1.结构体区别1.1.类型上不再需要struct关键字,直接用结构体名即可1.2.C++结构体中允许函数存在2.动态内存申请C语言的动态内存申请C++的动态申请3.内存池4.st...
    99+
    2022-11-13
  • php和java语法上有什么区别
    这篇文章给大家分享的是有关php和java语法上有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。区别:1、PHP支持“//”、“#”和“”注释方式,java支持“//”、“”和“”注释方式。2、java中...
    99+
    2023-06-15
  • C++与C语言常用的语法对比
    目录前言1.头文件2.结构体struct3.动态数组的创建与删除4.函数顺序问题5.类(class)前言 本人在校学习的第一门语言是C++,由于操作系统这门课程实验的需要,要求在li...
    99+
    2022-11-13
  • Access与sql server语法的区别是什么
    今天就跟大家聊聊有关Access与sql server语法的区别是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。日期分隔符号  access:英...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作