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
JAVA、C、C++基本语法的比较
发表于:2017-08-08
作者:网络转载
来源:
 相关文章
聊聊架构设计流程:设计备选方案 Java中的并发编程模型及其应对策略 掌握Java并发编程,避免无处不在的竞态条件 2024年,五个Java开发者应该关注的编程趋势 解除Java反复编译的困扰方法,优化开发效率 改善代码质量,试试这十种方法- 周排行
- 月排行
- 评论排行
-   高效IT:如何利用零代码开发平台快速...
-   一体化好好的,为什么要前后端分离?
-   13种最佳App设计不止有设计美感,更跟...
-   12张图带你彻底理解分布式事务产生的...
-   2023 年 Java 发展趋势
-   Web3应和Web2一样用JavaScript构建
-   表明你的软件应该进行重大更新的11个迹象
-   一体化好好的,为什么要前后端分离?
-   高效IT:如何利用零代码开发平台快速...
-   2024年最具潜力的十大编程语言:引领...
-   Spring Boot是Java程序员的必备技能...
-   2018年最全的App设计资源(工具+模板...
-   智能可穿戴设备的主要测试步骤
-   13种最佳App设计不止有设计美感,更跟...
-   从软件出发,非功能测试思考总结
-   展望2017,谁是网络技术头牌?
-   C/C++单元测试工具Visual Unit 4 介绍
-   国内外最好用的6款Bug跟踪管理系统
-   性能测试指标评估必读
-   百度软件测试方案模板
-   38张史上最全的IT工程师技能图谱
-   C/C++单元测试工具Visual Unit 4 介绍
-   2019年,你会选哪些安全测试工具?
-   十款Web服务器性能压力测试工具
-   软件测试入门指南:周期、模型和文档化
-   记自动化测试成神学习之路
-   软件测试全景图 -最全的思维导图