While continuing with static concepts in Java, static blocks were another interesting feature to understand. They are used when some initialization needs to happen at the class level before objects are created. Things that became clear : • a static block runs when the class is loaded into memory • it executes before the main method • it is commonly used for class level initialization • static blocks run only once, regardless of how many objects are created • they are often used when static variables need some setup logic A small example helped understand the execution order : class Demo { static { System.out.println("Static block executed"); } public static void main(String[] args) { System.out.println("Main method executed"); } } In this case, the static block runs first when the class loads, and then the main method executes. Seeing this execution flow made the class loading process in Java a little clearer. #java #oop #programming #learning #dsajourney
Lakhyadeep Sen’s Post
More Relevant Posts
-
While continuing with object oriented concepts in Java, the static keyword was an important idea to understand. Unlike instance variables that belong to individual objects, static members belong to the class itself. Things that became clear : • a static variable is shared among all objects of a class • only one copy of a static variable exists for the entire class • static members can be accessed using the class name instead of an object • static variables are useful when a value should be common for every object • they are often used for things like counters, configuration values, or shared settings A small example helps illustrate the idea: class LoanApp { static float rateOfInterest = 9.5f; } public class Test { public static void main(String[] args) { System.out.println(LoanApp.rateOfInterest); } } Here the interest rate belongs to the class rather than any specific object. Understanding the difference between instance data and class-level data made the structure of programs much clearer. #java #oop #programming #learning #dsajourney
To view or add a comment, sign in
-
Another concept that appears while studying class initialization in Java is the instance block. It behaves differently from static blocks and is tied to object creation rather than class loading. Things that became clear : • an instance block runs every time an object of the class is created • it executes before the constructor • it can be used to perform common initialization steps for objects • unlike static blocks, instance blocks run for each object created • they are part of the object initialization process A simple structure shows the execution flow : class Demo { { System.out.println("Instance block executed"); } Demo() { System.out.println("Constructor executed"); } public static void main(String[] args) { Demo d = new Demo(); } } When the object is created, the instance block executes first and then the constructor runs. Understanding this order helps in seeing how Java prepares an object step by step during creation. #java #oop #programming #learning #dsajourney
To view or add a comment, sign in
-
Today I Learned – Object Orientation Rules & Main Method in Java While learning Java, I explored how object relationships work and how a program starts execution. --> HAS-A Relationship Represents composition or aggregation, where one class contains another class object as a member. Example: Car HAS-A Engine --> DOES-A Relationship Represents behavior implementation, where a class performs behavior defined by another type using interfaces or abstract classes. Example: Bird DOES-A Flyable --> Main Method in Java The entry point of a Java application where the Java Virtual Machine starts program execution. Syntax: public static void main(String[] args) Breakdown: • public → Accessible everywhere • static → Can be executed without creating an object • void → Does not return a value • main → Method recognized by JVM to start execution • String[] args → Used to receive command-line arguments #JavaDeveloper #ObjectOrientedProgramming #OOP #JavaLearning #BackendDevelopment #CodingJourney #100DaysOfCode #LearningInPublic #DeveloperCommunity #FutureDeveloper #TechCareer
To view or add a comment, sign in
-
-
Revision | Day 6 – Multithreading Today I explored the basics of Multithreading in Java and why it is important for building high-performance applications. What is Multithreading? Multithreading allows a program to execute multiple threads (smaller units of a process) simultaneously. It helps improve application performance and better CPU utilization. Thread vs Runnable There are two main ways to create threads in Java: 1. Extending Thread class class MyThread extends Thread { public void run() { System.out.println("Thread is running"); } } 2. Implementing Runnable interface (recommended) class MyRunnable implements Runnable { public void run() { System.out.println("Thread is running"); } } Runnable is preferred because Java supports single inheritance but multiple interfaces. Synchronization When multiple threads access shared resources, it may cause inconsistent results. Synchronization ensures that only one thread accesses the critical section at a time. Example: synchronized void increment() { count++; } Deadlock Deadlock occurs when two or more threads wait for each other to release resources, causing the program to freeze. Example scenario: Thread 1 → lock1 → waiting for lock2 Thread 2 → lock2 → waiting for lock1 Both threads get stuck forever. Key takeaway: Understanding multithreading is essential for building scalable backend systems and handling concurrent requests efficiently. #Java #Multithreading #BackendDevelopment #JavaDeveloper #LearningInPublic
To view or add a comment, sign in
-
-
🧠Stack vs Heap Memory in Java - Every Developer Should Know This When learning java, understanding Stack and Heap memory makes debugging and writing efficient code much easier. 💠 Stack Memory Stack memory is used for temporary, method-specific data like local variables and method calls, and is managed automatically in a fast, Last-In, First-Out (LIFO) manner. ->Stores methods calls and local variables ->Memory is allocated and deallocated automatically ->Very fast access ->Each thread has its own stack 🧪 Example: int x = 10; 💠 Heap Memory Heap memory is used for storing all objects and instance variables, has a longer lifespan, and is managed by the Garbage Collector. -> Stores objects and instance variables ->Shared across threads ->Managed by the Garbage Collector ->Slightly slower than the stack memory 🧪 Example: User user = new User(); ⚡ Simple way to remember Stack ->Execution & temporary data Heap ->Objects & long-lived data Understanding this concept helps us to reason about memory management, performance and Garbage collection. #Java #JavaDeveloper #Programming #SoftwareEngineering #BackendDevelopment #LearningInPublic
To view or add a comment, sign in
-
-
Understanding the final Keyword in Java In Java, the final keyword is used to restrict modification. Once something is declared as final, it cannot be changed in the future. 🔹 Final Variable A variable declared as final becomes a constant. Its value cannot be modified after initialization. 🔹 Final Method A method declared as final cannot be overridden by subclasses. 🔹 Final Class A class declared as final cannot be extended (inherited by another class). 💡 The final keyword helps improve security, immutability, and code reliability in Java applications. #Java #Programming #JavaDeveloper #Coding #OOP #LearningJava #ComputerScience
To view or add a comment, sign in
-
-
Day 4 — Java Stream Practice Today’s focus was on solving a common problem using Java Streams: finding the most frequent element in a collection. Given a list of words, the task was to identify the element that appears the highest number of times. Approach: Grouped elements using Collectors.groupingBy() Counted occurrences with Collectors.counting() Streamed over the map entries Used max() with Map.Entry.comparingByValue() to find the highest frequency Extracted the result using map(Map.Entry::getKey) This exercise reinforced how Streams can simplify data processing by replacing traditional loops with a more declarative approach. Key learning: Breaking down a problem into smaller transformations makes the solution more readable and maintainable. Looking forward to exploring more real-world use cases of Java Streams. #Day4 #Java #JavaStreams #Coding #ProblemSolving #BackendDevelopment #LearnInPublic
To view or add a comment, sign in
-
-
Many developers ask: Why do Java Collections not support primitive data types? The reason is that Java Collections work with objects, not primitives. To handle primitive values, Java uses Wrapper Classes like Integer, Double, and Character. Example: int → Integer double → Double char → Character This process is called Autoboxing and Unboxing. Understanding such small concepts can make a big difference in mastering Java. 🚀 #CoreJava #JavaTips #Programming #JavaDeveloper
To view or add a comment, sign in
-
Deep Dive into Core Java Concepts 🚀 Today, I explored some important Java concepts including toString(), static members, and method behavior in inheritance. 🔹 The toString() method (from Object class) is used to represent an object in a readable format. By default, it returns "ClassName@hashcode", but by overriding it, we can display meaningful information. 🔹 Understanding static in Java: ✔️ Static variables and methods are inherited ❌ Static methods cannot be overridden ✔️ Static methods can be hidden (method hiding) 🔹 What is Method Hiding? If a subclass defines a static method with the same name and parameters as the parent class, it is called method hiding, not overriding. 🔹 Key Difference: ➡️ Overriding → applies to instance methods (runtime polymorphism) ➡️ Method Hiding → applies to static methods (compile-time behavior) 🔹 Also revised execution flow: ➡️ Static blocks (Parent → Child) ➡️ Instance blocks (Parent → Child) ➡️ Constructors (Parent → Child) This learning helped me clearly understand how Java handles inheritance, memory, and method behavior internally. Continuing to strengthen my Core Java fundamentals 💻🔥 #Java #OOP #CoreJava #Programming #LearningJourney #Coding
To view or add a comment, sign in
-
-
When an object is created in Java, it needs some initial values to start working. Who assigns those values? 𝑆𝑎𝑑𝑙𝑦… 𝐽𝑎𝑣𝑎 𝑑𝑜𝑒𝑠𝑛’𝑡 𝑟𝑒𝑎𝑑 𝑜𝑢𝑟 𝑚𝑖𝑛𝑑𝑠 𝑦𝑒𝑡 😅 That’s where constructors come in. ⚙️ 𝐂𝐨𝐧𝐬𝐭𝐫𝐮𝐜𝐭𝐨𝐫𝐬 A constructor is a special method in Java that is automatically executed when an object is created. Its main purpose is to initialize the object with the required values. For example, when we create a mobile object 📱, it may need values like: • brand • price Without constructors, we would have to create the object first and then assign values separately. A constructor allows us to set those values at the time of object creation, making the code cleaner and easier to manage. 🔹 𝐓𝐲𝐩𝐞𝐬 𝐨𝐟 𝐂𝐨𝐧𝐬𝐭𝐫𝐮𝐜𝐭𝐨𝐫𝐬 𝐢𝐧 𝐉𝐚𝐯𝐚 • Default Constructor – assigns default values to an object • Parameterized Constructor – allows passing values while creating the object I’ve attached a simple example in the code snippet below to show how constructors work 👇 #Java #CoreJava #OOP #Constructors #Programming #LearningJourney #BuildInPublic
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