«char», «int», «byte», «short» или «long» - это всего лишь названия для вещей, которые объединяют несколько битов.Вместе они известны как целочисленные типы .
Аналогично, все это буквальные значения, которые Java знает, как представлять в виде набора битов: 0, '0', 1, '0', -1, 2147483647, 'a', 'A', '~', ... Вы получите картинку.И из вашего вопроса я почти уверен, что вы уже знаете, что 0 и «0» - это не одно и то же.целочисленные типы, хотя иногда вам нужно заставить их соответствовать (например, byte b = (byte) i
, где i
- int
), и вы можете потерять некоторые биты, которые составляют значения, когда вы их форсируете.
Так что да, все перечисленные вами операции действительны, потому что вы просто комбинируете разные целочисленные литералы по-разному и присваиваете их целочисленному типу.
PS Если вы новичок в Java, донане пытайтесь читать слишком много по этой ссылке "целых типов" сразу, иначе ваша голова может взорваться.