Day 2 โ Environment Setup & Hello World

Table of contents
- JDK (Java Development Kit) โ Quick Notes
- JDK Components
- Java Hello World Program
- ๐น Prerequisites
- ๐น First Java Program โ HelloWorld.java
- ๐น Program Breakdown
- ๐น Java Execution Flow
- ๐น Internal Steps (Compilation + Execution)
- ๐น Commands to Run
- ๐น Comments in Java
- Interview Key Points
- Java Program Structure (Basic Blocks)
- User-Defined Methods
- Types of Data Members
- ๐น Types of Methods in Java
- ๐ธ Instance Methods vs Static Methods
- ๐น Example: Instance vs Static Methods

JDK (Java Development Kit) โ Quick Notes
๐น What is JDK?
JDK = Java Development Kit
Use hota hai Java program banane, compile karne aur run karne ke liye.
Without JDK, Java development possible nahi hai.
๐น Key Features
javac (Compiler): Java code โ bytecode convert karta hai.
JRE + JVM included: Run karne ke liye runtime environment aur virtual machine deta hai.
Rich Libraries: I/O, Networking, Database, Collections ke ready-made classes.
Debugger (jdb): Code error trace karne ke liye.
Cross-platform: Ek baar likho โ har OS (Windows/Linux/Mac) pe chalayega.
๐น Why Install JDK?
Java program develop + run karne ke liye.
Source code compile karne ke liye (
javac
).Android apps (Java/Kotlin) develop karne ke liye bhi JDK chahiye.
๐น JDK vs JRE vs JVM (Most Asked in Interviews)
JDK: Development kit (Compiler + JRE + JVM + tools).
JRE: Sirf run karne ke liye (Runtime env + JVM).
JVM: Machine jo bytecode ko execute karti hai.
๐น Platforms Supported
Windows
Linux
macOS
โJDK is a software development kit which provides compiler (javac), runtime (JRE), and JVM to build and run Java applications.โ
โ Advantages of JDK
Complete Package โ JDK me compiler (javac), JRE aur JVM sab included hote hain.
Platform Independent โ Ek hi code har OS (Windows/Linux/Mac) par run ho sakta hai.
Rich Libraries โ Networking, I/O, Database, GUI sabke liye ready-made classes.
Fast Performance โ JIT compiler ki wajah se execution speed achhi hoti hai.
Backward Compatibility โ Purane Java apps bhi naye JDK versions pe chal jaate hain.
โ Disadvantages of JDK
High Memory Usage โ RAM zyada consume karta hai.
Complex Setup โ PATH aur Environment variable set karna padta hai.
Slow Startup โ JVM initialize hone me time lagta hai.
License Issue โ Oracle JDK commercial use ke liye paid license maangta hai.
JDK Components
Component | Use |
javac | Java compiler converts source code into Java bytecode |
java | The loader of the java apps. |
javap | Class file disassembler, |
javadoc | Documentation generator, |
jar | Java Archiver helps manage JAR files. |
appletviewer | Debugging of Java applets without a web browser, |
xjc | Accepts an XML schema and generates Java classes, |
apt | Annotation-processing tool, |
jdb | Debugger, |
jmc | Java Mission Control, |
JConsole | Monitoring and Management Console, |
pack200 | JAR compression tool, |
extcheck | Utility tool to detects JAR file conflicts, |
idlj | IDL-to-Java compiler, |
keytool | The keystore manipulating tool, |
jstatd | jstat daemon (experimental) |
jstat | JVM statistics monitoring tool |
jshell | jshell introduced in java 9. |
jstack | Prints Java stack traces(experimental) |
jrunscript | Java command-line script shell. |
jhat | Java Heap Analysis Tool (experimental) |
jpackage | Generate self-contained application bundles. |
javaws | Web Start launcher for JNLP applications, |
javah | C header and stub generator, |
jarsigner | jar signing and verification tool |
jinfo | configuration information(experimental) |
javafxpackager | Package and sign JavaFX applications |
Java Hello World Program
๐น Prerequisites
Install JDK (Java Development Kit).
Install any IDE (e.g., IntelliJ, Eclipse) ya simple Notepad + CMD bhi chalega.
๐น First Java Program โ HelloWorld.java
// Simple Java Program
// FileName: HelloWorld.java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
Output:
Hello, World
๐น Program Breakdown
Class Definition
public class HelloWorld { ... }
Har Java program me ek class hoti hai.
Agar class public hai โ filename = class name (
HelloWorld.java
).
main() Method
public static void main(String[] args)
public
โ JVM access kar sake.static
โ bina object banaye run ho jaye.void
โ kuch return nahi karega.String[] args
โ command line arguments.
System.out.println()
System
โ predefined class (java.lang).out
โ output stream.println()
โ console par output print karta hai.
๐น Java Execution Flow
Compilation โ
Command:
javac HelloWorld.java
Source code (
.java
) โ Bytecode (.class
)
Execution โ
Command:
java HelloWorld
Bytecode JVM me run hota hai โ Machine Code
Diagram (Simple):
Source Code (.java) โ javac (Compiler) โ Bytecode (.class) โ JVM โ Machine Code โ Output
๐น Internal Steps (Compilation + Execution)
Compilation: Parsing โ Symbol Table โ Type Checking โ Bytecode (.class)
JVM Execution:
Class Loader โ classes load karta hai.
Bytecode Verifier โ safety check (illegal access, stack overflow etc.).
JIT Compiler โ Bytecode โ Native machine code (fast execution).
๐น Commands to Run
Save file โ
HelloWorld.java
Compile โ
javac HelloWorld.java
Run โ
java HelloWorld
๐น Comments in Java
Single-line:
// comment
Multi-line:
/* This is multi-line */
Interview Key Points
JDK = JRE + JVM + Compiler
File name = public class name
main() is entry point of Java program
Java code โ Bytecode โ JVM โ Machine code
JIT compiler improves performance
Java = Write Once, Run Anywhere (WORA)
Java Program Structure (Basic Blocks)
Jab hum Java program likhte hain, toh uska ek specific structure hota hai. Har Java program ek class se start hota hai, aur uske andar ek main()
method hota hai jahan se execution begin hota hai.
Basic Blocks of a Java Program
package list;
public class ClassName {
// Data members (variables)
// Constructor functions
// User-defined methods
public static void main(String[] arguments) {
// Block of statements
}
}
Explanation (Hinglish mein)
Package
Package ek tarah ka folder hai jo related classes, interfaces, aur sub-packages ko group karta hai.
Agar humein dusre package ke predefined classes use karni hai toh
import
karna padta hai.By default Java automatically
java.lang.*
package ko import kar leta hai.
Class
Class ek user-defined data type hota hai.
Har Java program เคเคฎ เคธเฅ เคเคฎ ek class ke bina chal nahi sakta.
Agar class
public
declare hoti hai, toh wo dusre packages se bhi accessible hoti hai.
Class Name
Class ka naam ek new data type ki tarah act karta hai.
Isse hum objects bana sakte hain.
Data Members (Variables)
Ye wo variables hote hain jo class ke andar declare kiye jate hain.
Ye object ke state (data) ko store karte hain.
Constructor
Constructor ek special block of code hai jo automatically tab run hota hai jab naya object create hota hai.
Iska main kaam object ko initialize karna hota hai.
Important Rules:
Constructor ka naam class ke naam ke same hota hai.
Constructor ka koi return type nahi hota.
main() Method
Ye program ka entry point hota hai.
Java compiler hamesha
public static void main(String[] args)
method se program execute karna start karta hai.Iske andar hum apna logic ya statements likhte hain.
User-Defined Methods
๐ Java mein jo methods hum khud likhte hain unhe user-defined methods bolte hain.
Ye do tarike ke ho sakte hain:
Instance Methods โ Ye methods tabhi call kiye jaa sakte hain jab class ka object banaya gaya ho. Ye mainly object ke data members pe kaam karte hain.
Static Methods โ Ye methods bina object banaye call kiye jaa sakte hain, kyunki ye class ke level ke hote hain. Inhe
ClassName.methodName()
ke through access kiya jaa sakta hai.
โก Important:
Har Java program ka entry point main()
method hota hai. Iska syntax hamesha fix hota hai:
public static void main(String[] args) {
// Program execution starts here
}
public
โ sab jagah se accessible hona chahiye.static
โ bina object banaye JVM ise run kar sake.void
โ kuch return nahi karega.String[] args
โ command-line arguments lene ke liye.
Types of Data Members
Ek Java class ke andar hum data store karte hain variables ki form mein, jinhe data members kaha jata hai.
Ye do types ke hote hain:
Instance (Non-static) Data Members
Ye har ek object ke liye alag-alag value store karte hain.
Example: agar ek
Student
class ke andarname
aurrollNo
variables hain, to har ek student object ke apne alag values honge.
class Student {
String name; // Instance data member
int rollNo; // Instance data member
}
Static (Class) Data Members
Ye saari objects ke liye common hote hain.
Memory me ye sirf ek hi copy ke form mein bante hain, chahe kitne bhi objects ho.
Access karne ke liye
ClassName.variableName
use hota hai.
class Student {
static String schoolName = "ABC School"; // Static data member
}
Agar 100 students ban gaye, tab bhi schoolName ek hi jagah memory me store hoga.
๐น Types of Methods in Java
Java me methods do types ke hote hain (constructors ko chod kar):
Instance (Non-static) Methods
Static (Class) Methods
๐ธ Instance Methods vs Static Methods
Feature | Instance (Non-Static) Methods | Static (Class) Methods |
Belongs To | Particular object (instance of class) | Class itself |
Access | Object ke through call karna padta hai (obj.method() ) | Directly class ke naam se call kar sakte hain (ClassName.method() ) |
Can Access | Instance variables + static variables | Sirf static variables aur static methods directly |
Memory Allocation | Har object ke liye alag memory hoti hai | Sirf ek memory location (class level) |
Overriding | Instance methods overridden ho sakte hain (Runtime Polymorphism) | Static methods override nahi hote (sirf hide hote hain) |
Use Case | Jab action object-specific ho | Jab action sab objects ke liye common ho |
๐น Example: Instance vs Static Methods
class Student {
String name; // instance variable
static String school = "ABC School"; // static variable
// Instance method
void displayInfo() {
System.out.println("Name: " + name + ", School: " + school);
}
// Static method
static void changeSchool(String newSchool) {
school = newSchool;
}
public static void main(String[] args) {
// Static method call (class ke naam se)
Student.changeSchool("XYZ School");
// Object banake instance method call
Student s1 = new Student();
s1.name = "Suraj";
s1.displayInfo();
Student s2 = new Student();
s2.name = "Ankita";
s2.displayInfo();
}
}
Output:
Name: Suraj, School: XYZ School
Name: Ankita, School: XYZ School
Key Takeaway for Interview:
Static method = Class level functionality (no object required).
Instance method = Object-specific functionality (needs object).
Static methods cannot access instance variables directly.
Subscribe to my newsletter
Read articles from Suraj Kumar directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Suraj Kumar
Suraj Kumar
I am MERN STACK Web Developer.I am Student of BCA.