Nivel de conocimientos requerido para comprender el artículo: principiante. Estás en el proceso de estudiar la búsqueda de la sintaxis de Java y más cerca de sus niveles iniciales.
![Los problemas más comunes de quienes empiezan a aprender Java - 1]()
Acabas de empezar a aprender Java. Te bombardean con términos como si salieran de una cornucopia. Estás cargado con toneladas de información técnica y, a veces, te confundes en tres pinos. Créeme, como ya te involucraste en la programación, SIEMPRE SERÁ ASÍ (en este momento, una risa siniestra suena fuera de la pantalla, y una voz tranquila, cortada a mitad de la frase, susurra “Corre... sálvate antes es demasiado tarde..."). Los errores te perseguirán por el resto de tu vida como programador, incluso si eres el mejor desarrollador. Sin embargo, esto no es tan aterrador como parece.
Si acaba de empezar a aprender JavaRush, lo más probable es que ya haya encontrado los problemas planteados en el artículo. En cualquier caso, agradeceríamos comentarios que describan los problemas que tuvo en sus primeros meses de aprendizaje de Java. |
Problema de nivel 0: Confusión con el operador de comparación (==) y el operador de asignación (=).
Este es un problema muy común para quienes cambian de otros lenguajes de programación. Y en general, desde la escuela primaria nos hemos acostumbrado a que
(=)
este es un signo igual. Un truco sencillo que te puede servir para recordar es este: si sabes que solo te importa uno de los valores (le asignas uno al otro) usas un solo
=
signo " ", en caso contrario si te importan todas las variables y valores (los comparas) necesitas un doble
==
signo " ".
Problema: uso del operador de comparación (==) para probar la equivalencia de cadenas
Qué hacer: Recuerde,
no se puede verificar la equivalencia de ningún objeto Java usando(==)
, ya que este operador está diseñado para probar la igualdad de tipos primitivos.
Para objetos necesitas usar el
.equals()
. Y
String
en el lenguaje Java no es más que un objeto (y
immutable
).
Un objeto marcado como Immutable es un objeto cuyo estado no se puede cambiar después de la creación. En Java , esto significa que todos los campos de instancia de una clase están marcados como final primitivos (o también immutable ). |
Problema: concatenación de cadenas en un bucle
¡No intentes esto tú mismo! Cada vez que se concatenan cadenas, se crea un nuevo objeto
String
(como descubrimos anteriormente, las cadenas
immutable
son inmutables). En algún momento se quedará sin memoria o el programa empezará a tardar demasiado en completarse.
Solución. Úselo
StringBuilder
en su lugar
String
al concatenar contenido en un bucle. La clase
StringBuilder
se utiliza cuando necesita realizar muchos cambios en una cadena de caracteres. Y esas líneas, a diferencia de
String
, no lo son
immutable
.
Problema: excepción de puntero nulo
Este tipo de excepción ocurre cuando intentamos usar un puntero nulo
null
cuando en realidad necesitamos un objeto real.
Todos los tipos primitivos tienen valores predeterminados. Entonces, y int es 0 e y boolean es false . El valor predeterminado de cualquier tipo de referencia, es decir, objetos, es null . No es un objeto ni un tipo, es un valor especial. Lo que esencialmente significa "no hay nada aquí". |
Qué hacer: si su código está escrito de tal manera que en algún momento su objeto pueda aceptar el valor
null
, debe agregar una "verificación de
null
", especialmente si no está creando el objeto usted mismo. Recuerde también que es mejor devolver colecciones vacías que un conjunto de
null
's. También sería bueno agregar validación para captadores y definidores.
Problema: por alguna razón el bucle if/ while/for no funciona
if (something.equals («что-то еще»)); {
System.out.println («Почему я не работаю???»);
}
¿Qué pasa aquí? Es simple: un punto y coma extra ha echado a perder la sangre de cientos de miles de programadores novatos en Java. Bueno, no lo necesitas después
if ()
. Desde el punto de vista del lenguaje, dicha sintaxis es bastante aceptable, por lo que el compilador no se quejará de ello. Pero termina la declaración condicional y el código dentro del bloque
{}
nunca cumplirá la condición anterior.
Solución: recuerde la lógica del diseño. El signo “
;
” significa el final de un determinado bloque, pero aquí todo apenas comienza.
Problema: intentar acceder a variables miembro no estáticas desde métodos estáticos (como main)
Solución . Este problema está relacionado con la comprensión del concepto en sí
static
. Si un método está marcado con esta palabra, significa que no necesitamos crear una instancia de la clase para llamar al método principal. Entonces, la solución es tener una buena comprensión de la "estática" y comprender su esencia.
Problema: intentar reinventar la rueda desarrollando bibliotecas y herramientas ya existentes
Solución. En realidad no es un gran problema. Para un principiante, este es un ejercicio más útil. Sin embargo, si desea centrarse en el resultado, por ejemplo, crear una base de datos de suscriptores conveniente, buscar un suscriptor en la guía telefónica es solo uno de los resultados de su aplicación. En este caso, no es necesario escribir un algoritmo de búsqueda binaria. Utilice uno existente (le aseguramos que alguien ya lo escribió antes que usted y está en las bibliotecas estándar). Así que estudie las bibliotecas estándar de Java en la documentación de Oracle. ¡Aprenda a buscar en Google, acostúmbrese a leer Stack Overflow y haga preguntas sobre la
ayuda de JavaRush ! ...Por supuesto, estos no son todos los problemas de los principiantes. ¡Describe el tuyo en los comentarios!
¿Está interesado en leer artículos relacionados con Java? Únase al grupo de desarrolladores de Java .
Hay muchas cosas interesantes aquí.
GO TO FULL VERSION