Tutorial de uso de memoria en Java y Garbage Collection

  Рет қаралды 42,289

Platzi

Platzi

Күн бұрын

Пікірлер: 106
@pauloapptech5038
@pauloapptech5038 2 жыл бұрын
Curioseando en la documentación, he visto que el método finalize() de la clase Object ya está @Deprecated desde Java 9. Excelente la explicacón de la teacher Ann Code!
@jangeldev
@jangeldev 9 жыл бұрын
Con una voz tan dulce así si provoca escuchar una clase
@kashchance3980
@kashchance3980 3 жыл бұрын
pro trick : you can watch series at Flixzone. Me and my gf have been using it for watching loads of movies during the lockdown.
@caspiandamari1046
@caspiandamari1046 3 жыл бұрын
@Kash Chance Definitely, I have been using flixzone} for since november myself =)
@ivanguzman1304
@ivanguzman1304 2 жыл бұрын
Muchas gracias por tu explicación. Me ayudo de mucho.
@robertoivanpinedahernandez6784
@robertoivanpinedahernandez6784 6 жыл бұрын
Gracias, muy buena explicación y entendible. Buenos ejemplos, felicidades. Una pregunta, si sobre escribo el método finalize de mi objeto, puedo hacer el llamado de ese método cuando deje de utilizar ese objeto??
@edgardodamianalvarez6289
@edgardodamianalvarez6289 9 жыл бұрын
Corrijo lo que explica Anahí, no es apunta a...., el lenguaje Java no utiliza punteros como C o C++, se habla de referencia o no referencia como cuando dice promediando el video, y el garbage collector es aleatorio cuando entra en funcionamiento, las últimas versiones del Lenguaje han mejorado mucho el tema de la administración de memoria cerrando conexiones por nosotros mismos, despreocupando al programador de esta tarea, disminuyendo las lineas de código de tu programa y el famoso boilerplate (codigo repetitivo y/o spaguetti).
@edgardodamianalvarez6289
@edgardodamianalvarez6289 9 жыл бұрын
De nada, Anahí!!!
@courezprogramacion8023
@courezprogramacion8023 4 жыл бұрын
Disculpa. Podrias explicarme la diferencia entre una referencia y un puntero? Pense que eran los mismo. Muchas gracias de antemano.
@edgardodamianalvarez6289
@edgardodamianalvarez6289 4 жыл бұрын
@@courezprogramacion8023 puntero puede apuntar a null, referencia no, siempre have referencia a un objeto, en Java es asi, en c o c++ confuende por que siempre habla de apunta a null, gracias
@courezprogramacion8023
@courezprogramacion8023 4 жыл бұрын
@@edgardodamianalvarez6289 muchas gracias por tu ayuda😁
@edgardodamianalvarez6289
@edgardodamianalvarez6289 4 жыл бұрын
@@courezprogramacion8023 de nada
@justinobanos7537
@justinobanos7537 2 жыл бұрын
¿Pasa lo mismo con las variables que no son tipo primitivos como Integer , String , etc(que pasan el valor y no la referencia)?
@JaminFernandez
@JaminFernandez 9 жыл бұрын
Que interesante .... esto me despertó un poco mas la curiosidad sobre muchas cosas. Como se resolverán esto mismo con otros lenguajes como Python o Ruby? Empezare a buscar y a leer ;) Gracias por el video
@neossoftware
@neossoftware 7 жыл бұрын
El recolector de basura no se lo lleva "abruptamente" el recolector de basura actua cuando no esta referenciado el objeto, creo que le faltan bases de Java a la instructora.
@flaviog12
@flaviog12 6 жыл бұрын
Mario Hidalgo tiene demasiados errores para ser una instructora, ojalá esos cursos no sean de pago
@lacuevadelinsecto
@lacuevadelinsecto 6 жыл бұрын
Digo exactamente eso varias veces.
@davidpower2054
@davidpower2054 5 жыл бұрын
no importa esta divina esa profesora
@samueldiaz8171
@samueldiaz8171 5 жыл бұрын
creo que desde el inicio mensiono a los objetos no referenciados,
@NicolasAlbamurillo
@NicolasAlbamurillo 4 жыл бұрын
Pero si eso dijo, ademas en resumen dijo que es abruptamente cuando no esta implementado el finalize
@francogarcia2668
@francogarcia2668 4 жыл бұрын
PREGUNTA: Tengo variables estáticas, a las cuales les voy alterando el valor conforme va avanzando el programa,.¿Como funciona el garbage collector con ella (Variables estaticas)?, porque apuntar, la variable apunta siempre a la misma dirección de memoria, pero la variable cambia (Ej, el String) y el lentgh del String va cambiando, el garbage collector limpia todo y vuelve a redefinir el espacio que va a ocupar la variable???
@jhonnyalbertochoquetarqui1736
@jhonnyalbertochoquetarqui1736 Жыл бұрын
me quedo clarisimo gracias.
@resident54321
@resident54321 4 жыл бұрын
Está interesante la explicación pero veo algunos errores que creo podrían ayudar: primeramente es garbage collector porque es un recolector de basura, segundo no escanea toda la memoria de la pc solo la que dimos permiso a la maquina virtual de java que pudiera usar, para sus ejemplos estaría bien explicar la tabla de simbolos y el montículo que creo que es lo que trató de explicar con los controles, un saludo y mucho éxito
@mauroa2826
@mauroa2826 3 жыл бұрын
Hermosa explicación
@ljudevitgaj4855
@ljudevitgaj4855 8 жыл бұрын
Muy bien explicado, gracias
@cuidalareina
@cuidalareina 6 жыл бұрын
Resulta que la mayoría de los que comentan lo hacen como si fueran jueces de cada uno de los tutoriales expuestos, tratando de demostrar que saben mucho mas de lo que el video mismo indica... la pregunta es, si saben tanto y pueden explicar tan bien, porque no inician su propio canal y asi quizas puedan generar ingresos, y hasta hacerles ver al mundo lo "genios" que son, creo que resultaria mas util que esos comentarios mediocres que hacen. Listo lo dije.
@mrtalexjc431
@mrtalexjc431 5 жыл бұрын
Hablas así porque es una chica pero si es hombre no dices nada.
@rodolfor6687
@rodolfor6687 3 жыл бұрын
el garbage collector pasa cuando un ámbito se termina?
@neossoftware
@neossoftware 7 жыл бұрын
Ojo llamar al recolector de basura con la orden System.gc() no significa que lo va a realizar lo puede o no realizar claramente lo indica la API de java docs.oracle.com/javase/7/docs/api/java/lang/System.html#gc() Cuando dice que es util cuando se pone lento el sistema eso no es cierto en la vida real stackoverflow.com/questions/2414105/why-is-it-bad-practice-to-call-system-gc Creo que la instructora es bonita si, sin embargo le faltan muchas bases de programación en Java, ojo chavos si compran el curso no es para tener una cita con ella, es para que aprendan. Un buen recurso gratuito es : docs.oracle.com/javase/tutorial/ Un saludo a todos!!!
@TheDiegoPayne
@TheDiegoPayne 6 жыл бұрын
Ni esta tan bonita.
@cesarluisg78
@cesarluisg78 6 жыл бұрын
Lo dijo bien, que se podía, o no, ejecutar, la máquina virtual de java lo decidiría.
@lacuevadelinsecto
@lacuevadelinsecto 6 жыл бұрын
No prestaste atención. Dijo exactamente eso. Si ya lo sabías, ni hubieras visto el video.
@cristiangs5127
@cristiangs5127 2 жыл бұрын
El método finalize() esta en desuso según la API de java, alguien conoce otra alternativa además de declarar la variable a null para que el limpiador libere el espacio en memoria?
@jammaj5
@jammaj5 5 жыл бұрын
Cuando sigues Platzi y te envian un link recomendate un video :)
@jhonnyjamifernandez447
@jhonnyjamifernandez447 6 жыл бұрын
Una ayuda por aqui porfavor.. public class proyectoController(){ @EJB private ProyectoFacade proyectoFacade //esto es igual a usar NEW } cuando lo llamo desde la pagina index.xhtml; Algo asi Entonces se llama al objeto proyectoController y Pondra en memoria todos los @EJB que tengo declarados? tengo como 60 variables de este tipo y me esta dando un error de memoria java.lang.OutOfMemoryError: Java heap space Muchas gracias....
@Japhethoz
@Japhethoz 4 жыл бұрын
Soy su fan!
@DiegoJaraPalomino
@DiegoJaraPalomino 9 жыл бұрын
Hola! saben si sucede lo mismo con los punteros en C++?
@Malenko2k
@Malenko2k 9 жыл бұрын
+Saint Play El problema con C++ es que no tiene un Garbage Collector, con lo que es responsabilidad del programador liberar la memoria.
@userJorgeCarmine
@userJorgeCarmine 9 жыл бұрын
+Saint Play cuando creas un objeto, la variable que utilizas para referirte a dicho objeto es una variable de referencia, osea es basicamente un puntero, por supuesto, en Java no hay punteros, pero asi es como funcionan las variables de referencia
@DiegoJaraPalomino
@DiegoJaraPalomino 9 жыл бұрын
Si y tmbm en c#
@pablopalma2862
@pablopalma2862 4 жыл бұрын
A no ser que manejes la memoria Stack, si
@jcvgalfonso
@jcvgalfonso 9 жыл бұрын
Gran explicación !!
@dayanasoto3792
@dayanasoto3792 9 жыл бұрын
Gracias Profe =D
@LuisPerez-gr3eo
@LuisPerez-gr3eo 7 жыл бұрын
Eso de que se pasa el apuntador y no el valor, también pasa en c++?
@pablopalma2862
@pablopalma2862 4 жыл бұрын
En C++ tenes la posibilidad de elegir entre ambos
@silvanopineda
@silvanopineda 7 жыл бұрын
Que buena explicación Anahi, sin embargo tengo una pregunta, Cuando haces igual la referencia del objeto a con la del objeto b, la referencia del objeto b desaparece es decir quedaría expuesta a que el garbage collector la eliminara ?
@pablopalma2862
@pablopalma2862 4 жыл бұрын
No, por que son dos variables distintas apuntando a la misma dirección en memoria
@pavulzavala9412
@pavulzavala9412 9 жыл бұрын
corrijanme si me equivoco, segun yo siendo mas preciso, los objetos de java se almacenan en el HEAP, que a su ves este heap esta en la JVM
@pablopalma2862
@pablopalma2862 4 жыл бұрын
Venis de C++?
@pavulzavala9412
@pavulzavala9412 4 жыл бұрын
@@pablopalma2862 no
@luillyfe
@luillyfe 9 жыл бұрын
Me gusto mucho, pero podría ser un poco confuso cuando mencionas que las variables apuntan al valor y no a la referencia, sino explicas que String es un caso especial y la asignación es por referencia.
@EliukBlau
@EliukBlau 9 жыл бұрын
String no es un caso especial. No es un tipo de dato primitivo, es una clase, y como tal tiene referencias de instancia como cualquier objeto. Lo único diferente es que el valor literal de un String se guarda en el pool de Strings, para evitar duplicaciones en la memoria.
@hackeranonimo1145
@hackeranonimo1145 4 жыл бұрын
Amigos podrian decirme como es que se usaria eso o alguna web en donde expliquen a fondo porque lo que le entendi eso de que; creo un objeto y despues lo elimina practicamente, pero de que me sirve eso de crear dos objetos luego para que ambos se eliminen, por ejemplo : Persona persona1= new Persona(); Persona persona2= new Persona(); persona1.setNombre("Juan"); persona2=persona1; persona2.setNombre("Jose"); persona1=null; persona2=null; osea porque simplemente no hacer lo siguiente: persona1.setNombre("Juan"); persona1.setNombre("Jose"); despues eliminarlo si esque ya no lo quiero persona1=null;
@pablopalma2862
@pablopalma2862 4 жыл бұрын
Lo que pasa es que persona1 y persona2 son variables totalmente diferentes pero que apuntan a la misma direccion de memoria. Por lo tanto tendrias que hacer que persona2 = null tambien
@Caldo_D_Gallina
@Caldo_D_Gallina 5 жыл бұрын
Cuando tu declaras una variable u objeto estas reservando un espacio en memoria, cuando tu inicializas la variable u objeto recién apuntas a esa localidad.
@pablopalma2862
@pablopalma2862 4 жыл бұрын
Son como los punteros en C++, solo que en Java no existen los punteros como tal, ya que todo es Puntero en Java.
@rozoneri
@rozoneri 9 жыл бұрын
Copia y referencia,lo aprendí con javascript,un concepto muy pero muy necesario a tener en cuenta.
@melchiah6603
@melchiah6603 8 жыл бұрын
Podrían hacer un video similar para el depurador de java por favor.
@cristianbelacazarramos7803
@cristianbelacazarramos7803 6 жыл бұрын
Gracias por el aporte;
@pariis78
@pariis78 6 жыл бұрын
¿Cómo evitamos que al igualar la persona2 a la persona1, se enlacen las referencias? Es decir, quiero poder igualar a las personas sin que la persona1 se me afecte por la modificación de datos de la persona2. Espero haberme dado a entender jaja
@haroldcampomorales5146
@haroldcampomorales5146 6 жыл бұрын
Ramón París si entendí la pregunta puedes clonarlo, la persona 2 será igual que la persona 1, y si modificas la persona 2 no se modifica la persona 1
@mauriciobelduque8217
@mauriciobelduque8217 8 жыл бұрын
como se llama el tipo de letra del editor de ella
@cesarvazquez1942
@cesarvazquez1942 9 жыл бұрын
para poder explicar ese tema, necesitan saber el correcto funcionamiento de la virtual machine y por lo que veo esa chava no comprende del todo su funcionamiento
@neossoftware
@neossoftware 7 жыл бұрын
Al parecer no esta certificada en Java, digo si esta muy guapa la chica pero hasta ahi.
@robertoivanpinedahernandez6784
@robertoivanpinedahernandez6784 6 жыл бұрын
amigo buenas, puedes decirme donde puedo saber el correcto funcionamiento de la VM?
@hackeranonimo1145
@hackeranonimo1145 4 жыл бұрын
eso mismo pense, creo que para los que recien inician en esto los confunde mas de lo que ya estaban. Amigo podrian decirme como es que se usaria eso o alguna web en donde expliquen a fondo porque lo que le entendi eso de que; creo un objeto y despues lo elimina practicamente, pero de que me sirve eso de crear dos objetos luego para que ambos se eliminen, por ejemplo : Persona persona1= new Persona(); Persona persona2= new Persona(); persona1.setNombre("Juan"); persona2=persona1; persona2.setNombre("Jose"); persona1=null; persona2=null; osea porque simplemente no hacer lo siguiente: persona1.setNombre("Juan"); persona1.setNombre("Jose"); despues eliminarlo si esque ya no lo quiero persona1=null;
@CristianRomero-up1nj
@CristianRomero-up1nj 7 жыл бұрын
wow. keep up the good work
@AlanSolisFlores
@AlanSolisFlores 9 жыл бұрын
Lo mejor es implementar el patrón de diseño singleton, el cual solo nos permite utilizar la misma instancia para n número de objetos.
@Malenko2k
@Malenko2k 9 жыл бұрын
+Alan Solis Eso depende de la responsabilidad del objeto. Siguiendo el ejemplo del video, una clase persona por ejemplo no tendría sentido que implementase el patrón Singleton.
@denisalbertocosivasquez6907
@denisalbertocosivasquez6907 5 жыл бұрын
Maestra programadora
@carloscarballo8148
@carloscarballo8148 8 жыл бұрын
me da risa que diga: ajam, mmju como muletilla xDDD. pero explica fino
@Ivan.visser
@Ivan.visser 8 жыл бұрын
Muy bueno
@jromanz
@jromanz 9 жыл бұрын
No se recomienda sobreescribir el metodo finalize()
@esantiago.gonzalezr
@esantiago.gonzalezr 4 жыл бұрын
Alguna razón para no hacerlo? (pregunta seria)
@pablopalma2862
@pablopalma2862 4 жыл бұрын
@@esantiago.gonzalezr Creo que lo dice por que en la mayoria de los casos es totalmente inecesario ya que el recolector de Java hace esa parte, En cambio en C++ cuando manejas memoria dinamica si tenes que manejar destructores para liberar memoria manualmente.
@ArturoAgudelo
@ArturoAgudelo 9 жыл бұрын
*Collector no Collection, de resto bien
@donparyman
@donparyman 5 жыл бұрын
collection es el acto y collector el actor.
@MikelDavid
@MikelDavid 4 жыл бұрын
Una voz dulce
@carlosavila770
@carlosavila770 9 жыл бұрын
La confianza se nota, pero lo agitado al hablar no es tan favorable, de lo demás excelente..
@rossmelweb931
@rossmelweb931 6 жыл бұрын
con esta linda tutora no pude aprender android, fue fuerta la distraccion
@pablopalma2862
@pablopalma2862 4 жыл бұрын
2 años depues aprendiste algo?
@rossmelweb931
@rossmelweb931 4 жыл бұрын
@@pablopalma2862 Claro , actual ya trabajo , me perfilo para poder trabajar para el extranjero desde mi pais
@dannyfranco4443
@dannyfranco4443 6 жыл бұрын
Genial Gracias
@jesusdavidnicolatoledo7202
@jesusdavidnicolatoledo7202 7 жыл бұрын
Tienes un Curso de Java!!!
@josselinguajala8158
@josselinguajala8158 4 жыл бұрын
Es mi idea o ella se parece mucho a la actriz que interpreta a Regina George en Mean girls?0_o
@_chris_6786
@_chris_6786 4 жыл бұрын
Y qué pasa si utilizo IntelliJ o NetBeans? Ja! La programación no se enseña ni se aprende a golpe de botón del mouse o con click derecho, sino escribiendo.
@LocalGhost_8080
@LocalGhost_8080 5 жыл бұрын
Genial
@netpedrocr
@netpedrocr 8 жыл бұрын
Anahi, estas confundiendo los conceptos de referencia y objeto.
@justdjustd
@justdjustd 7 жыл бұрын
Ничего не понятно :) Но впаривает уверенно, наверное крутышка
@melchiah6603
@melchiah6603 8 жыл бұрын
Para entender esto, o al menos para facilitar te esto, estudien apuntadores en c
@CarlosMollapaza
@CarlosMollapaza 9 жыл бұрын
Es la chica "AJA, MM AJA"
@kairel123
@kairel123 6 жыл бұрын
Garbage collector*
@tonypuga2502
@tonypuga2502 9 жыл бұрын
A ver vengan y digan primer comentario
@tonypuga2502
@tonypuga2502 9 жыл бұрын
Por cierto, "Hola, enfermera :D"
@PipeDevOfficial
@PipeDevOfficial 8 жыл бұрын
ajá :v
@cesarmorales9160
@cesarmorales9160 7 жыл бұрын
si se ponen lentos , pues no programen en java! ("genio")
@neociber24
@neociber24 7 жыл бұрын
Cesar Morales Sería peor, si no pueden manejarlo en java que libera la memoria de manera automática peor sería si lo pueden hacer manual.
@georgea7784
@georgea7784 5 жыл бұрын
Java es de los más rapidos, has oído rumores
@pablopalma2862
@pablopalma2862 4 жыл бұрын
Hoy en día con todo el SUPER PODER de procesamiento de las CPU, ningún lenguaje de programación es lento.
@intmate8694
@intmate8694 6 жыл бұрын
Esta mujer es bellisima
@candangasrodriguito5120
@candangasrodriguito5120 2 жыл бұрын
Que feo que era programar.!! Hacer in click para implementar getter y setters
@GerdSa
@GerdSa Жыл бұрын
para que perder el tiempo escribiendo a mano algo que ya sabes hacerlo ?
@CarlosMollapaza
@CarlosMollapaza 9 жыл бұрын
Que es "CACHITO"
@callejeroabla
@callejeroabla 6 жыл бұрын
con esto acabas de confirmar ,que platzi esta en nada
¿Como funciona la memoria en Java? El uso de Stack y Heap
24:02
Víctor Orozco
Рет қаралды 5 М.
Como funciona el recolector de basura de Java
12:41
Codmind
Рет қаралды 5 М.
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН
The evil clown plays a prank on the angel
00:39
超人夫妇
Рет қаралды 53 МЛН
Quilt Challenge, No Skills, Just Luck#Funnyfamily #Partygames #Funny
00:32
Family Games Media
Рет қаралды 55 МЛН
UPCASTING (Generalización) en Java ☕
16:05
Charly Cimino
Рет қаралды 8 М.
Tutorial de Java y persistencia con JPA y Hibernate
5:43
Platzi
Рет қаралды 82 М.
Hablemos de COBOL
3:54
JohnPunk41
Рет қаралды 3,6 М.
¿Cómo funcionan los hilos en Java?
17:46
SACAViX Tech
Рет қаралды 1,8 М.
Cómo AI cambió la forma de aprender a programar
14:58
Platzi
Рет қаралды 134 М.
Como funciona el Heap y el Stack de Java
14:03
Codmind
Рет қаралды 10 М.
When you have a very capricious child 😂😘👍
00:16
Like Asiya
Рет қаралды 18 МЛН