Watched this in 2024, both this one as well as JVM Architecture video. I can say that I will be willing to pay for this quality of content. Please keep on uploading more informative videos
Garbage collection has been around since the 1960s. It was invented during the birth of Lisp. It is wrong to hint that Java pioneered garbage collection.
truly an amazing lecture about internals of JVM in just less than 30 minutes! Hats off to you Ranjith Sir. Your videos are so detailed and to the point. Loads of love and respect from BLR❤ Keep uploading more videos on Java, Spring, Sboot.. 🙏
Hi ranjith, Great video about GC, Learned a lot ,thanks. I know I'm late to the video.its been 8 years. Can you share some references in which you have referred?
To prevent reflection problem when code moved at first place in test class, I modified constructor a bit as follow: private Singleton() { StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace(); if(soleInstance != null || !stackTraceElements[1].getMethodName().equals("getInstance")){ throw new RuntimeException("Cannot create object. Please use getInstance()"); } System.out.println("Creating Object ...!"); }
Isn't low latency directly proportional to throughput? low latency means requests are served fast, which means a greater number of requests can be served in a given time, which in turn leads to high throughput? In this case how pause time acceptable for throughput?
Hey Man, I really appreciate your Hash Map like videos very much They are really very beautifully explained, can you please continue on such topics. Like most asked interview questions playlist.
02:30 Objects are created and collected based on their lifespan in the application. 07:15 Garbage collection involves marking reachable objects, sweeping unreachable objects, and compacting memory. 09:40 Java heap is divided into young and old generations for managing objects efficiently. 14:48 Survivor spaces in Java heap prevent the need for compacting step 17:11 Garbage collection in Java manages unreachable objects efficiently 21:33 Difference between responsiveness and throughput in Java applications 23:33 Concurrent collector runs concurrently with the application, while Parallel collector uses multiple CPUs for fast garbage collection. 28:08 G1 garbage collector in Java 7 & 8 divides the heap into regions for faster and minimal pauses. 30:20 Garbage collection in Java includes four different kinds of garbage collectors and how to use them. 35:08 Garbage collection in Java has no guarantee on when objects will get collected. 37:14 Garbage collection parameters in Java 41:39 Visual VM allows manual triggering of garbage collection. 43:46 Using direct buffer memory for managing Java Runtime memory Crafted by Merlin AI.
In order to use the "hash & (n-1)" optimization in place of a modulo operation, n needs to be a power of two. The video presenter kept saying "2 raised to n", which isn't correct.
Summary: Steps in garbage collection: mark, sweep, compact Division of heap into Young (Survivor spave from, Survivor space to) and Old generations Minor garbage collector runs mark and sweep in young generation Major garbage collector runs mark, sweep and compact across the heap Types of GC: Serial (single thread - stops app during MSC), Concurrent (runs CS along with application) and Parallel (multithread - stops app during MSC)
0:49 Edit .java -> compile .java -> run .class 3:33 JVM breakdown 4:14 Class loader: load (bootstrap (rt.jar), extension (jre/lib/ext), application (classes we write)) 6:59 Class loader: link (verify bytecode, prepare memory allocation for static variables, resolve nested references of a class) 10:02 Class loader: initialize (of static variables, static blocks) 11:09 ClassNotFoundException and ClassDefNotFoundException 12:38 Runtime Data area 13:01 Method Area / Permgen space / Metaspace (class data like static variables) 16:16 Heap (object data) 17:41 Program Counter Register: pointer to next instruction to be executed per thread 18:35 Java Stacks: stack frame of currently running method per thread 20:16 Native method stack: for running non-java methods called from java methods running in Java Stack (per thread) 24:09 Execution engine: GHIJ (Garbage Collector, Hotspot Profiler, Interpreter, JOT Compiler) 24:26 Interprets and executes the bytecode/instruction 25:52 JIT Compiler: Bytecodes that are repeated, called hotspots, are saved from re-interpretation. On the fly compiles them and make them ready for execution 26:27: Hotspot Profiler: graphically analyses the all the bytecodes and helps JIT compiler 27:36 Recap 26:57 Garbage Collector: cleans up unused classes, objects and memory areas.
Hi Ranjith. Glad to see you back. Happy to hear your voice again. Can you please give your LinkedIn URL in comment section so we can follow you. Expecting more content on Java 17 and higher versions and Microservices.
Thank you so much for coming back. I don't know where were you all these years. I was checking your channel like anything hopping for that you would come one day. Thank God ! At last you are back. Please do not disappear. Loved the way you explain Java. Thank you Sir and welcome back!
If the main thread has a timeout set,is it possible that the gc at times can cause the timeout?? As in as gc kicked in main thread couldn't finish in time