JAVA、C、C++基本语法的比较
作者:网络转载 发布时间:[ 2017/3/17 10:20:27 ] 推荐标签:测试开发技术 C++ Java
JAVA的基本数据类型
一、Java中的基本数据类型有四类八种:
1、整数类型:byte、short、int、long
2、浮点类型:float、double
3、字符类型:char
4、布尔类型:boolean
二、Java各整数类型有固定的表数范围和字段长度,不受具体操作系统的影响,保证了Java程序的可移植性,C语言程序编译后没有移植性,同一个变量在不同的系统中占空间不同。
什么是可移植性?
可移植性是针对于不同的操作系统而言的,程序在二进制级别是不可能移植的,在API层面上由于不同操作系统的API不同,也是不可能移植的。
C语言库相当于是一个API层之上的中间层,在这个中间层,封装了操作系统API在其内部的实现细节,C语言提供了代码级别的可移植性。
但是这个移植性不是完全的移植性,因为有些API没有封装,而Windows下和Linux下API是不一样的,所以会出现不识别。
可以通过以下代码在一定程度上解决这个问题:
#ifdef _WINDOWS_
CreateThread(); //windows下线程的创建
#else
Pthread_create(); //Linux下线程的创建
#endif
而且C语言程序移植到另一个平台上之后一定要重新编译才行!
Java的可移植性比C语言好得多,老师在课上讲了,Java编译后产生的代码当前的CPU不能直接运行,这些代码是针对JAVA虚拟机(JVM——JAVAVirtualMachine)的,只能被Java虚拟机运行。所以说任何机器上,只要安装了JAVA虚拟机,能够/才能够运行编译好的Java程序(…….class)。Java的这种可移植性让它在Internet上具有广泛顶点应用前景。
C语言的程序编译完之后是这台机器CPU的目标码,针对于这种CPU,放到另一种CPU上不行了。
三、Java中没有无符号的数,没有C语言中的unsigned。
四、Java整数常量默认为int,实数常量默认为double。
JAVA中,float a=0.1是错的,Java会认为这是把一个双精度的值赋予一个单精度浮点数。这种情况下,java不会为我们自动转换,只会报错提醒。修改的方法有两个:
1. 明确指定0.1是个单精度浮点数,然后赋值给f1. 即 float f1= 0.1f ; //后加f
2. 手动强制转换 float f1 = (float) 0.1; //看着好笨!呵呵
但是byte b = 10;Java是可以的,只有在赋值时,常量不超过表数范围时这样行,如果
byte b = b1 + b2;会出错。
C语言没有这么麻烦。
C语言的基本数据类型
1、有符号整数:int、short、short int、long、long int、long long、long longint
2、无符号整数:unsigned int(等价于unsigned)、unsignedlong、unsigned short
3、实浮点数:float、double、long double
4、字符型:char(C标准允许在关键字char前使用signed和unsigned)
5、C语言用1表示true,用0表示false,C99标准引入了_Bool类型,用于表示布尔型,_Bool只有一位。
C++语言的基本数据类型
C++新增了bool类型,可以bool a =true;
逻辑运算符区别
关于逻辑运算符,Java中有&&(短路与)、&(与)、|(或)、||(短路或),短路与、短路或只要一个不满足,不会再计算第二个,但是这不会影响到终的结果,是说Java不保证逻辑运算符两边的式子都计算了。而&、|把运算符两边的式子都做了判断。
而C语言和C++中的逻辑运算符是&&、||,没有Java这么复杂。
Java与C、C++循环判断语句的比较
常用的语句像if、for、switch、while大家都相同,只是C语言必须先定义变量,把变量定义在外面才行,不会出现for (int i=0;i<n;i++)这种语句;
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11