Я готовлю сертификацию Java 7 и задаю следующий вопрос.
Byte b = 10
компилируется нормально. Похоже, компилятор сужает int 10 до байт 10, а затем боксирует его. Почему Byte b = new Byte(10)
не будет компилироваться? Почему компилятор не может сузить int 10 до байта 10, как это было в первом случае?
Также как получается, что Long l = new Long(10)
компилируется нормально, но Long l = 10
терпит неудачу?
Я не понимаю, как это работает. Может ли кто-нибудь дать четкое объяснение?