Java 使用byte、short和char没有意义

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

我正在学习JAVA OCA认证的书。我在二元运算符一章。这本书提到了以下规则

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的意图相冲突,则可以回滚。