Неявные, явные или Оба преобразования типов в Java?

#java #casting #implicit-conversion

Вопрос:

Наш учитель задал нам следующий вопрос:

Какое преобразование типов происходит в следующем операторе?

int a=(int)((5 4)/2.0);

Варианты таковы:

(a) Явные

(b) Подразумеваемый

c) и то, и другое

(d) Нет

Наш учитель говорит, что это и то, и другое, но другой учитель утверждает, что это только явное. Я думаю, что и то и другое тоже, так как (5 4)/2.0 дает двойной результат, который возможен только после неявного преобразования типа 5 4 , значение которого равно 9 (целочисленному значению), чтобы удвоиться для включения операций с двойным значением 2.0 . После этого он явно преобразуется в int .

Я прав?

Комментарии:

1. Да, похоже, и то, и другое.

2. Хорошо, спасибо тебе!

3. когда (5 4) делится на 2,0, к целочисленному операнду применяется расширяющее примитивное преобразование. Видишь docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#jls-5.6