Java Basics Interview Questions (JDK vs JRE vs JVM, Data Types, String & Coding)

1. Difference between JDK, JRE, and JVM

JDK (Java Development Kit)

  • Full package for Java development
  • Includes JRE + development tools (compiler, debugger)
  • Used to write and compile Java programs

JRE (Java Runtime Environment)

  • Provides environment to run Java programs
  • Includes JVM + libraries
  • Used to execute Java programs

JVM (Java Virtual Machine)

  • Executes Java bytecode
  • Converts bytecode into machine code
  • Platform independent

Flow:

Java Code → Compiled by JDK → Bytecode → Executed by JVM (inside JRE)


2. Data Types in Java (Primitive vs Non-Primitive)

Primitive Data Types

  • int, float, char, boolean, byte, short, long, double
  • Store actual values
  • Fixed size
  • Faster performance

Example:

int a = 10;
char c = 'A';
boolean flag = true;

Non-Primitive Data Types

  • String, Array, Class, Object
  • Store reference (address)
  • Can be null
  • More flexible

Example:

String name = "Java";
int[] arr = {1, 2, 3};

3. String vs StringBuilder vs StringBuffer

String

  • Immutable (cannot change)
  • Thread-safe
  • Slower when modifying

Example:

String s = "Hello";
s = s + " World";

StringBuilder

  • Mutable
  • Not thread-safe
  • Faster

Example:

StringBuilder sb = new StringBuilder("Hello");
sb.append(" World");

StringBuffer

  • Mutable
  • Thread-safe
  • Slower than StringBuilder

Example:

StringBuffer sb = new StringBuffer("Hello");
sb.append(" World");

Key Difference Table:

FeatureStringStringBuilderStringBuffer
MutabilityImmutableMutableMutable
Thread SafeYesNoYes
PerformanceSlowFastMedium

4.Coding Questions


i. Reverse a String

Logic:

  • Convert string to char array
  • Swap characters from start and end

Code:

public class ReverseString {
    public static void main(String[] args) {
        String str = "hello";
        String reversed = "";

        for (int i = str.length() - 1; i >= 0; i--) {
            reversed += str.charAt(i);
        }

        System.out.println(reversed);
    }
}

ii. Check Palindrome String

Logic:

  • Reverse the string
  • Compare with original

Code:

public class Palindrome {
    public static void main(String[] args) {
        String str = "madam";
        String reversed = "";

        for (int i = str.length() - 1; i >= 0; i--) {
            reversed += str.charAt(i);
        }

        if (str.equals(reversed)) {
            System.out.println("Palindrome");
        } else {
            System.out.println("Not Palindrome");
        }
    }
}

Leave a Comment