Java和C语言中基础概念中的区别有哪些?
- 标识符
- 数据类型
- 运算符
- 加号
- %号
- & 和 |
- 关系表达式
- 函数声明
- 代码规范
- 数组
以下是Java和C语言在一些基础概念中的区别(不包含面向对象等的高级知识)
标识符
在Java中,标识符可以由数字、字母和下划线及美元符号组成,C语言中没有美元符号。
数据类型
Java的数据类型有四类八种,分别是
整型家族:byte, short, int, long
字符型:char
布尔类型: boolean
浮点型:float, double.
其中,在C语言中,没有byte 和 boolean类型,且C语言中 char类型的字节数为1。
在Java中,没有C语言中的 long long 或 long double 这种类型。
在Java中,整数类型和小数类型的取值范围大小关系: double > float > long > int > short > byte。
Java比C语言对数据的存储要求更严格, 只允许范围大的存范围小的 或者 一样类型的,而C语言会自动进行强制类型转换,Java更加严谨
在Java中,float类型的数据必须后边加上F或f,long类型的数据需要在后面加上L或l,一般都写的是大写的F和L,防止与数字1混淆。
这里会报错的原因就是 3.14默认是double类型的,而变量f时float类型的。
所以得在3.14后加上F,代表他是 f 类型的。
运算符
加号
在Java中,加号还可以用于字符串的拼接,而C语言不可以。
当加号左右的两边有一个字符串时,就会拼接起来形成一个新的字符串,下面来举几个例子。
结果打印 a = 10
结果打印 11AAA。
%号
C语言中 %运算符只能是 整数与整数之间进行取余,而在Java中,可以是小数。
不过一般都是对整数取余数。
& 和 |
在C语言中,&是按位与,|是按位或,只能对整型使用,其中的位指的是二进制位。
而在Java中,除了是按位与和按位或的功能外,它们还有一种功能,就是可以当做不会发生短路的&& 和 ||。
无论是Java中还是C语言,&& 和||都会发生短路现象。
而 java中的 & 和 | 如果当作逻辑与和逻辑或使用时 是不会发生短路现象的。
在Java中,没有C语言当中的&(取地址)符号,更不会有 与之对应的 * (解引用)符号。
因为在Java中,没有指针变量,但是会有隐藏的地址。
关系表达式
在Java中,所有关系表达式的返回值均为 布尔类型的值,不是true就是false,而在C语言中,为真返回1,为假返回0。
在Java中,所有需要判断的地方,比如if for循环 while循环当中的判断部分 均只能接受布尔类型的值。
1为整型,不是布尔类型的,所以idea会直接报错。
而在C语言中,完完全全可以。
for循环和while就不举例子了。
函数声明
Java当中不存在方法的声明,函数写上边下边都是一样的。
C语言写在下边时,就必须函数声明
Java则没有函数声明这一说法。
代码规范
C语言习惯左大括号在下面,而Java的左大括号习惯在上一行。
数组
在Java当中,习惯将 [] 中括号跟数组当中的元素类型放在一起,而C语言不同
完