在基础语法中Java与c++有哪些不同?(对于学过c++转Java必看)

举报
秋名山码民 发表于 2022/04/21 08:11:24 2022/04/21
【摘要】 「作者主页」:秋名山码民「作者简介」:阿里云博客专家、华为云享专家、全栈领域新星创作者,某不知名大学大一在读学习Java3个月及学习c++2年后的感受参考文献:《C++PrimerPlus》《java核心技术卷1》 数据类型Java和c++都是强数据类型的语言,但是在Java中整形的范围与运行Java代码的机器没有关系,解决了软件从应该平台移植到另外一个平台的问题,与之相反c++会根据不同的...

「作者主页」:秋名山码民
「作者简介」:阿里云博客专家、华为云享专家、全栈领域新星创作者,某不知名大学大一在读
学习Java3个月及学习c++2年后的感受
参考文献:《C++PrimerPlus》《java核心技术卷1》

在这里插入图片描述

数据类型

Java和c++都是强数据类型的语言,但是在Java中整形的范围与运行Java代码的机器没有关系,解决了软件从应该平台移植到另外一个平台的问题,与之相反c++会根据不同的处理器选择最为高效的整形,会导致某个c程序在32位处理器上运行的好好的,然后在16位处理器上出现问题,范围在c和c++中,int和long等类型的大小与目标平台有关,例如,long在32位上是4字节,在64位上则为8字节,注意:Java中没有然后无符号形式的int,long,short,byte类型

boolean类型

boolean类型在Java中只有俩个固定值:false和true,整形与布尔型不能进行相互转换
在c++中,数值,指针都可以替代bool值,但在Java中是不允许的

if(x=0){
//java中错误,原因就是x=0不能替换为boolean类型
}

不要在boolean类型中与任何数值类型强制转换为另一种类型

变量和常量

java10中对于局部变量可以根据变量的初始值来推断出它的数据类型,即是不需要声明变量类型

c和c++区分变量的声明和定义

int i = 3;//定义

extern int i;//声明

而在Java中不区分变量的声明和定义

c++中用const来定义一个常量
而Java中const是保留关键字但是并没有使用,使用final来定义常量

位运算

<<和>>运算符,在Java中没有扩展符合位,但是在c++中不能保证>>是完成算术移位,还是逻辑移位,这意味着c++中的>>运算符对于负数生成的结果可能依赖于具体的实现,而Java则消除了这种不确定性

字符串

在字符串方面的话,用的很舒服,基本与c++类似,值得注意的是c++中的字符串可以修改,可以修改字符串中的单个字符

比较方面:
对于Java没有重载==号,这个运算符只能确定俩个字符串是否存放在同一个位置,但是有可能将内容相同的字符串副本放置在不同的位置上
C++中将 == 重载,可以看成等价于Java的equals

输入和输出

Java5中沿用了c函数库中的printf方法

double x = 3.333333;
System.out.printf("%.2f",x);//保留2位小数

数组

Java数组与堆栈上的c++数组有很大的不同,但基本上与在堆上分配的数组指针一样
即是 int[] a = new int[100];//java不同于int a[100];//C++而等同于int* a = new int[100];//C++
也导致了Java中的【】运算符被预定义为会完成越级检查,而且没有指针运算,不能通过a+1来得到数组中的下一个元素

最后

如果本文对你有帮助,还请不要吝啬手中的三连,你的每一次三连,就是对博主最大的支持!
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。