Bienvenido a Java Mexico

Java México es una comunidad de desarrolladores mexicanos en el lenguaje Java.

Este sitio es colaborativo, automáticamente al registrarte obtienes un Blog para compartir tus conocimientos o información acerca del lenguaje. Antes de publicar en tu blog o los foros por favor lee los lineamientos de publicación.

Para dudas y problemas con respecto al lenguaje Java puedes visitar los Foros de Discusión.

comportamiento erratico

estoy revisando el siguiente codigo que es un socket que algunas veces se comporta de manera erratica, como que la trama que le llega de respuesta la corta no llega completa ..

    public String enviaData(String mensaje, int timeOut) throws IOException {
   
        String msn;
        int i;
        int longitud = mensaje.length();
        Socket socket = null;        
        try {
           
            socket = new Socket(ip, puerto);
            socket.setSoTimeout(timeOut);
            OutputStream os = socket.getOutputStream();
            InputStream is = socket.getInputStream();
            byte[] sbytes = converByte(mensaje, longitud);
            os.write(sbytes);
   
            int lenInput = 0;
            long time = System.currentTimeMillis() + timeOut;            
            try{              
            while (System.currentTimeMillis() < time) {
               
           
                lenInput = is.available();
                if (lenInput > 0) {
                    byte[] textoBytes = new byte[lenInput];
                    for (i = 0; i < lenInput; i++) {
                        textoBytes[i] = (byte) is.read();

MapDB: Base de Datos Java para trabajar directamente con colecciones

MapDB es una base de datos Java que permite trabajar directamente con el Java Collection API.
Sus principales características son:
· Concurrente
· Rápida
· ACID
· Flexible
· Personalizable
· Consultas SQL-like
· Poco espacio en disco
Veamos un ejemplo de uso:

MapDB es muy configurable, y puede arrancarse con o sin transacciones, en memoria, en fichero, con encriptado,…

Java Champion y Oracle ACE

Automatizar generación de XML con JAXB

Hace poco en mi trabajo tenía que realizar ciertos artefactos que se empaquetan en un archivo jar, el cual incluye un XML, despues de hacer los primeros 2 o 3 note que estaba cayendo en la mala practica de copiar y pegar la estructura del XML de mi viejo artefacto y en ocasiones por rapidez no cambiaba el nombre, tipo de dato o argumento de alguna etiqueta y cuando desplegaba el artefacto pues fallaba, un compañero de trabajo me mencionó que definiera el xsd del archivo, y luego creará los objetos mapeados con xjc (imagino que significa xml java compiler, no estoy muy seguro de ello), y despues diseñara un standalone que preguntara por los valores de los atributos que variaran, y pues seguí las indicaciones realizando los siguientes pasos:

1.- Identifique los elementos que varian que fueron:

Valor del tag autor, email, creationDate, description e implementation.
Valor de los atributos type y length del tag Attribute.
Valor del atributo name del tag Plugin.

<--Ejemplo de un XML de mi artefacto>
<Plugin name="MyPlugin" type="Authentication">
        <autor>Unknown<autor>
        <email>someone@domain</email>
        <creationDate>2015-09-03</creationDate>

The magic number 0xCAFEBABE

Hace poco me entere de la existencia de un número mágico que sirve para identificar archivos o protocolos, para el caso de Java sirve para identificar los formatos de los archivos .class, dicho número se puede observar al abrir el archivo .class con un editor hexadecimal y se podra observar algo asi:

Se dice que el propio James Gosling explico el origen de este número mágico:

Libros Java Guías Ayudas

Me gustaría que pudieran compartir libros , foros ejercicios prácticos para mejorar en este lenguaje
Asi como cual seria la mejor manera de utilizar todos en lo que a java respecta

Actualizar los datos guardados en una base de datos, desde un formulario JAVA.

Pool metodospool = new Pool();
   

public void Actualizar(String nombres, String apellidos, String email, String celular,
                      String direccion, String ciudad, String idcontacto){

int confirmar = JOptionPane.showConfirmDialog(null, "¿Desea modificar los datos actuales?");

if(confirmar == JOptionPane.YES_OPTION){

    Connection conexion = null;
   
    try {
   
        conexion = metodospool.dataSource.getConnection();
       
        String Ssql = "UPDATE contacto SET nombres=?, apellidos=?, email=?, celular=?, direccion=?, ciudad=? "
                    + "WHERE id_contacto=?";
       
        PreparedStatement prest = conexion.prepareStatement(Ssql);
       
        prest.setString(1, nombres);
        prest.setString(2, apellidos);
        prest.setString(3, email);
        prest.setString(4, celular);
        prest.setString(5, direccion);
        prest.setString(6, ciudad);
        prest.setString(7, idcontacto);
       
        if(prest.executeUpdate() > 0){
       
            JOptionPane.showMessageDialog(null, "Los datos han sido modificados con éxito", "Operación Exitosa",

Áreas de oportunidad que tiene una persona que esta buscando empleo por primera vez.

Saludos:

A los gerentes, líderes de TI o personas relacionadas con recursos humanos, ¿cuáles son las áreas de oportunidad que tiene una persona que esta buscando empleo por primera vez en el área de desarrollo de software?, es decir ¿que áreas necesita desarrollar para ser competitivo?

Les agradecería mucho su opinión.

Humor negro

Un poco fuerte pero tomenlo con humor.

Distribuir contenido