Erros semânticos em java
Video: Como consertar o erro de instalação do java
Muitas pessoas acham que a diferença entre erros semânticos e sintáticos (sintaxe) erros no código Java difícil de entender, mas eles são diferentes. Você pode ver um erro de semântica quando a sintaxe do seu código está correto, mas o uso de código não está correto.
Video: Análisis Semántico
O erro de semântica mais comum é aquele em que o código utiliza uma variável que não é inicializado corretamente. Felizmente, o compilador encontra esse erro semântico particular, na maioria dos casos. Aqui está uma lista de outros erros semânticos comuns que você precisa saber sobre.
Usando um operador que não se aplica: Em algumas situações, você pode tentar usar um operador que não se aplica à variável ou variáveis em questão. Por exemplo, você não pode usar o operador de incremento (++) com uma variável booleana.
Versões mais recentes do Java se tornaram hábeis em encontrar esse erro, mas você ainda pode encontrar dificuldade em descobrir precisamente por isso que um erro ocorre quando você usar o operador errado em alguns casos. Por exemplo, MyObj1 == MyObj2 não irá comparar os dois objetos - o operador de igualdade funciona apenas com tipos primitivos.
Usando tipos incompatíveis: Este tipo de erro de semântica pode ser complicado porque a bandeira compilador alguns erros e não outros. Por exemplo, se você tentar atribuir um flutuador a uma variável int, o compilador exibe uma mensagem de erro.
Por outro lado, se você atribuir um int para uma variável float, o compilador executa uma conversão automática de tipo para o int para torná-lo um float. O problema com este segundo cenário é que ele pode silenciosamente introduzir erros no seu código, especialmente se você realmente tinha a intenção de usar um float.
Perder precisão durante uma conversão: Às vezes você pode aplicar lançando incorretamente. Por exemplo, lançando um float para um int funciona bem, mas com a perda da parte decimal do número.
Esta perda de precisão pode afetar a saída do seu aplicativo de maneiras inesperadas e causar a saída para refletir um valor diferente do que você esperava. O compilador nunca encontra esse tipo de erro porque você especificamente aplicado um elenco para a variável e o compilador espera que você saiba o que está fazendo.
Realizando um elenco impossível: É possível converter entre muitos tipos diferentes em Java. No entanto, não importa o quanto você gostaria de converter um valor booleano em um int, Java não vai deixar você fazer isso. O conceito de realizar o elenco é sintaticamente correto, mas você está aplicando-lo incorretamente, tornando este um erro de semântica que o compilador sempre pega.
Aplicando escopo incorretamente: Qualquer variável declarada dentro de um método tem o mesmo escopo - visibilidade para outras partes da aplicação, por outras palavras - como o método. Conseqüentemente, você não pode declarar uma variável static int privado dentro de um método. Em vez disso, você deve definir a variável global como este:
classe pública PrivateVar {// Esta declaração works.private static int PrivateInt = 3-public static void main (String [] args) {// Esta declaração não work.private static int PrivateInt = 3}}
Estes são os problemas mais comuns que você deve procurar em seu código. Erros de semântica tendem a ser mais difíceis de encontrar do que erros de sintaxe, mas não quase tão duro como erros lógicos.