Curso Java. Serialización II. SerialVersionUID. Vídeo 158

preview_player
Показать описание
Continuamos avanzando en el tema de la serialización viendo cómo solucionar un posible cambio de versiones utilizando la constantre de clase serialVersionUID.

Рекомендации по теме
Комментарии
Автор

💥💥💥 Siempre seguiré subiendo cursos gratuitos por aquí. Gracias a todos por seguirme. 💥💥💥

pildorasinformaticas
Автор

Soy programador Java con un nivel intermedio y la verdad es que en pleno 2024 me ha encantado la explicación que has dado. Siempre había pasado por alto el significado del valor en serialVersionUID. Muchas gracias, saludos desde Colombia.

luisstivenarteagasolano
Автор

Muchas gracias por el contenido, como siempre atento a todos tus cursos impartidos por que explicas muy bien, muy claro.

EstudioDocumentales
Автор

Sencillamente una "Magistral", que claridad y faclilidad para explicar, mil gracias.

tinybigstore
Автор

No puede haber una explicación mas clara para el serialVersionUID como la que acaba de hacer el maestro Juan Diaz!! Gracias!!!

harrisonmartinez
Автор

wow 2018 que curso mas espectacular.Gracias desde Nicaragua.

kevinhernandez
Автор

Cualquier pesimista al ver q el video tarda casi 24 minutos y la aplicación de lo aprendido se hace en tan solo una línea de código (2 en su defecto al haber 2 clases q implementan la interfaz serializable)fácilmente daría un no me gusta; al ver el video 2 veces y quedando claro el contenido del mismo, es en donde me doy cuenta de ese gran Don de enseñanza q tienes, como siempre simplemente GRACIAS Juán por sus excelentes videos y la dedicación y empeño q coloca en todos y cada uno

oscarperez-kpqd
Автор

Comparto un modo de renombrar todas las variables del mismo nombre que he encontrado por si a alguien le puede ser de ayuda. Por ejemplo si queremos modificar el nombre de la variables "sueldo", botón derecho sobre la variable ---> Refactor --> Rename... Escribimos el nuevo nombre y validamos con Enter. Un saludo

andresg.
Автор

Muchisimas gracias, en verdad quisiera que mi profe se tomara el tiempo que tu haces para explicarnos, me has ayudado mucho y logro comprender muchisimo mejor que estoy haciendo en clases <3

Maria-fdfp
Автор

ya regrese despues de estudiar criptomonedas hoy a continuar con mi estudio de programacion
gracias profe excelente curso

Darkness_
Автор

por fin se que era ese codigo del serialVersionUID jajaja un crack el profe

max
Автор

Buen video profesor, magnífico como siempre en todas sus explicaciones, yo no sabía nada de que se podía guardar objetos y todo eso y yo también me estaba preguntando del mensaje de Eclipse sobre *SerialVersionUID* y también hice un programa, practicando lo aprendido en video anteriores, donde un JOptionPane te pregunta 'que quieres hacer' y elije una de sus opciones que son; "guardar" y "cargar", en "guardar" introduces el mensaje que quiere que se guarde y también poner un nombre al archivo y el programa añade la extensión ".dat" por defecto, y se guarda en la dirección que se encuentra el programa, y en la opción "cargar" lo que hace es que te pregunta cual es el nombre del archivo que pusiste y por defecto pone la extensión ".dat" y muestra el mensaje que se introdujo. Muchas gracias por hacer este curso de Java que yo lo aprecio bastante. Y un Saludo!! :)

Codigo:

import java.awt.HeadlessException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

import javax.swing.JOptionPane;

public class Prueba {

public static void main(String[] args) {
String[] valores = new String[] {"Guardar", "Cargar"};

String seleccionada = (String) JOptionPane.showInputDialog(null, "¿Que quieres hacer?", "Elije una opcion",
1, null, valores, valores[0]);

{
Texto textoGuardar = new cualquier mensaje"));

ObjectOutputStream salida = null;
try {
salida = new ObjectOutputStream(new FileOutputStream(
new quieres llamar el archivo?"))+".dat")));


JOptionPane.showMessageDialog(null, "El texto fue guardado");

salida.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
salida.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else {
ObjectInputStream entrada = null;
try {
entrada = new ObjectInputStream(new FileInputStream(
new era el nombre del archivo?"))+".dat")));

try {
Texto texto_obtenido = (Texto) entrada.readObject();

JOptionPane.showMessageDialog(null, texto_obtenido);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

} catch (HeadlessException | IOException e) {
e.printStackTrace();
}finally {
try {
entrada.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}

// La clase que voy a guardar con el texto

class Texto implements Serializable {

private String texto;

public Texto(String texto) {
this.texto = texto;
}

@Override
public String toString() {
return texto;
}

}

poku
Автор

Dos aspectos interesantes que me gustaría comentar:

La propiedad por la que los más leves cambios en los inputs recibidos por funciones SHA arrojan cadenas criptográficas completamente diferentes es muy característico (y deseable) de este tipo de algoritmos y recibe el nombre de "efecto avalancha". Tema apasionante para los que sintáis curiosidad por la ciberseguridad y criptografía.

En el minuto 18:40 del vídeo, el profesor olvida comentar que el serialVersionUID común entre emisor-receptor ha permitido la lectura del objeto serializado sin arrojar excepciones, verdad, pero el output en consola muestra el comportamiento anómalo que naturalmente esperaríamos de dos versiones del mismo programa con nombres de variables no coincidentes. Este es un ejemplo muy elocuente de por qué un estricto control de versiones es una práctica recomendable.

alejandro.m.gonzalez
Автор

Caray, no tenía ni idea de que era eso, al menos ahora tengo un concepto, no tan claro, pero algo es algo.

lilydelacruz
Автор

gracias por todo tu trabajo eres increíble!!!

pinguinauta
Автор

muy buen vídeo profesor...da la sensación que el SerialVersionUID de un software tal ves sirva como sello también para registrar una aplicación como derecho de autor tal ves.

seba
Автор

Excelentes videos. Entendí. No me queda muy claro cuál es el sentido de la serialización, si es enviar información o datos entre un emisor y un receptor.

DBermudez
Автор

No entendí una cosa. Si el emisor cambia "sueldo" a "sueldos", y ambos tienen el serialVersionUID en, por ejemplo "1L", y el receptor tiene la versión antigua, o sea tiene la variable "sueldo" y no "sueldos", qué sucede cuando se le envía el archivo modificado? Se le actualiza el nombre de la variable "sueldo" a "sueldos", o aparecerá que hay errores de sintaxis?

ivandaleforroquierocomenta
Автор

16:13 me ha hecho gracia lo del badoo, pero cuando he buscado lo que es vivastreet he flipado jajajja al profe le van las putillas, jajja que pillada

javierolivareszaragoza
Автор

Hola! Muy bien explicado el concepto, pero me ha quedado una duda.
Supongamos que somos una empresa que usa un programa desarrollado por nosotros mismos para llevar el inventario (por poner un ejemplo) y trabajamos durante mucho tiempo con el programa, generando muchos archivos serializados.
Supongamos que se realiza una actualización al programa. Por lo que hemos comentado del serialVersionUID, los programas son incompatibles. ¿La empresa pierde sus datos?
En el video se menciona establecer un valor constante para el serialVersion, pero eso no soluciona el problema realmente, sino que posibilita que los campos no afectados por la actualización se puedan leer, ¿no? Es lo que deduzco al ver que después de actualizar en el video, los saldos leídos están a 0 y no al valor que tenían antes.
Muchas gracias de antemano y un saludo.

joframontesdeoca
welcome to shbcf.ru