✅ 1.
Hello World Program
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
✅ 2. Simple Calculator
import java.util.Scanner;
public class SimpleCalculator {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter first number: ");
double num1 = input.nextDouble();
System.out.print("Enter second number: ");
double num2 = input.nextDouble();
System.out.println("Choose operation (+ - * /): ");
char op = input.next().charAt(0);
double result = 0;
switch (op) {
case '+': result = num1 + num2; break;
case '-': result = num1 - num2; break;
case '*': result = num1 * num2; break;
case '/': result = num2 != 0 ? num1 / num2 : Double.NaN; break;
default: System.out.println("Invalid operation"); return;
}
System.out.println("Result: " + result);
}
}
✅ 3. Even or Odd Checker
import java.util.Scanner;
public class EvenOddChecker {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = input.nextInt();
if (num % 2 == 0)
System.out.println("Even");
else
System.out.println("Odd");
}
}
✅ 4. Leap Year Checker
import java.util.Scanner;
public class LeapYearChecker {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter year: ");
int year = input.nextInt();
boolean isLeap = (year % 4 == 0 && year % 100 != 0) || (year % 400 ==
0);
System.out.println(year + " is " + (isLeap ? "a Leap Year" : "not a
Leap Year"));
}
}
✅ 5. Multiplication Table
import java.util.Scanner;
public class MultiplicationTable {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a number: ");
int num = input.nextInt();
for (int i = 1; i <= 10; i++) {
System.out.println(num + " x " + i + " = " + (num * i));
}
}
}
✅ 6. Data Type Demonstration
public class DataTypeDemo {
public static void main(String[] args) {
int a = 10;
float b = 5.5f;
double c = 9.99;
char d = 'A';
boolean e = true;
System.out.println("int: " + a);
System.out.println("float: " + b);
System.out.println("double: " + c);
System.out.println("char: " + d);
System.out.println("boolean: " + e);
}
}
✅ 7. Type Casting Example
public class TypeCastingExample {
public static void main(String[] args) {
double d = 10.75;
int i = (int) d; // explicit cast
int j = 20;
double newDouble = j; // implicit cast
System.out.println("Double to Int: " + i);
System.out.println("Int to Double: " + newDouble);
}
}
✅ 8. Operator Precedence
public class OperatorPrecedence {
public static void main(String[] args) {
int result = 10 + 5 * 2;
System.out.println("Result: " + result); // 10 + (5*2) = 20
}
}
9. Grade Calculator
// GradeCalculator.java
import java.util.Scanner;
public class GradeCalculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter marks out of 100: ");
int marks = sc.nextInt();
if (marks >= 90 && marks <= 100) {
System.out.println("Grade: A");
} else if (marks >= 80) {
System.out.println("Grade: B");
} else if (marks >= 70) {
System.out.println("Grade: C");
} else if (marks >= 60) {
System.out.println("Grade: D");
} else {
System.out.println("Grade: F");
}
}
}
10. Number Guessing Game
// NumberGuessingGame.java
import java.util.Scanner;
import java.util.Random;
public class NumberGuessingGame {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
int numberToGuess = rand.nextInt(100) + 1;
int guess;
do {
System.out.print("Guess a number between 1 and 100: ");
guess = sc.nextInt();
if (guess < numberToGuess) {
System.out.println("Too low!");
} else if (guess > numberToGuess) {
System.out.println("Too high!");
} else {
System.out.println("Correct! You guessed the number.");
}
} while (guess != numberToGuess);
}
}
11. Factorial Calculator
// FactorialCalculator.java
import java.util.Scanner;
public class FactorialCalculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a non-negative integer: ");
int num = sc.nextInt();
long factorial = 1;
for (int i = 1; i <= num; i++) {
factorial *= i;
}
System.out.println("Factorial of " + num + " is " + factorial);
}
}
12. Method Overloading
// MethodOverloading.java
public class MethodOverloading {
public static int add(int a, int b) {
return a + b;
}
public static double add(double a, double b) {
return a + b;
}
public static int add(int a, int b, int c) {
return a + b + c;
}
public static void main(String[] args) {
System.out.println("Add two ints: " + add(2, 3));
System.out.println("Add two doubles: " + add(2.5, 3.5));
System.out.println("Add three ints: " + add(1, 2, 3));
}
}
13. Recursive Fibonacci
// RecursiveFibonacci.java
import java.util.Scanner;
public class RecursiveFibonacci {
public static int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a positive integer: ");
int n = sc.nextInt();
System.out.println("Fibonacci number at position " + n + " is " +
fibonacci(n));
}
}
14. Array Sum and Average
// ArraySumAverage.java
import java.util.Scanner;
public class ArraySumAverage {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter number of elements: ");
int n = sc.nextInt();
int[] arr = new int[n];
int sum = 0;
System.out.println("Enter elements:");
for (int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
sum += arr[i];
}
double avg = (double) sum / n;
System.out.println("Sum: " + sum);
System.out.println("Average: " + avg);
}
}
15. String Reversal
// StringReversal.java
import java.util.Scanner;
public class StringReversal {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a string: ");
String str = sc.nextLine();
StringBuilder reversed = new StringBuilder(str);
System.out.println("Reversed string: " + reversed.reverse());
}
}
16. Palindrome Checker
// PalindromeChecker.java
import java.util.Scanner;
public class PalindromeChecker {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter a string: ");
String input = sc.nextLine().replaceAll("[^A-Za-z0-9]",
"").toLowerCase();
String reversed = new StringBuilder(input).reverse().toString();
if (input.equals(reversed)) {
System.out.println("It's a palindrome.");
} else {
System.out.println("Not a palindrome.");
}
}
}
17. Class and Object Creation
// CarDemo.java
class Car {
String make, model;
int year;
void displayDetails() {
System.out.println("Make: " + make + ", Model: " + model + ", Year: "
+ year);
}
}
public class CarDemo {
public static void main(String[] args) {
Car myCar = new Car();
myCar.make = "Toyota";
myCar.model = "Camry";
myCar.year = 2022;
myCar.displayDetails();
}
}
18. Inheritance Example
// InheritanceExample.java
class Animal {
void makeSound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Bark");
}
}
public class InheritanceExample {
public static void main(String[] args) {
Animal a = new Animal();
Dog d = new Dog();
a.makeSound();
d.makeSound();
}
}
19. Interface Implementation
// InterfaceDemo.java
interface Playable {
void play();
}
class Guitar implements Playable {
public void play() {
System.out.println("Guitar is playing");
}
}
class Piano implements Playable {
public void play() {
System.out.println("Piano is playing");
}
}
public class InterfaceDemo {
public static void main(String[] args) {
Playable g = new Guitar();
Playable p = new Piano();
g.play();
p.play();
}
}
20. Try-Catch Example
// TryCatchExample.java
import java.util.Scanner;
public class TryCatchExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
try {
System.out.print("Enter numerator: ");
int a = sc.nextInt();
System.out.print("Enter denominator: ");
int b = sc.nextInt();
int result = a / b;
System.out.println("Result: " + result);
} catch (ArithmeticException e) {
System.out.println("Cannot divide by zero.");
}
}
}
21. Custom Exception
// CustomExceptionDemo.java
import java.util.Scanner;
class InvalidAgeException extends Exception {
InvalidAgeException(String message) {
super(message);
}
}
public class CustomExceptionDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter your age: ");
int age = sc.nextInt();
try {
if (age < 18) {
throw new InvalidAgeException("Age must be at least 18.");
} else {
System.out.println("Age is valid.");
}
} catch (InvalidAgeException e) {
System.out.println("Exception: " + e.getMessage());
}
}
}
22. File Writing
// FileWriterDemo.java
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class FileWriterDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Enter text to write to file: ");
String text = sc.nextLine();
try {
FileWriter writer = new FileWriter("output.txt");
writer.write(text);
writer.close();
System.out.println("Text written to output.txt");
} catch (IOException e) {
System.out.println("An error occurred.");
}
}
}
23. File Reading
// FileReaderDemo.java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderDemo {
public static void main(String[] args) {
try {
BufferedReader reader = new BufferedReader(new
FileReader("output.txt"));
String line;
System.out.println("Contents of output.txt:");
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
System.out.println("An error occurred while reading the file.");
}
}
}
24. ArrayList Example
// ArrayListExample.java
import java.util.ArrayList;
import java.util.Scanner;
public class ArrayListExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> students = new ArrayList<>();
System.out.println("Enter student names (type 'exit' to stop):");
while (true) {
String name = sc.nextLine();
if (name.equalsIgnoreCase("exit")) break;
students.add(name);
}
System.out.println("Student names:");
for (String s : students) {
System.out.println(s);
}
}
}
25. HashMap Example
// HashMapExample.java
import java.util.HashMap;
import java.util.Scanner;
public class HashMapExample {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
HashMap<Integer, String> studentMap = new HashMap<>();
System.out.println("Enter student ID and name (type -1 to stop):");
while (true) {
System.out.print("ID: ");
int id = sc.nextInt();
if (id == -1) break;
sc.nextLine(); // consume newline
System.out.print("Name: ");
String name = sc.nextLine();
studentMap.put(id, name);
}
System.out.print("Enter ID to search: ");
int searchId = sc.nextInt();
String name = studentMap.get(searchId);
if (name != null) {
System.out.println("Student Name: " + name);
} else {
System.out.println("Student ID not found.");
}
}
}
26. Thread Creation
// ThreadExample.java
class MyThread extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(getName() + " is running...");
}
}
}
public class ThreadExample {
public static void main(String[] args) {
MyThread t1 = new MyThread();
MyThread t2 = new MyThread();
t1.setName("Thread 1");
t2.setName("Thread 2");
t1.start();
t2.start();
}
}
27. Lambda Expressions – Sort a list of strings
// LambdaSort.java
Import java.util.*;
Public class LambdaSort {
Public static void main(String[] args) {
List<String> names = Arrays.asList(“Zara”, “Alex”, “Mike”, “John”);
// Sort using lambda
Collections.sort(names, (a, b) -> a.compareToIgnoreCase(b));
System.out.println(“Sorted list:”);
Names.forEach(System.out::println);
28. Stream API – Filter even numbers
// StreamEvenFilter.java
Import java.util.*;
Import java.util.stream.Collectors;
Public class StreamEvenFilter {
Public static void main(String[] args) {
List<Integer> numbers = Arrays.asList(1, 4, 7, 10, 13, 16);
List<Integer> evens = numbers.stream()
.filter(n -> n % 2 == 0)
.collect(Collectors.toList());
System.out.println(“Even numbers: “ + evens);
29. Records (Java 16+)
// PersonRecord.java
Import java.util.*;
Import java.util.stream.Collectors;
Record Person(String name, int age) {}
Public class PersonRecord {
Public static void main(String[] args) {
List<Person> people = List.of(
New Person(“Alice”, 22),
New Person(“Bob”, 17),
New Person(“Charlie”, 25)
);
System.out.println(“All Persons:”);
People.forEach(System.out::println);
List<Person> adults = people.stream()
.filter(p -> p.age() >= 18)
.collect(Collectors.toList());
System.out.println(“Adults:”);
Adults.forEach(System.out::println);
30. Pattern Matching for switch (Java 21)
// PatternMatchingSwitch.java
Public class PatternMatchingSwitch {
Public static void printType(Object obj) {
Switch (obj) {
Case Integer I -> System.out.println(“It’s an Integer: “ + i);
Case String s -> System.out.println(“It’s a String: “ + s);
Case Double d -> System.out.println(“It’s a Double: “ + d);
Default -> System.out.println(“Unknown type: “ + obj);
Public static void main(String[] args) {
printType(42);
printType(“Hello”);
printType(3.14);
printType(true);
➢ Make sure to compile with –enable-preview –release 21 if you’re using Java 21
preview features.
31. Basic JDBC Connection (MySQL example)
// JdbcSelect.java
Import java.sql.*;
Public class JdbcSelect {
Public static void main(String[] args) {
String url = “jdbc:mysql://localhost:3306/college”;
String user = “root”;
String password = “yourpassword”;
Try (Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement()) {
ResultSet rs = stmt.executeQuery(“SELECT * FROM students”);
While (rs.next()) {
System.out.println(rs.getInt(“id”) + “ – “ + rs.getString(“name”));
} catch (SQLException e) {
e.printStackTrace();
}
32. Insert and Update Operations in JDBC
// StudentDAO.java
Import java.sql.*;
Public class StudentDAO {
Private Connection conn;
Public StudentDAO(String url, String user, String password) throws SQLException {
Conn = DriverManager.getConnection(url, user, password);
Public void insertStudent(int id, String name) throws SQLException {
String sql = “INSERT INTO students (id, name) VALUES (?, ?)”;
Try (PreparedStatement ps = conn.prepareStatement(sql)) {
Ps.setInt(1, id);
Ps.setString(2, name);
Ps.executeUpdate();
System.out.println(“Inserted student: “ + name);
}
Public void updateStudent(int id, String newName) throws SQLException {
String sql = “UPDATE students SET name=? WHERE id=?”;
Try (PreparedStatement ps = conn.prepareStatement(sql)) {
Ps.setString(1, newName);
Ps.setInt(2, id);
Ps.executeUpdate();
System.out.println(“Updated student with ID: “ + id);
Public static void main(String[] args) throws SQLException {
StudentDAO dao = new StudentDAO(“jdbc:mysql://localhost:3306/college”, “root”,
“yourpassword”);
Dao.insertStudent(101, “Ayesha”);
Dao.updateStudent(101, “Ayesha S.”);
33. Transaction Handling in JDBC
// JdbcTransaction.java
Import java.sql.*;
Public class JdbcTransaction {
Public static void main(String[] args) {
String url = “jdbc:mysql://localhost:3306/bank”;
String user = “root”;
String password = “yourpassword”;
Try (Connection conn = DriverManager.getConnection(url, user, password)) {
Conn.setAutoCommit(false);
Try (PreparedStatement debit = conn.prepareStatement(“UPDATE accounts SET balance
= balance - ? WHERE id = ?”);
PreparedStatement credit = conn.prepareStatement(“UPDATE accounts SET balance
= balance + ? WHERE id = ?”)) {
Debit.setDouble(1, 500);
Debit.setInt(2, 1); // sender ID
Credit.setDouble(1, 500);
Credit.setInt(2, 2); // receiver ID
Debit.executeUpdate();
Credit.executeUpdate();
Conn.commit();
System.out.println(“Transaction successful.”);
} catch (SQLException e) {
Conn.rollback();
System.out.println(“Transaction failed, rolled back.”);
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
34. Create and Use Java Modules
Structure:
Project/
│
├── com.utils/
│ ├── module-info.java
│ └── Utils.java
└── com.greetings/
├── module-info.java
└── Main.java
Com.utils/module-info.java
Module com.utils {
Exports com.utils;
Com.utils/Utils.java
Package com.utils;
Public class Utils {
Public static String greet(String name) {
Return “Hello, “ + name + “!”;
}
Com.greetings/module-info.java
Module com.greetings {
Requires com.utils;
Com.greetings/Main.java
Package com.greetings;
Import com.utils.Utils;
Public class Main {
Public static void main(String[] args) {
System.out.println(Utils.greet(“Viquar”));
Compile & Run:
Javac -d out –module-source-path . $(find . -name “*.java”)
Java –module-path out -m com.greetings/com.greetings.Main
35. TCP Client-Server Chat
Server.java
Import java.io.*;
Import java.net.*;
Public class Server {
Public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(5000);
System.out.println(“Server started…”);
Socket socket = serverSocket.accept();
BufferedReader reader = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
String msg;
While (!(msg = reader.readLine()).equalsIgnoreCase(“exit”)) {
System.out.println(“Client: “ + msg);
System.out.print(“You: “);
Writer.println(console.readLine());
}
Socket.close();
serverSocket.close();
Client.java
Import java.io.*;
Import java.net.*;
Public class Client {
Public static void main(String[] args) throws IOException {
Socket socket = new Socket(“localhost”, 5000);
BufferedReader reader = new BufferedReader(new
InputStreamReader(socket.getInputStream()));
PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
String msg;
While (true) {
System.out.print(“You: “);
Writer.println(console.readLine());
Msg = reader.readLine();
If (msg.equalsIgnoreCase(“exit”)) break;
System.out.println(“Server: “ + msg);
}
Socket.close();
36. HTTP Client API (Java 11+)
Import java.net.URI;
Import java.net.http.*;
Import java.io.IOException;
Public class HttpExample {
Public static void main(String[] args) throws IOException, InterruptedException {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(https://api.github.com))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(“Status: “ + response.statusCode());
System.out.println(“Body:\n” + response.body());
}
37. Using javap to Inspect Bytecode
Public class BytecodeExample {
Public void greet() {
System.out.println(“Hello, Bytecode!”);
}
}
Commands:
Javac BytecodeExample.java
Javap -c BytecodeExample
38. Decompile a Class File
1. Write a simple Java class:
Public class Hello {
Public String sayHello() {
Return “Hello World!”;
}
}
2. Compile: javac Hello.java
3. Open Hello.class in JD-GUI or CFR to see decompiled output.
39. Reflection in Java
Import java.lang.reflect.*;
Public class ReflectDemo {
Public void greet(String name) {
System.out.println(“Hello, “ + name);
Public static void main(String[] args) throws Exception {
Class<?> clazz = Class.forName(“ReflectDemo”);
Object obj = clazz.getDeclaredConstructor().newInstance();
For (Method method : clazz.getDeclaredMethods()) {
System.out.println(“Method: “ + method.getName());
}
Method greet = clazz.getDeclaredMethod(“greet”, String.class);
Greet.invoke(obj, “Java”);
40. Virtual Threads (Java 21)
Public class VirtualThreadsDemo {
Public static void main(String[] args) {
Long start = System.currentTimeMillis();
For (int I = 0; I < 100_000; i++) {
Thread.startVirtualThread(() -> System.out.print(“”));
Long end = System.currentTimeMillis();
System.out.println(“Completed in “ + (end – start) + “ms”);
41. ExecutorService and Callable
Import java.util.concurrent.*;
Import java.util.*;
Public class ExecutorCallableDemo {
Public static void main(String[] args) throws Exception {
ExecutorService executor = Executors.newFixedThreadPool(5);
List<Callable<String>> tasks = new ArrayList<>();
For (int I = 1; I <= 5; i++) {
Int id = I;
Tasks.add(() -> “Task “ + id + “ executed”);
}
List<Future<String>> results = executor.invokeAll(tasks);
For (Future<String> result : results) {
System.out.println(result.get());
Executor.shutdown();