Boa tarde Bruno, vamos analisar o seu código:
if (salario >= 1903.99 || salario <= 2826.65) {
System.out.println("A sua aliquota é de 7,5%");
System.out.println("Seu salario é de " + salario + " e tem que deduzir R$ 142,80");
}
else if (salario >= 2826.66 || salario <= 3751.05) {
System.out.println("A sua aliquota é de 15%");
System.out.println("Seu salario é de " + salario + " e tem que deduzir R$ 354,80");
}
else if (salario >= 3757.06 || salario <= 4664.68) {
System.out.println("A sua aliquota é de 22,5%");
System.out.println("Seu salario é de " + salario + " e tem que deduzir R$ 636,13");
}
Na primeira condição você está dizendo que se o salário for maior ou igual a 1903.99 OU o salário for menor ou igual a 2826.65, ela será executada, o problema é que se o salário for 3000, esse if já será executado e a sua alíquota será 7,5%, pois só pelo fato dele ser maior que 1903.99, essa condição já é ativada porque você usou " || " ao invés de "&&".
Basicamente, se você utilizar "||" você está querendo dizer que se a condição A OU a condição B forem verdadeiras, ela será ativada. Agora se você utilizar "&&" você está pedindo que aquela condição só será executada se AMBAS as condições forem verdadeiras.
Se ficou com alguma dúvida sobre algo que eu disse, fique a vontade para questionar. Espero tê-lo ajudado e tenha uma boa tarde.