Por que a divisão do Java está quebrada?

Eu sou um desenvolvedor php experiente apenas começando a aprender Java. Estou seguindo alguns cursos da Lynda no momento e ainda estou nos estágios iniciais. Estou escrevendo exemplos de programas que solicitam informações do usuário e fazem cálculos simples e outras coisas.

Ontem me deparei com esta situação:

double result = 1 / 2;

Com meu cérebro de homem das cavernas, eu pensariaresult == 0.5, mas não, não em Java. Aparentemente1 / 2 == 0.0. Sim, eu sei que se eu mudar um dos operandos para o dobro, o resultado também será o dobro.

Isso me assusta, na verdade. Não posso deixar de pensar que isso está muito quebrado. É muito ingênuo pensar que uma divisão inteira resulta em um inteiro. Eu acho que é raramente esse o caso.

Mas, como o Java é muito utilizado e a busca por 'por que a divisão do java está quebrada?' não produz nenhum resultado, provavelmente estou errado.

Minhas perguntas são:

Por que a divisão se comporta assim?Onde mais posso esperar encontrar um comportamento tão mágico / vodu / inesperado?

questionAnswers(5)

yourAnswerToTheQuestion