Olá, Vitor.
Tudo bem?
Primeiramente, é importante entender que o operador && é um operador de curto-circuito. Isso significa que se a primeira condição for falsa, a segunda condição não será avaliada. No seu caso, a expressão 1 != 1 é falsa, então a expressão metodo(x) não será avaliada.
No entanto, você mencionou que o parâmetro do método metodo é do tipo String, enquanto você está passando um int. Isso realmente causaria um erro de compilação, mas como a expressão 1 != 1 é falsa, o compilador não tentará avaliar metodo(x), e você não verá esse erro em tempo de execução.
Para resumir:
- A expressão 1 != 1é falsa.
- Devido ao operador de curto-circuito &&, a expressãometodo(x)não será avaliada.
- Se 1 != 1fosse verdadeira, você veria um erro de compilação porquemetodoesperaria umStringe você está passando umint.
Espero ter ajudado e bons estudos!