大学生学完C语言初入JAVA遇到的“新鲜感“

初见打印中String类的各种"新鲜感"

图一

在这里插入图片描述
当System.out.println()的括号中出现字符串时,“+“所起的的是连接作用,如图所示的”101234“与”10abcd“,而a+10则可以直接计算出来。

图二

在这里插入图片描述
图二亦然,str2与str3连接起来输出(非常的方便)

图三

在这里插入图片描述
看到图三你可能会有点疑惑,其实很简单,
第1行的”b="是常量字符串可直接打印,+b的“+”起连接作用,b为10,“c=”同为字符串直接打印,+c的“+”起连接作用,c为20;

第2行和第3行你可能有些疑惑,为什么第三行的结果被计算出来了呢,这是因为我们对b+c套上了();

第4行则是因为b+c在字符串“= b+c”的前面,我们知道代码从左向右进行,故而在碰到a+b时被优先计算了出来;

"0"和"非0"不代表正误

在这里插入图片描述
在这里插入图片描述
由此两张图我们可以看出if后面的d虽然是”1“,但却无法运行,这是因为JAVA中由专门的布尔型变量(true/false),也就是说true不代表”非0“,false也不代表”0“。
不过我们可以在if后面添加语句来代替true/false,如下图:
在这里插入图片描述

常见的类型转换

JAVA中类型转换有两种,即自动类型转换(隐式)和强制类型转换(显式)。
自动类型转换即:代码不需要经过任何处理,在代码编译时,编译器会自动进行处理。特点:数据范围小的转为数据范围大的时会自动进行。

强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。
注意事项:

  1. 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型
  2. 如果需要把范围大的类型赋值给范围小的, 需要强制类型转换, 但是可能精度丢失
  3. 将一个字面值常量进行赋值的时候, Java 会自动针对数字范围进行检查
  4. 强制类型转换不一定能成功,不相干的类型不能互相转换。

类型提升

不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。

1.int与long之间:int会被提升为long

在这里插入图片描述

2. byte与byte的运算

在这里插入图片描述
结论: byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误.

由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于 4 个字节的类型, 会先提升成 int, 再参与计算.

3.类型提升小结

  1. 不同类型的数据混合运算, 范围小的会提升成范围大的.
  2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.

4.int转换为String

在这里插入图片描述
如图即为方法之一。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值