gpt4 book ai didi

java - 原始值的强制转换或数据类型转换

转载 作者:行者123 更新时间:2023-11-30 02:51:30 25 4
gpt4 key购买 nike

a) 如果我用 java 写这样的东西

short a = 15
short b = 3;
short c = a * b;//will not compile

I know it will not compile because short values are automatically
promoted to int with the resulting value of type int so this will compile:

int d=a*b ; //compile

B)如果我进行长数字的乘法,例如:

long a=15;
long b=3;
long c=a*b;//will compile
int d=a*b;//will not compile

我假设 long 值不会提升为 int 因为int 更小,而且当我写

长a=15;

Java 会将文字解释为 int,因为赋值中没有带有 15 的“l”,如果 java 将其解释为 int,为什么不能将其乘以解释为 int 数据类型

int d=a*b; 

为什么会出现错误?

在对 long 变量进行算术运算时,java 是否不考虑 int 值?

为什么java允许long a=15;当我无法将其作为 int 进行任何操作时,将其解释为 int 。

最佳答案

这是由于java是向上转换而不是向下转换的。它会通过增加空间来转换为更大的东西,但是通过减少空间,你可能会丢失数据,因此java不会这样做。它会将你的小数字(例如 15)放入 long 中,但如果你永远不会填充 long 使用的空间,那么这样做会浪费内存。

关于java - 原始值的强制转换或数据类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38514243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com