Day 46-What I Learned In a Day(JAVA) Today I explored the execution of a Java program and understood how it works inside the JVM: JVM Memory Structure: • Method Area Stores class-level data like methods, static variables, and metadata • Class (Static) Area Holds static variables and static initializers • Stack Area Manages method calls, local variables, and execution flow • Heap Area Stores objects and instance variables Execution Order of Java Program: 1️⃣ Class is loaded into Method Area 2️⃣ Static variables & static initializers are executed (Class Area) 3️⃣ Main method is pushed into Stack Area 4️⃣ Objects are created in Heap Area (if any) 5️⃣ Methods execute using Stack (LIFO order) Program Components: • Methods -Define program behavior • Variables -Store data (local, instance, static) • Static Initializers -Execute once when the class loads #Java #JVM #Programming #LearningJourney #CoreJava #TechSkills
Java JVM Memory Structure and Execution Order Explained
More Relevant Posts
-
After understanding how Java code gets executed, the next question is: Where does the data actually get stored? In JVM, memory is mainly divided into two parts: Heap Memory: - Used to store objects and class instances - Shared across all threads - Managed by Garbage Collection - Objects generally have a longer lifetime Stack Memory: - Stores method calls and local variables - Each thread has its own stack - Automatically managed - Data exists only during method execution Key difference: Heap → Stores Objects Stack → Handles Execution (methods & variables) Understanding this difference helps in writing better and more efficient Java applications. #Java #JVM #BackendDevelopment #Learning
To view or add a comment, sign in
-
-
#Day02 After understanding how Java code gets executed, the next question is: 👉 Where does the data actually get stored? In JVM, memory is mainly divided into two parts: 🔹 Heap Memory • Used to store objects and class instances • Shared across all threads • Managed by Garbage Collection • Objects generally have longer lifetime 🔹 Stack Memory • Stores method calls and local variables • Each thread has its own stack • Automatically managed • Data exists only during method execution 📌 Key difference: Heap → Stores Objects Stack → Handles Execution (methods & variables) Understanding this difference helps in writing better and more efficient Java applications. #Java #JVM #BackendDevelopment #Learning
To view or add a comment, sign in
-
-
Day 33/100 — Threads & Multithreading ⚡ Java can do multiple things at the same time using threads. Thread lifecycle: NEW → RUNNABLE → RUNNING → WAITING → TERMINATED 2 ways to create threads: // Method 1: extend Thread class MyThread extends Thread { public void run() { println("Running!"); } } new MyThread().start(); // NOT run()! // Method 2: Runnable lambda (preferred!) Thread t = new Thread(() -> println("Lambda thread!")); t.start(); Most important rule: ALWAYS call start() — NOT run()! → run() = normal method call (same thread) → start() = creates new thread and calls run() 3 things to remember: → Prefer Runnable over extending Thread → start() not run() → Multiple threads = race conditions possible! 🎯 Challenge: Create 3 threads that each print their name 5 times. Observe the interleaved output! #Java #Threads #Multithreading #CoreJava #100DaysOfJava #100DaysOfCode
To view or add a comment, sign in
-
-
📖 New Post: Java Memory Model Demystified: Stack vs. Heap Where do your variables live? We explain the Stack, the Heap, and the Garbage Collector in simple terms. #java #jvm #memorymanagement
To view or add a comment, sign in
-
Day 52 – Deep Dive into Static Concepts in Java ☕ Today I revised static concepts with a focus on understanding their internal behavior and execution flow. Topics covered: 🔹 Order of execution (static blocks, static variables, and methods) 🔹 Why static members are called class members 🔹 Difference between class members and instance (object) members 🔹 How static variables are shared across all objects 🔹 Why static members can be accessed without creating objects 🔹 Why instance variables cannot be accessed directly in static context Revisiting these concepts helped me understand how Java manages memory and execution at the class level. Strengthening my core understanding of Java internals step by step 🚀 #Day52 #JavaJourney #Static #CoreJava #OOP #Consistency
To view or add a comment, sign in
-
💡 JVM Memory in 1 Minute – Where Your Java Code Actually Lives As Java developers, we often hear about Heap, Stack, and Metaspace—but what do they actually do at runtime? 🤔 Here’s a simple breakdown 👇 When your Java program runs, the JVM divides memory into different areas, each with a specific responsibility. ➡️ Heap • Stores all objects and runtime data • Shared across all threads • Managed by Garbage Collector How it works: • New objects are created in Young Generation (Eden) • Surviving objects move to Survivor spaces • Long-lived objects move to Old Generation GC behavior: • Minor GC → cleans Young Generation (fast) • Major/Full GC → cleans Old Generation (slower) ➡️ Metaspace (Java 8+) • Stores class metadata (class structure, methods, constants) • Uses native memory (outside heap) • Grows dynamically Important: • Does NOT store objects or actual data • Cleaned when classloaders are removed ➡️ Stack • Each thread has its own stack • Used for method execution Stores: • Local variables • Primitive values • Object references (not actual objects) Working: • Method call → push frame • Method ends → pop frame ➡️ PC Register • Tracks current instruction being executed • Each thread has its own Purpose: • Helps JVM know what to execute next • Important for multi-threading ➡️ Native Method Stack • Used for native (C/C++) calls • Accessed via JNI Class → Metaspace Object → Heap Execution → Stack Next step → PC Register Native calls → Native Stack #Java #JVM #MemoryManagement #SoftwareEngineering #BackendDevelopment
To view or add a comment, sign in
-
-
Day 36/100 – Working with ArrayList in Java 📚 Today I practiced using ArrayList in Java, a dynamic array that allows flexible storage and manipulation of data. Unlike normal arrays, ArrayList can grow and shrink dynamically, making it very useful in real-world applications. Key learnings: • Adding elements using add() • Storing multiple values dynamically • Finding size using size() • Easier and more flexible than traditional arrays Understanding collections like ArrayList is important for handling data efficiently in Java. Building strong fundamentals step by step. 🚀 #100DaysOfCode #Java #ArrayList #DataStructures #CodingJourney #LearningInPublic
To view or add a comment, sign in
-
-
Still confused about how Java actually runs your code? 🤔 Here’s a simple breakdown of how the JVM works 👇 👉 1. Build Phase ✔️ Java code (.java) is compiled using javac ✔️ Converted into bytecode (.class files) 👉 2. Class Loading ✔️ JVM loads classes using: Bootstrap Class Loader Platform Class Loader System Class Loader 👉 3. Linking ✔️ Verify → Prepare → Resolve ✔️ Ensures code is safe and ready to run 👉 4. Initialization ✔️ Static variables & blocks are initialized 👉 5. Runtime Data Areas ✔️ Method Area & Heap (shared) ✔️ Stack, PC Register, Native Stack (per thread) 👉 6. Execution Engine ✔️ Interpreter executes bytecode line by line ✔️ JIT Compiler converts hot code into machine code for speed 👉 7. Native Interface (JNI) ✔️ Interacts with native libraries when needed 💡 JVM is the reason behind Java’s “Write Once, Run Anywhere” power. 📌 Save this post 🔁 Repost to help others 👨💻 Follow Abhishek Sharma for more such content #Java #JVM #SystemDesign #BackendDevelopment #SoftwareEngineer #Developers #TechJobs #Programming #LearnJava
To view or add a comment, sign in
-
-
Something small… but it changed how I think about Java performance. We often assume `substring()` is cheap. Just a slice of the original string… right? That was true **once**. 👉 In older Java versions, `substring()` shared the same internal char array. Fast… but risky — a tiny substring could keep a huge string alive in memory. 👉 In modern Java, things changed. `substring()` now creates a **new String with its own memory**. Same value ❌ Same reference ❌ Safer memory ✅ And this is where the real learning hit me: **Understanding behavior > memorizing APIs** Because in a real system: * Frequent substring operations = more objects * More objects = more GC pressure * More GC = performance impact So the question is not: “Do I know substring?” But: “Do I know what it costs at runtime?” That shift — from syntax to system thinking — is where growth actually starts. #Java #BackendEngineering #Performance #JVM #LearningJourney
To view or add a comment, sign in
-
Day 7 of #100DaysOfCode — Java is getting interesting ☕ Today I explored the Java Collections Framework. Before this, I was using arrays for everything. But arrays have one limitation — fixed size. 👉 What if we need to add more data later? That’s where Collections come in. 🔹 Key Learnings: ArrayList grows dynamically — no size worries Easy operations: add(), remove(), get(), size() More flexible than arrays 🔹 Iterator (Game changer) A clean way to loop through collections: hasNext() → checks next element next() → returns next element remove() → safely removes element 🔹 Concept that clicked today: Iterable → Collection → List → ArrayList This small hierarchy made everything much clearer. ⚡ Array vs ArrayList Array → fixed size ArrayList → dynamic size Array → stores primitives ArrayList → stores objects Still exploring: Set, Map, Queue next 🔥 Consistency is the only plan. Showing up every day 💪 If you’re also learning Java or working with Collections — let’s connect 🤝 #Java #Collections #ArrayList #100DaysOfCode #JavaDeveloper #LearningInPublic
To view or add a comment, sign in
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development