Java类型转换与注解实战

48、为什么下面的代码无法编译?有哪两种方法可以修复它?public class CompilerError { float x = 0.01; }

代码无法编译的原因是在Java中,小数默认是 double 类型,将 double 类型的值赋给 float 类型的变量需要进行显式类型转换或指定该小数为 float 类型。

两种修复方法:

  1. 进行显式类型转换,将代码改为:
    java float x = (float) 0.01;

  2. 指定该小数为 float 类型,将代码改为:
    java float x = 0.01f;

49、编写一个简短的试验性程序来找出十六进制数 0xDEAD 的十进制值。如何将这个十六进制字面量重新编码为八进制?

要找出 0xDEAD 的十进制值,可使用 Java 代码:

System.out.println(Integer.parseInt("DEAD", 16));

将十六进制 0xDEAD 转换为八进制,可先将其转换为十进制,再转换为八进制,Java 代码为:

System.out.println(Integer.toOctalString(Integer.parseInt("DEAD", 16)));

50、以下哪几行代码能正确编译?为什么?float x = 1; float x = 1.0; float x = (int)1.0;

`float x = 1;` 能正确编译,因为整数 `1` 可以隐式转换为 `float` 类型。

`float x = 1.0;` 不能正确编译,因为 `1.0` 默认是 `double` 类型,将 `double` 赋值给 `float` 可能会损失精度,需要显式转换。

`float x = (int)1.0;` 能正确编译,先将 `1.0` 转换为 `int` 类型(值为 `1`),再隐式转换为 `float` 类型。

51、在 Java 等编程语言中,将浮点数 1.9 强制转换为整数类型(int)后的值是多少?

True

52、Math.rint(1.9) 的值是多少?

2

53、仅使用 << 运算符,将 17 转换为 34。

在二进制中,左移一位相当于乘以 2。17 的二进制表示左移一位可得到 34,代码为 17 << 1

54、~1的十进制值是多少?

-2

55、创建一个从 1 到 100 的数字列表。使用随机数生成器对列表元素进行大约 100 次随机交换。编写一个测试进行合理验证:确保列表大小保持不变,并且每次调用交换器时都有两个数字被交换。

以下是使用 Java 实现的代码示例:

import java.util.ArrayList;
import java.util.List;
import java.util.R
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值