The best video on memory management that I have come across. It gives a clear insight on how to write memory efficient code in Java. Will appreciate if you can make a video on streaming and how it works internally. Thanks a ton.
Great explanation. I read that from Java 8 onwards the permgen has been removed. And instead of permgen we have a metaspace which is part of the native memory (which is not a heap memory) which is managed by the OS.
If Test t = new Test() is defined as instance variable rather then defined inside some method like m1 method. In that case I understood that new test() will be creating one object inside the heap. But where the reference will be stored as it is not local variable it is instance variable ? And stack will store local variable and local references as much as i know?
As per my understanding, 1. So at a time, one of the survivor space is always empty ? this correct ? 2. Objects that are survived after many cycles of GC, are moved to the Old generation memory space ?
Question 1: At the time of Major GC, will the JRE do only Major GC ? or JRE will perform its normal tasks and in parallel Major GC will perform Question 2: When you said we don't have to do the Major GC frequently, is there any code we write explicitly for GC? I think JRE itself take care of the Garbage collection.
Hi Naveen, one query on method block. You said one method at a time is given space inside it. But let's say we have a main method which calls another method inside it. How is this scenario handled?
As much as i have a knowledge till now permanent generation is separate memory are and stack is separate memory area . But in this video somewhere at the end you are saying parmanent memory is part of stack memory which is making me confused can you please explain on that ? Is both separate memory area or parmanent is part of stack. ?
Great video. Just had a couple of query : 1. You said permgen is part of stack memory but you displayed them on separate boxes so that was confusing. 2. You said stack size is very less compared to heap memory. but than what about Permgen (or now Metaspace) . Is metaspace is less compared to heap? Thanks!
Hello Sir, I have some questions: So where exactly are new Strings stored (in heap or in stringpool directly)? And where is the stringpool located then (method area of permgen or heap)? There has been some changes in Java 7 and 8 to the permgen section. When does a string automatically move to striingpool provided intern methos is not called. Thanks in advance :)
Hi sir I have one doubt,let say if older generations is also filled with objects and there is not enough space then if GC destroy that object wouldn't it impcact the application as the object is no longer available...sir I am starter guy pardon me if I sound stupid..
if Method block is used one by one by the methods being executed, what will happen if one method1 calls another method2 and method2 returns something to method1, at this time both the methods are executing (pseudo parallelly)?
What if the reference variable is a class instance variable and NOT a method local variable? I believe in that case, the reference variable is stored along with the object of that class and NOT on stack. Please correct me if I'm wrong.
Thanks Naveen for such a informative video. I have a follow up question below:- If we create any Collection I.e Arraylist , Hashmap etc .. where is it created .. in Heap or Stack?Since collections stores the the object references rather than physical objects..How does it manage the whole process?
Hi naveen, thanks for the detailed explanation. I have a question. Where are the instance variables, argument to the constructor, if any object is created inside the constructor, where is the reference var stored? I was asked in an interview and I flunked 😒
very nice video. one question i had, corresponding to each thread is there a separate stack bcoz in case of multiple threads multiple functions may execute simultaneously thus each method need a method block. Though in a particular thread only one method will execute at a time.
Great and deep explanation and information in detail . Better than all other videos from other youtube channels.. Just a small suggestion, if the diagram is ready then this video can be covered in bit less time.Awesome video. Thanks a ton
Great one!! One question to you Naveen. Do you know how to perform test for the product (Web based Game) where DOM element is hidden. I think all the DOM element is under the CANVAS?
Hi Naveen, My Java application reads file and stores to DB.for this it takes 3GB space.but after completion of program GC is not clearing the space, application still takes 3GB space.how to free up the space??
But how we will differetiate which object will go young generation and which object will go old generation..and you didn't tell exactly global variable and local static variable store. Could you please calrify.
we call a method , a method block is created what if we call another method from within a method a new method block will be created?? if yes, then where inside the same method block or outside that method block?
Great Work, I searched so many videos but this is my final stop !! Appreciate the efforts you did to make this :) One doubt : Is permanent generation the part of Stack Memory ???
The best video on memory management that I have come across. It gives a clear insight on how to write memory efficient code in Java.
Will appreciate if you can make a video on streaming and how it works internally.
Thanks a ton.
Best illustrated concept of memory management in java
This video deserves more likes and views 🙏
Great explanation. I read that from Java 8 onwards the permgen has been removed. And instead of permgen we have a metaspace which is part of the native memory (which is not a heap memory) which is managed by the OS.
Best content on memory management..Thanks for sharing!
Thanks glad you liked it. Please refer the latest video on java memory management
Kutha chimpi para dhengaw anna.... Mid nyt kuda chaala interesting ga chusaa
Great video. JVM understanding is important not only for interviews but far beyond interviews.
Thank you provide valuable information about Java memory management 🙏🙏🙏
Very good video....!! Crisp and Clear...!!! Thank you...!!
My first nice video on Memory Management 👌👌
One of the best tutors you are Naveen.
thanks for watching it @Rachana
Very nice👍👍👍 it's really helpful.
Great knowledge you having sir. Thanks for this .
Awesome explanation!!! Terrific!! Thanks a lot!!!
If Test t = new Test() is defined as instance variable rather then defined inside some method like m1 method. In that case I understood that new test() will be creating one object inside the heap. But where the reference will be stored as it is not local variable it is instance variable ? And stack will store local variable and local references as much as i know?
Naveen, i want to add one point, permanent Generation is part of heap memory not stack memory as you said in video(28:03)
Hi Naveen,
as always this is nice explanation!!
Can we say that :Java Stack memory=Class (method) area+Native Method Stack+Variables memory area
Great explanation. Thank you!
Nice explanation, thank you...As for the back ground noise, you could add a faint background music to cancel and soften the high pitch noise....
Hi Naveen, How to perform GC for a particular object
Great Explanation , this is something that I found deepen understanding of memory management. Thanks Naveen
Thankyou for this video Naveen!
As per my understanding,
1. So at a time, one of the survivor space is always empty ? this correct ?
2. Objects that are survived after many cycles of GC, are moved to the Old generation memory space ?
how you differing method block and method area of Permanent generation.
Question 1:
At the time of Major GC, will the JRE do only Major GC ? or JRE will perform its normal tasks and in parallel Major GC will perform
Question 2:
When you said we don't have to do the Major GC frequently, is there any code we write explicitly for GC? I think JRE itself take care of the Garbage collection.
Memory leak will come on only in heap area right? If yes then in that case what we need to do in that case?
Hi Naveen, one query on method block. You said one method at a time is given space inside it. But let's say we have a main method which calls another method inside it. How is this scenario handled?
Thanks a lot Naveen. That was a Video which I was looking for it but never could find. Thanks for the excellent explanation.
If m1 calls m2, method block will be available to which method?
sir can we say that each class have only one object and rest are created by referenced to that object.
As much as i have a knowledge till now permanent generation is separate memory are and stack is separate memory area . But in this video somewhere at the end you are saying parmanent memory is part of stack memory which is making me confused can you please explain on that ? Is both separate memory area or parmanent is part of stack. ?
Very informative. I have one doubt why the survivor memory classified as two, both have same usage and purpose?
I am always follow your channel for java related , you rocking pls keep doing the good work. great sir!❤
Hi Naveen, just want to know each application create own JRE on server memory? also what is difference between JVM and JMM?
Great video. Just had a couple of query : 1. You said permgen is part of stack memory but you displayed them on separate boxes so that was confusing.
2. You said stack size is very less compared to heap memory. but than what about Permgen (or now Metaspace) . Is metaspace is less compared to heap?
Thanks!
Any suggestion of a book for further reading and understanding this?
What are JRE classes? The predefined classes or the ones which I have made ?? Someone help me understand please.
What is created first a class or a stack
Thank you so much Naveen but one Question, Cam you tell from which book you took reference ?
Hello Sir, I have some questions:
So where exactly are new Strings stored (in heap or in stringpool directly)? And where is the stringpool located then (method area of permgen or heap)? There has been some changes in Java 7 and 8 to the permgen section. When does a string automatically move to striingpool provided intern methos is not called.
Thanks in advance :)
Hi sir I have one doubt,let say if older generations is also filled with objects and there is not enough space then if GC destroy that object wouldn't it impcact the application as the object is no longer available...sir I am starter guy pardon me if I sound stupid..
Awesome video. I have one question do i need to run manual gc?
Custom immutable store into which part of memory?
One of the survivor memories will always be free..
Hi Naveen,
Very well explained! Can we get the pictorial view of this concept as explained in the video?
Thanks for watching! But what do you mean by pictorial view of this concept?
Memory Pool (Constant Pool) memory is available in Young Generation or Old Generation?
which method block is stored in stack in case of method overriding?
method area is inside the permanent generation, so can we say that now method area is inside the metaspace
Thanks, very interesting video. I just wanted to see what is the diference between local and static variable storage but I've learned much more.
Permanent Generation is replaced by Metaspace in jdk8. What's the difference
Sir you have clear all concepts regarding java memory management. Thanks for your such great efforts in making video.
It was really a very explanatory session.
Got all the concept by this vesio
Very good explanation. But this video is up to Java 7. Java 8 on wards, we dont have pergem concept at all. Its Metaspace now.
Jaikrat Singh Tariyal yes ... I was about to ask this questions. Now pergen is removed completely...
Thanku sir can u please share if u have any notes?
This was really helpful. Thanks a lot.
if Method block is used one by one by the methods being executed, what will happen if one method1 calls another method2 and method2 returns something to method1, at this time both the methods are executing (pseudo parallelly)?
really it is very nice video, after read this, I clear my concept on memory heap and stack. thank you navin.
Thanks for sharing this knowledge!
Permanent Generation is also part of Heap memory.
What if the reference variable is a class instance variable and NOT a method local variable? I believe in that case, the reference variable is stored along with the object of that class and NOT on stack. Please correct me if I'm wrong.
Nice explanation sir..
I really appreciate your effort Naveen. Thanks for video :)
Thanks Naveen . I have a question is premgen is also part of stack memory
Thankyou sir for this 🔥🔥🔥 explanation
PermGen was part of Heap upto java 8.
From java 8, it had been removed.
Thanks Naveen for such a informative video. I have a follow up question below:-
If we create any Collection I.e Arraylist , Hashmap etc .. where is it created .. in Heap or Stack?Since collections stores the the object references rather than physical objects..How does it manage the whole process?
Very informative and nicely presented. Just the keyboard noise is lill irretating.
Please upload any video on Class loading with context of JRE.
Thanks for such nice videos....can you please tell me after execution of a method... where the result is stored.???
Hi naveen, thanks for the detailed explanation.
I have a question.
Where are the instance variables, argument to the constructor, if any object is created inside the constructor, where is the reference var stored?
I was asked in an interview and I flunked 😒
..wow
Thank you so much for creating such a helpful video
Hats off sir..very good explanation..
Pls continue this topic to cover garbage collection..
great explanation 👏
very nice video. one question i had, corresponding to each thread is there a separate stack bcoz in case of multiple threads multiple functions may execute simultaneously thus each method need a method block. Though in a particular thread only one method will execute at a time.
PermGen is replaced with metaspace after java 8 with better memory management and growable feature.
Yes it got covered and updated ib this video: th-cam.com/video/4yKxJjYXZ0A/w-d-xo.html
Great and deep explanation and information in detail . Better than all other videos from other youtube channels.. Just a small suggestion, if the diagram is ready then this video can be covered in bit less time.Awesome video. Thanks a ton
Great one!! One question to you Naveen. Do you know how to perform test for the product (Web based Game) where DOM element is hidden. I think all the DOM element is under the CANVAS?
Thankyou Naveen. This was so informational
never found so detailed.... thanks a ton!
I Like your efforts Naveen, Very very useful video for interview (I was asked these questions in mine!).
Just thank you.. i relieved finally.. i ve been seaching this for years !!!
Very informative, but I was looking for information regarding MetaSpace.
Very good explanation for Memory management. Thanks Naveen
Every Nice explanation sir, it's very clear to understand. Thank you sir.
Great explanation..
Hi Naveen,
My Java application reads file and stores to DB.for this it takes 3GB space.but after completion of program GC is not clearing the space, application still takes 3GB space.how to free up the space??
great information, fine details. :)
Let's say we given 1 gb to 2 gb for JVM. How much memory will take each component?
Great explanation
Nice Naveen, very informative. :) by any chance any plans for a video explaining the metaspace concept also?
Nice Explanation
very very nice explain
I become subscriber because this video
Thanks Naveen for this amazing video. It is full of information and explained very clearly.
Can you please explain the difference between java 7 and java 8 memory management .
Such a quality content ❤️
Excellent sir, thanks for the video
Bro. As per java 8 permgen is part of Heap ..
Is this java 7 model or java 8?
But how we will differetiate which object will go young generation and which object will go old generation..and you didn't tell exactly global variable and local static variable store. Could you please calrify.
we call a method , a method block is created what if we call another method from within a method
a new method block will be created?? if yes, then where inside the same method block or outside that method block?
Great Work, I searched so many videos but this is my final stop !!
Appreciate the efforts you did to make this :)
One doubt : Is permanent generation the part of Stack Memory ???