Yearly Archives: 2013

Pregunta Java

Tip: Para hacer ordenamiento con el método sort y búsqueda con el método binarySearch se usa el método compateTo del objeto del que está conformado el arreglo. La comparación entre una cadena y un null arroja una excepción.


Me


Pregunta Java

Tip: Durante la lectura de un archivo existe un valor de retorno por default cuando no hay mas elementos.


Desarrollador vs Tester

«Desarrollador vs Tester»

Pregunta Java

Tip: Causa que el thread en curso espere hasta que otro thread invoque el método notify() o el método  notifyAll().   El método wait debe estar contenido en un bloque un bloque synchronized(this){}.


Pregunta Java

Tip: El método System.out.println(cadena); se ejecuta inmediatamente después de invocar inicia() en un Thread diferente.


Pregunta Java

Tip: El  método start() de la clase Thread no recibe argumentos.  El método start comienza la ejecución del thread, la máquina virtual llama al método run() de este thread.


Lo que no es Java

«Java != javascript»


Tips para Comparación de Cadenas en Java

Hay algunas consideraciones que debes tomar en cuenta a la hora hacer comparación de cadenas en Java. Te mostraremos algunos ejemplos. Puede parecer que algunas formas son correctas o incorrectas, pero si sabes como funcionan todas pueden ser útiles dependiendo de las circunstancias.

"cadena" == "cadena"
"cadena" == "cad" + "ena"
"cadena" == "-cadena".substring(1)
new String("cadena").equals("cadena")
new String("cadena") == new String("cadena")
"cadena".equals(variableCadena)

La siguiente expresión compara dos direcciones, el compilador se encarga de hacer que ambos objetos sean el mismo y por lo tanto tengan también la misma dirección.

"cadena" == "cadena"
Da como resultado true.  Porque el operador «==» compara direcciones.


Cuando se concatenan cadenas usando el operador «+» el compilador se encarga de la concatenación y la comparación que resulta es sobre la dirección de dos objetos que en realidad son el mismo, el resultado es igual al del ejemplo anterior.
"cadena" == "cad" + "ena"
La expresión devuelve true.  En tiempo de ejecución se trata del mismo objeto.
Cuando el método substring es usado se genera un objeto diferente (aunque tenga el mismo valor).
"cadena" == "-cadena".substring(1)
La expresión devuelve false.
No solo substring devuelve objetos diferentes, también se pueden obtener objetos diferentes (pero conteniendo los mismos caracteres) cuando la cadena proviene de una fuente externa como un archivo.

En la siguiente expresión el método equals compara el valor de dos objetos String.

new String("cadena").equals("cadena")
El resultado es true.
Sin embargo, no se trata de dos objetos con la misma dirección, si se comparan con el operador «==» el resultado es false.
new String("cadena") == "cadena"
Por la misma razón la siguiente expresión también devuelve false.
new String("cadena") == new String("cadena")

Una forma de comparar cadenas con variables y que evita que el riesgo de lanzar un NullPointerException si la variable a comparar es nula es de la siguiente forma:

"cadena".equals(variableCadena)

Donde el valor  de la variable variableCadena puede asignarse de otra sección de código, si su valor es null, la expresión devolverá false si el valor de la variable variableCadena es «cadena», devolverá true.

 


No importa

¡No importa si funciona en tu máquina! ¡No vamos a enviar tu máquina!