Java 数据类型转换

标签 java

我是一名 C++ 程序员,我正在尝试了解 Java 数据类型。

以下内容是否有问题:

byte:   signed   1 byte
short:  signed   2 bytes
int:    signed   4 bytes
long:   signed   8 bytes
float:           4 bytes
double:          8 bytes
boolean:         ? bytes
char:   unsigned 2 bytes

我可以将任何数据类型转换为更大或等于大小的数据类型,但有 1 个异常(exception),我可以将 char 转换为 4 或 8 字节变量,但无法从其他任何数据类型转换为 char。

问题:在处理涉及 char 数据类型的转换时应用什么样的规则?

最佳答案

隐式数据类型转换规则基于数值范围。 char 数据类型是唯一的无符号整数类型,它不能表示其他数字类型可以表示的负值。例如,-1 可以表示为除 char 之外的任何数字类型,因此不能隐式转换为 char。

不过,您始终可以使用显式类型转换:

char c = (char) -1;

范围参数也是您从 64 位长隐式转换为“较小”32 位 float 的原因。

关于Java 数据类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23371947/

相关文章:

java - 是否有将 F6 作为默认加速器的 Swing 元素?

java - 具有空默认选定项的微调器

java - 单击按钮后向 JPanel 添加按钮

Java Entity Bean 已定义但作为类对象传递

java - Spring Boot 启用全局 CORS 支持问题 : only GET is working, POST、PUT 和 Delete 不起作用

java - 如何验证特定的子类?

java - 我正在尝试为 jolt 变换创建一个 json,但我陷入了嵌套数组格式

java - 如何处理java代码的错误

java - 无法将Spring云配置服务器连接到本地存储库窗口

java - 如何避免以 1Ex 格式存储 Double 值?