#26 Stack And Heap in Java

Поділитися
Вставка
  • Опубліковано 26 вер 2024
  • Check out our courses:
    Complete Java Developer Course Batch-3: go.telusko.com...
    Coupon: TELUSKO10 (10% Discount)
    Enterprise Java Spring Microservices: go.telusko.com...
    Coupon: TELUSKO10 (10% Discount)
    Master Java Spring Development : bit.ly/java-sp...
    Coupon: TELUSKO20 (20% Discount)
    Udemy Courses:
    Java:- bit.ly/JavaUde...
    Spring:- bit.ly/SpringU...
    Java For Programmers:- bit.ly/javaPro...
    For More Queries WhatsApp or Call on : +919008963671
    website : courses.telusk...
    In this lecture we are discussing:
    1) Memory management in java and typed of categories to store data in memory.
    2)What is stack ?
    3)What is heap ?
    4) where instance variable and local variable is allocated?
    #1
    In java we are managing our managing our memory using two data structure stack and heap.
    two categories to store data in memory:
    1) Stack data structure
    2) heap data structure
    #2
    Stack is data structure which follow LIFO(Last in First Out) principle.
    #3
    heap is data structure which is used to store data in form of object and object is a collection of data and method.
    #4
    class Student{
    int instVariable; //store in object and object created in heap
    public static void main(String []args){
    int localVariable=0; //local variable store in stack frame of method in stack area.
    Student st=new Student(); //st is reference variable store address of new Student() object
    }
    public int add(int num1,int num2){
    return num1+num2;
    }
    }
    -- instance variable stored in object and object are in heap therefore we can say that instance variable created in heap.
    -- method declaration and definition is present in object but actual implementation present in stack frame of stack.
    -- local variable created in stack during call of method.
    -- stack frame of called method is present in stack area.
    -- st is reference variable created inside the current stack frame and it is reference variable store address of student object created in heap area.
    -- new Student() create object in heap area and pointed by his reference variable.
    Github repo : github.com/nav...
    Java:- bit.ly/JavaUde...
    Spring:- bit.ly/SpringU...
    More Learning :
    Java :- bit.ly/3x6rr0N
    Python :- bit.ly/3GRc7JX
    Django :- bit.ly/3MmoJK6
    JavaScript :- bit.ly/3tiAlHo
    Node JS :- bit.ly/3GT4liq
    Rest Api :-bit.ly/3MjhZwt
    Servlet :- bit.ly/3Q7eA7k
    Spring Framework :- bit.ly/3xi7buh
    Design Patterns in Java :- bit.ly/3MocXiq
    Docker :- bit.ly/3xjWzLA
    Blockchain Tutorial :- bit.ly/3NSbOkc
    Corda Tutorial:- bit.ly/3thbUKa
    Hyperledger Fabric :- bit.ly/38RZCRB
    NoSQL Tutorial :- bit.ly/3aJpRuc
    Mysql Tutorial :- bit.ly/3thpr4L
    Data Structures using Java :- bit.ly/3MuJa7S
    Git Tutorial :- bit.ly/3NXyCPu
    Donation:
    PayPal Id : navinreddy20
    www.telusko.com

