Java 使用byte、short和char没有意义
我正在学习JAVA OCA认证的书。我在二元运算符一章。这本书提到了以下规则Java 使用byte、short和char没有意义,java,binary,operators,short,type-promotion,Java,Binary,Operators,Short,Type Promotion,我正在学习JAVA OCA认证的书。我在二元运算符一章。这本书提到了以下规则 byte,short和char在使用二进制运算符时将提升为int 因此,目前,如果我定义并初始化一个short或byte类型的变量,它将自动转换为int。 在书中,它说=赋值是一个二进制运算符 使用这些变量有什么意义吗 如何在java中打印这种类型的变量?无论何时定义这些变量,它们都不会转换为int。当它们与二进制运算符(如&运算符)一起使用时,它们将被提升为int。使用以下命令获取对象的类名: variablenam
byte
,short
和char
在使用二进制运算符时将提升为int
因此,目前,如果我定义并初始化一个short或byte类型的变量,它将自动转换为int。
在书中,它说=
赋值是一个二进制运算符
使用这些变量有什么意义吗
如何在java中打印这种类型的变量?无论何时定义这些变量,它们都不会转换为
int
。当它们与二进制运算符(如&
运算符)一起使用时,它们将被提升为int
。使用以下命令获取对象的类名:
variablename.getClass().getName()
给定任何对象的实例,可以调用其
getClass()
方法来获取描述对象类型的Class
对象的实例
使用类
对象,可以轻松打印其类型名称:
Integer number=Integer.valueOf(15);
System.out.println(number.getClass().getName());
可能是重复问题
字节a=-1
未转换为int
。如果使用二进制运算符(或算术运算符),它将升级为int
<代码>字节b=a+(字节)1;//<--int赋值实际上不是一个二进制运算符。这本书要么让人困惑,要么你看错了。@Vin当涉及引用时,请小心编辑。如果OP说一本书上写着“赋值是一个二进制运算符”,那么你真的不应该做出重大改变,比如改为“运算”,除非你知道他在说什么书,也知道上面写的是什么。@ajb我刚刚编辑了这篇文章,删除了“谢谢”。所述编辑已由另一用户完成。如果您认为它与OP的意图相冲突,则可以回滚。