Все вышеприведенные ответы верны, просто хочу добавить, что это все о GIGO.
double answer = 364/365;
в вышеприведенном коде двойной тип подразумевает только ответ переменной, а арифметическое выражение имеет оба операнда типа int. Таким образом, выходные данные арифметического выражения также имеют тип int, который затем через автоматическое приведение к типу double дает результат 0.0, как показано в следующих примерах:
double ans = 4.0/0;
вышеприведенный код будет выдавать бесконечность, поскольку один из операндов является числом с плавающей точкой, поэтому при автоматическом приведении типа 0 преобразуется в 0,0, а результат соответствует типу данных с плавающей точкой.
тогда
double ans = 4/0;
выдаст исключение java.lang.ArithmeticException: / с нулевым исключением во время выполнения, поскольку оба операнда имеют тип данных int и, следовательно, выходные данные соответствуют типу данных Integer, независимо от того, является ли тип переменной данных типа double двойным.