КОМЕНТАРІ • 93

  • @arjunthazhath
    @arjunthazhath Рік тому +48

    I just love you sir! I was confused for so long about heap and stack. Now its clear! U are a great teacher.

  • @ajiboladaniel9386
    @ajiboladaniel9386 11 місяців тому +9

    The best Java teacher I've ever encountered in my life. You are awesome sir. The understanding of the concept is sooo seamless. It's like a miracle. Thanks soo much.

  • @kapiljain359
    @kapiljain359 11 місяців тому +7

    Really Nice explained. I am following Telusko since my collage time(2018). And now I am the Senior Software Developer in reputated Product company. Big Thanks Goes to Mr Naveen. Thank you Sir!
    I would like to request if you can make the playlist on AWS for Java Developers. It would be very helpful.

  • @thefriendlymartian7317
    @thefriendlymartian7317 7 місяців тому +2

    The best explanation anyone could ever give. As soon as I have a question in my mind, you call out that point and explain as if I asked the question in person. Just shows how perfectly the flow of the content is.

  • @mehedishuvo6257
    @mehedishuvo6257 5 місяців тому +1

    Well explained dear sir.Not only India but also all over the world students get benefited by your lecture,. This is a masterpiece that ever created by you.💜💜💜💜💜,,,,Love from Bangladesh dear sir.

  • @piotr2951
    @piotr2951 5 місяців тому +17

    No, we don't have multiple stacks (in a single thread), those are called frames. Those frames contain multiple data structures for storing local variables, operands, return addresses, constants.

    • @GDuraimuruganCSE
      @GDuraimuruganCSE 22 дні тому

      😂

    • @khadeejahannah
      @khadeejahannah 12 днів тому +1

      Yes.. every method doesn't hav its own stack!
      Stack frames are created for each method call n removed once the method completes

  • @MsSWAGboss
    @MsSWAGboss Рік тому +5

    Thank you for the video :) I just started going into interviews again and this helped me get back to speed on the topic cause I had forgotten so much stuff throughout the year as a junior dev

  • @abbaszandi7481
    @abbaszandi7481 Місяць тому

    you explain everything clearly and perfect. thanks for sharing your precious knowledge.

  • @MohdZaid-kv7yn
    @MohdZaid-kv7yn Рік тому +9

    Watching 2 hours before java developer interview

    • @CSSHANUSG
      @CSSHANUSG Місяць тому

      How was the interview, brother

    • @MohdZaid-kv7yn
      @MohdZaid-kv7yn Місяць тому +2

      @@CSSHANUSG cracked it but they didn’t ask me stack and heap ;)

    • @CSSHANUSG
      @CSSHANUSG Місяць тому +1

      @@MohdZaid-kv7yn that's great....🔥 thanks brother

  • @congdatt
    @congdatt 6 місяців тому +1

    Stack:
    - Store local variables
    - Address of obj ( obj store in HEAP )
    Heap:
    - Store obj. Have 2 sections: instance variables & .... (add(),....)
    Every method have own stack

  • @danurarya0823
    @danurarya0823 Рік тому +3

    Thanks for this sir, i like when you are describing how things work using a sketch.
    maybe it's just me but reading documentation that just only have text explanation is really confusing and to imagining it was really hard.

  • @bharathsajan8926
    @bharathsajan8926 4 місяці тому +2

    wonderfully explained thank you.

  • @rushikeshbhujbal2480
    @rushikeshbhujbal2480 Рік тому +4

    you are really great,this content is really helpfull and thanks for the notes that you are providing in description.

  • @ajuSiuuu
    @ajuSiuuu Місяць тому +1

    100 times better than those paid courses

  • @saumyojitdas4212
    @saumyojitdas4212 11 місяців тому +1

    public class Main
    {
    String s = "ABC";
    public static void main(String[] args) {
    Main obj = new Main() ;
    System.out.println(obj.s);
    }
    }
    in this above code String object is created in heap and also of class.
    So 2 objects in heap.
    But isn't the string object Abc resides inside class object in the heap?that's why we are calling it obj.s

  • @Prabhu_0_7
    @Prabhu_0_7 2 місяці тому

    sir give us a quetion bank to practice this concepts, all quetions from basic to advance, so we can practice and implement the concepts or logic. your lectures are very easy to understand!! they are very helpful thank you!!!😃😃😃

  • @srushtishah8674
    @srushtishah8674 7 місяців тому

    When i asked my sir about instance variable he gave me such lame ans that I gave up on every being able to understanding it. Thanks!!

  • @chairma_prabhu
    @chairma_prabhu Рік тому

    Thank you Navin for providing quality content like this.

  • @unemployedcse3514
    @unemployedcse3514 4 місяці тому

    this channel gives trustworthy content where other's just do for content sake

  • @princeiiolaguera921
    @princeiiolaguera921 8 місяців тому

    Best course imo. Can you please create exercises so we can test our knowledge and skills so far? Thank you

  • @srinivasmb-re8km
    @srinivasmb-re8km Рік тому +3

    Where static variables are stored?
    static int in = 10;

  • @HocineFerradj
    @HocineFerradj 2 місяці тому

    U are a great teacher

  • @WorstinJava
    @WorstinJava 8 місяців тому

    I became a diehard fan for you sir ❤ love you and love your teachings sir

    • @WorstinJava
      @WorstinJava 8 місяців тому

      Thank You SIR ✨
      This is my status today 🫴 ✨
      Thank You SIR 💫

  • @uchihasenpai5671
    @uchihasenpai5671 Рік тому +1

    Shouldn't obj be created after DATA in the stack? I mean should not OBJ be above data?

  • @Coding-Just
    @Coding-Just Рік тому

    Navin sir it's totally clear thanks a lot and sir i have to join your Java backend course but Saturday is my college sir and it's 3rd year bca 7 to 12 time is not convenient sir

  • @Shubham-si6hd
    @Shubham-si6hd Рік тому +1

    You are a life saver! Thank You

  • @minote8t451
    @minote8t451 Місяць тому

    Hi sir , i have a question . We all know that if we wanna create an object we need to use the new keyword for that , if we don't it won't use a different part of memory ! But the question is , so why we can create a copy constructor in a class without using that new keyword and still have a different area of memory which is not gonna effect the main object ?
    I would be glad if you answer me , and thanks for your great teaching skills !

  • @bahasahli4151
    @bahasahli4151 8 місяців тому

    Simply awesome thank you 🌼

  • @ramenmanna6150
    @ramenmanna6150 Рік тому

    Great video sir 😊 understand concepts very well ! love you sir 🥳

  • @sahinyusifli9756
    @sahinyusifli9756 Рік тому

    Thank you, it was so educative to me

  • @nasamind
    @nasamind 9 місяців тому

    Simply awesome

  • @anupam6045
    @anupam6045 3 місяці тому

    best explanation sirr

  • @ganesang7217
    @ganesang7217 7 місяців тому

    I understand clearly, it's not an object. It's a reference type.like Car c = new Car() c is reference type, correct or not

  • @vishnusunil7446
    @vishnusunil7446 Рік тому

    Amazing video.. thank you.

  • @prakash1to7
    @prakash1to7 Рік тому

    Great way of delivery Sir. Really motivating to learn. Keep on Rocking Sir :-)

  • @zr0724
    @zr0724 Рік тому +1

    wow , these tutorials are of next level for sure. thank you sir.

  • @rajnishchoubey2246
    @rajnishchoubey2246 Рік тому

    Sir with reference to memory allocation in java can u plzz specify which of the variables have static memory allocation and which one has dynamic allocation and why

  • @SirHarshPatel
    @SirHarshPatel 8 місяців тому

    incredible

  • @adora6860
    @adora6860 8 місяців тому

    maraming salamat tol

  • @jackfrost8969
    @jackfrost8969 Рік тому

    excellent video.
    Keep it up.

  • @ahmedyoussef7923
    @ahmedyoussef7923 2 місяці тому

    Java does not have multiple call stacks per thread. Each thread has a single call stack that tracks method invocations and local variables.

  • @rosaliademartino7265
    @rosaliademartino7265 Рік тому

    nice and clear, thanks!

  • @afsirlaghari3738
    @afsirlaghari3738 Рік тому

    Love you Naveen sir, from Pakistan.

  • @marcos_silvestri
    @marcos_silvestri Рік тому

    Splendid!

  • @Avineshutube
    @Avineshutube 3 місяці тому

    excellent !!

  • @alexkuzmichev9051
    @alexkuzmichev9051 Рік тому

    nicely explained! by the way, what program do you use to draw?

  • @abhishekmb7690
    @abhishekmb7690 Рік тому +1

    Where the memory will be allocated for static members and static methods sir

  • @ehteerk
    @ehteerk Рік тому

    An instance variable is a variable that is specific to a certain object. It is declared within the curly braces of the class but outside of any method. The value of an instance variable can be changed by any method in the class, but it is not accessible from outside the class

  • @rohithvishnukumar7969
    @rohithvishnukumar7969 Місяць тому

    I have a dooubt that where are static variables stored

  • @aaaeditzforever
    @aaaeditzforever 10 місяців тому

    Super

  • @shyamchowdary5086
    @shyamchowdary5086 10 місяців тому

    I have a doubt. When we write a local variable in Java. It automatically allocates memory or it allocates after compilation? Please someone address this.

  • @FEJAYACHANDRANK
    @FEJAYACHANDRANK Рік тому

    I have one doubt what if the class is static ... we cant create instance right at the case how is memory allocated

  • @ummersiddique
    @ummersiddique 2 місяці тому

    Which device is he using for drawing?

  • @-RimuruTempest
    @-RimuruTempest Рік тому

    Hi, I have one doubt. What about the add method in stack? If we create two objects then the is there two add stack?

  • @rajattalreja9740
    @rajattalreja9740 Рік тому

    One question - Exactly when is a stack created? When the method is created of when the method is called?

    • @sachinkhatri1077
      @sachinkhatri1077 Рік тому

      I think stack memory allocated at run time. So it created when mehod is called. Thats why we get stackoverflow error at runtime instead of compile time.

    • @banujan.b2479
      @banujan.b2479 8 місяців тому

      To be more specific the entire program has a stack. But when you call a method, each method creates a stack-frame in the stack.

  • @ashutoshraj8668
    @ashutoshraj8668 Рік тому +1

    But sir methods of objects are stored in method area😢

  • @abhiroy1993
    @abhiroy1993 Рік тому

    Will the 'add' method stack be reused for the 2 different objects or will it create a new 'add' method stack for obj1?

    • @Krishna_script
      @Krishna_script Рік тому

      the new obj1 will reuse the add method which is there in the stack

    • @saumyojitdas4212
      @saumyojitdas4212 11 місяців тому

      ​@@Krishna_scriptpublic class Main
      {
      String s = "ABC";
      public static void main(String[] args) {
      Main obj = new Main() ;
      System.out.println(obj.s);
      }
      }
      in this above code String object is created in heap and also of class.
      So 2 objects in heap.
      But isn't the string object Abc resides inside class object in the heap?that's why we are calling it obj.s

  • @actandrepeat
    @actandrepeat Рік тому

    Wow!

  • @YuvarajRoll
    @YuvarajRoll 11 місяців тому

    Sir how to get input from users in java

  • @mohokhachai
    @mohokhachai Рік тому

    Thier values is null

  • @papo7936
    @papo7936 Рік тому

    Could you replicate this video for python too?

  • @muthukumarthangapandian8434

    both objects having same address only. if car1 =car2
    class Car
    {
    String name;
    int cost;
    double mileage;
    }
    public class PassByReference {
    public static void main(String arg[])
    {
    Car car1 =new Car();
    System.out.println(car1.name);
    System.out.println(car1.cost);
    System.out.println(car1.mileage);
    car1.name="bmw";
    car1.cost=1_00_0000;
    car1.mileage=17.5;
    System.out.println(car1.name);
    System.out.println(car1.cost);
    System.out.println(car1.mileage);
    Car car2=car1;
    System.out.println(car2.name);
    System.out.println(car2.cost);
    System.out.println(car2.mileage);
    car2.name="honda";
    car2.cost=1_00_000;
    car2.mileage=18.5;
    System.out.println(car2.name);
    System.out.println(car2.cost);
    System.out.println(car2.mileage);
    System.out.println(car1.name);
    System.out.println(car1.cost);
    System.out.println(car1.mileage);
    System.out.println( car1.hashCode());
    System.out.println( car2.hashCode());
    System.out.println(car1);
    System.out.println(car2);
    }
    }

  • @mohokhachai
    @mohokhachai Рік тому

    Thier only one main entry function

  • @RamSingh-bi9tc
    @RamSingh-bi9tc 3 місяці тому

    But damaging one phone affect the user heart

  • @banujan.b2479
    @banujan.b2479 8 місяців тому

    Each method has own stack or stack-frame? 🙄

  • @sn0wball13
    @sn0wball13 8 місяців тому

    Thank you so much for this explanation!!!! :)

  • @mohokhachai
    @mohokhachai Рік тому

    Entry point

  • @jatinsharma3792
    @jatinsharma3792 Рік тому

    You beauty !!

  • @abirhore6645
    @abirhore6645 10 днів тому

    bro you just detaching from the topic itself...I just want to know the difference you are way too much describing things

  • @navingautam8878
    @navingautam8878 Рік тому

    same name haha

  • @khanhgiapham-mi4hg
    @khanhgiapham-mi4hg Рік тому

    please speak English sir

  • @mr.islam777
    @mr.islam777 2 місяці тому

    Your teaching style not so good . Please explain more clearly

  • @Ounknown098
    @Ounknown098 Рік тому

    i am comming from pw skills to watch full memory alliocaion

  • @partoon863
    @partoon863 Рік тому

    If you guide us in Hindi we understand it more clearly

  • @hdkzmsakao
    @hdkzmsakao 2 місяці тому

    thank you sir

  • @moaazsuliman7584
    @moaazsuliman7584 Рік тому

    From Egypt Thank You Very Much

  • @valoranthighlights6374
    @valoranthighlights6374 3 місяці тому

    great explanation . love it

  • @keinsent
    @keinsent 5 місяців тому

    tqsmomg

  • @mohokhachai
    @mohokhachai Рік тому

    Scope

  • @hridikasaha9519
    @hridikasaha9519 Рік тому

    Excellent explanation