¿Por qué razón se prefieren los operadores de asignación compuesta aritmética al escribir códigos profesionalmente en Java?

Hay una ventaja interesante para el operador de asignación compuesta en Java que no mucha gente conoce

De acuerdo con las reglas de promoción de tipos en Java, cuando utiliza cualquier tipo de datos más corto que int (byte, short, char, etc.) en una expresión, se promocionará automáticamente a int.

Considere el siguiente ejemplo.

corto a, b;

Caso 1: a = a + b;

Caso 2: a + = b;

Intente ejecutar el caso 1 y obtendrá un error que dice que está intentando asignar un int a short. Esto se debe a que la expresión en el lado derecho se promociona a int, que es un tipo de datos más grande.

Para ejecutar, el primer caso, debe escribir explícitamente el lado derecho de la siguiente manera

a = (corto) (a + b);

Ahora, considere el Caso 2. Esto se ejecutará sin ningún error, ya que el operador restringe la promoción de tipo y mantiene el mismo tipo.

No es que ahorren tanto espacio (ya sea en la fuente o en el código compilado / interpretado) sino que los operadores de asignación compuesta (aumentada) dejan la intención muy clara: estás operando en una variable y solo una variable.

More Interesting

No puedo entender diferentes algoritmos para la programación competitiva debido a las matemáticas ¿qué cursos de matemáticas necesito tomar para ser fuerte en CP?

¿Cómo amplío la importancia de la informática teórica a alguien que ha trabajado en la industria del software toda su vida?

Si un problema np-hard se resuelve en tiempo polinómico, ¿es eso una prueba de que p = np o este problema se ha clasificado incorrectamente?

¿Cómo es ser un experto en matemáticas trabajando como ingeniero de software?

Las matemáticas se han desarrollado mucho en los primeros períodos, pero el desarrollo de la ciencia se retrasa. ¿Por qué?

¿Qué campo en informática es un equilibrio entre matemática y programación?

Cómo aplicar el álgebra abstracta en informática

Cómo tener éxito en informática si no soy demasiado bueno en matemáticas y nunca he hecho física

¿Cómo puede una máquina lógica como una computadora generar un número aleatorio?

¿Qué tan difícil es la transición de las matemáticas aplicadas a la informática?

¿Qué tan rápido es el algoritmo de clasificación altamente paralelo más rápido, teóricamente? Quiero decir, la clasificación puede hacer tantos hilos separados como desee y todos se ejecutan simultáneamente. ¿Mejoraría sobre el límite [math] \ Omega (n \ log n) [/ math] para un solo subproceso?

¿Cuál es la justificación rigurosa de la exactitud de la segunda formulación de la solución DP de corte de varillas en CLRS?

¿Existe alguna arquitectura de computadora basada en el cálculo lambda (en lugar de la máquina de Turing)?

En programación, ¿lo nuevo suele ser mejor?

¿Necesito ser bueno en matemáticas para hacer una programación competitiva?