class Calculator { public static void main(String… args) { // Esta invocación de método no compilará // Sí, 1 podría ser float pero la JVM lo crea como double calculate(1.0); } void calculate(float number) {} } Otro error común es pensar que el Double o cualquier otro tipo contenedor sería más adecuado para el método que está recibiendo un double. De hecho, a la JVM le cuesta menos esfuerzo ampliar el contenedor Double a un Object en lugar de desempaquetarlo a un tipo primitivo double. En resumen, cuando se usa directamente en código Java, 1 será int y 1.0 será double. La ampliación es el camino más perezoso para la ejecución, el boxing o unboxing viene a continuación, y la última operación siempre será varargs. El tipo char Como dato curioso, ¿sabías que el tipo char acepta números? Toma este ejemplo: char anyChar = 127;. Sí, es extraño, pero compila. Qué recordar sobre la sobrecarga La sobrecarga es una técnica muy poderosa para escenarios donde necesitas el mismo nombre de método con diferentes parámetros. Es una técnica útil porque tener el nombre correcto en tu código hace una gran diferencia para la legibilidad. En lugar de duplicar el método y agregar desorden a tu código, puedes simplemente sobrecargarlo. Hacer esto mantiene tu código limpio y fácil de leer, y reduce el riesgo de que los métodos duplicados rompan alguna parte del sistema. Qué tener en cuenta: Al sobrecargar un método, la JVM hará el menor esfuerzo posible; este es el orden de la ruta más perezosa para la ejecución: Primero es la ampliación Segundo es el boxing Tercero es Varargs Qué tener en cuenta: Surgirán situaciones complicadas al declarar un número directamente: 1 será int y 1.0 será double. Recuerda también que puedes declarar estos tipos explícitamente usando la sintaxis de 1F o 1f para un float o 1D o 1d para un double. Con esto concluye nuestra introducción al rol de la JVM en la sobrecarga de métodos. Es importante darse cuenta de que la JVM es inherentemente perezosa y siempre seguirá el camino más perezoso hacia la ejecución. ¡Desafío en video! Depuración de sobrecarga de métodos La depuración es una de las formas más fáciles de absorber por completo los conceptos de programación y, al mismo tiempo, mejorar el código. En este video, puede seguirme mientras depuro y explico el desafío de sobrecarga de métodos: Obtenga más información sobre Java