0% found this document useful (0 votes)
2 views29 pages

java_exercises

The document contains a collection of Java programs demonstrating various programming concepts, including basic syntax, control structures, data types, object-oriented programming, exception handling, file I/O, and modern features like lambda expressions and records. Each program is accompanied by a brief description of its functionality, such as a Hello World program, a simple calculator, and a number guessing game. The document serves as a practical guide for learning Java programming through hands-on examples.

Uploaded by

Viquar Sultana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views29 pages

java_exercises

The document contains a collection of Java programs demonstrating various programming concepts, including basic syntax, control structures, data types, object-oriented programming, exception handling, file I/O, and modern features like lambda expressions and records. Each program is accompanied by a brief description of its functionality, such as a Hello World program, a simple calculator, and a number guessing game. The document serves as a practical guide for learning Java programming through hands-on examples.

Uploaded by

Viquar Sultana
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

✅ 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();

You might also like