Category : General

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!


Una pequeña lista de los puertos mas conocidos

Estos son algunos de los puertos que quizá debas conocer o con los que debes familiarizarte cuando estás comenzando a desarrollar, algunos no se usan tanto, y desde luego se usan muchos mas.  Pero vale la pena conocer aquellos que son por decirlo de alguna manera «populares».


Puerto Descripción
1 TCP Port Service Multiplexer (TCPMUX)
5 Remote Job Entry (RJE)
7 ECHO
18 Message Send Protocol (MSP)
20 FTP — Data
21 FTP — Control
22 SSH Remote Login Protocol
23 Telnet
25 Simple Mail Transfer Protocol (SMTP)
29 MSG ICP
37 Time
42 Host Name Server (Nameserv)
43 WhoIs
49 Login Host Protocol (Login)
53 Domain Name System (DNS)
69 Trivial File Transfer Protocol (TFTP)
70 Gopher Services
79 Finger
80 HTTP
103 X.400 Standard
108 SNA Gateway Access Server
109 POP2
110 POP3
115 Simple File Transfer Protocol (SFTP)
118 SQL Services
119 Newsgroup (NNTP)
137 NetBIOS Name Service
139 NetBIOS Datagram Service
143 Interim Mail Access Protocol (IMAP)
150 NetBIOS Session Service
156 SQL Server
161 SNMP
179 Border Gateway Protocol (BGP)
190 Gateway Access Control Protocol (GACP)
194 Internet Relay Chat (IRC)
197 Directory Location Service (DLS)
389 Lightweight Directory Access Protocol (LDAP)
396 Novell Netware over IP
443 HTTPS
444 Simple Network Paging Protocol (SNPP)
445 Microsoft-DS
458 Apple QuickTime
546 DHCP Client
547 DHCP Server
563 SNEWS
569 MSN
1080 Socks

Desde luego algunos de estos puertos no se usan de forma obligatoria, los de http o https pueden cambiar, sin embargo los navegadores apuntan por default a estos puertos y si son cambiados se deben escribir explicitamente junto con la dirección IP del servicio al que se está accediendo.