Java Cheat sheet for SDETs

Date:

Share post:

1. Basic Syntax and Structure

Data Types

  • Primitive Types: int, double, char, boolean, long, float, short, byte
  • Non-Primitive Types: String, Array, Classes

Variables

int a = 10; // Integer
String name = "SDET"; // String
boolean isActive = true; // Boolean

Control Statements

  • If-Else:
if (condition) {
    // Code block
} else {
    // Code block
}
  • Switch:
switch (value) {
    case 1: System.out.println("One"); break;
    default: System.out.println("Default");
}
  • Loops:
for (int i = 0; i < 10; i++) {}
while (condition) {}
do {} while (condition);

2. OOP Basics

Class and Object

class Car {
    String color;
    void drive() {
        System.out.println("Driving");
    }
}
Car myCar = new Car();
myCar.drive();

Inheritance

class Vehicle {
    void start() { System.out.println("Vehicle started"); }
}
class Car extends Vehicle {}
Car car = new Car();
car.start();

Polymorphism

class Animal {
    void sound() { System.out.println("Animal sound"); }
}
class Dog extends Animal {
    void sound() { System.out.println("Bark"); }
}
Animal obj = new Dog();
obj.sound(); // Outputs "Bark"

Encapsulation

class Person {
    private String name;
    public String getName() { return name; }
    public void setName(String name) { this.name = name; }
}

Abstraction

abstract class Shape {
    abstract void draw();
}
class Circle extends Shape {
    void draw() { System.out.println("Drawing Circle"); }
}

3. Java Collections Framework

List

  • ArrayList: Dynamic array
List<String> list = new ArrayList<>();
list.add("Test");

Set

  • HashSet: No duplicates
Set<Integer> set = new HashSet<>();
set.add(1);

Map

  • HashMap: Key-value pairs
Map<Integer, String> map = new HashMap<>();
map.put(1, "One");

4. Java Streams and Lambda

List<String> names = Arrays.asList("Alice", "Bob");
names.stream().filter(name -> name.startsWith("A"))
     .forEach(System.out::println);

5. File Handling

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

6. Multithreading

class MyThread extends Thread {
    public void run() {
        System.out.println("Thread Running");
    }
}
MyThread t = new MyThread();
t.start();

7. Selenium with Java

WebDriver Setup

WebDriver driver = new ChromeDriver();
driver.get("https://example.com");

Locators

WebElement element = driver.findElement(By.id("elementId"));

Actions

element.click();
element.sendKeys("text");

Waits

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("id")));

8. Exception Handling

try {
    int a = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("Division by zero");
} finally {
    System.out.println("Always executed");
}

9. API Testing with Java (Rest Assured)

Response response = RestAssured.get("https://api.example.com/data");
System.out.println(response.getStatusCode());

10. Key Design Patterns

  • Singleton:
class Singleton {
    private static Singleton instance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (instance == null) instance = new Singleton();
        return instance;
    }
}
  • Factory:
class ShapeFactory {
    Shape getShape(String shapeType) {
        if (shapeType.equals("CIRCLE")) return new Circle();
        return null;
    }
}

11. Maven Basics

  • Add dependencies in pom.xml:
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.8.1</version>
</dependency>
  • Run commands:
mvn clean install

12. TestNG Basics

  • Annotations:
@Test
@BeforeClass
@AfterMethod
  • Execute test cases via XML:
<suite name="Suite">
    <test name="Test">
        <classes>
            <class name="TestClass"/>
        </classes>
    </test>
</suite>

13. Advanced Concepts

Generics

public class Box<T> {
    private T t;
    public void set(T t) { this.t = t; }
    public T get() { return t; }
}

Reflection API

Class<?> clazz = Class.forName("java.util.ArrayList");
Method[] methods = clazz.getDeclaredMethods();
for (Method method : methods) {
    System.out.println(method.getName());
}

Streams Advanced

List<Integer> numbers = Arrays.asList(1, 2, 3, 4);
int sum = numbers.stream().filter(n -> n % 2 == 0).mapToInt(Integer::intValue).sum();
System.out.println(sum);

Functional Interfaces

@FunctionalInterface
interface Calculator {
    int calculate(int a, int b);
}
Calculator add = (a, b) -> a + b;
System.out.println(add.calculate(5, 10));

CompletableFuture

CompletableFuture.supplyAsync(() -> "Hello")
                 .thenApply(result -> result + " World")
                 .thenAccept(System.out::println);

Advanced Multithreading

ExecutorService executor = Executors.newFixedThreadPool(2);
executor.submit(() -> System.out.println("Task 1"));
executor.submit(() -> System.out.println("Task 2"));
executor.shutdown();

Annotations

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface CustomAnnotation {
    String value();
}

14. Best Practices

  • Follow DRY (Don’t Repeat Yourself).
  • Use Page Object Model (POM).
  • Implement logging with Log4j.
  • Parameterize tests with DataProvider.
  • Optimize code with streams and lambdas.

This cheatsheet provides essential Java concepts and code snippets for SDETs, covering everything from basics to practical use in test automation

๐Ÿ”ฅ Level Up Your SDET Skills ๐Ÿ”ฅ

Monthly Drop : Real-world automation โ€ข Advanced interview strategies โ€ข Members-only resources

Ishan Dev Shukl
Ishan Dev Shukl
With 13+ years in SDET leadership, I drive quality and innovation through Test Strategies and Automation. I lead Testing Center of Excellence, ensuring high-quality products across Frontend, Backend, and App Testing. "Quality is in the details" defines my approachโ€”creating seamless, impactful user experiences. I embrace challenges, learn from failure, and take risks to drive success.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertisement

Related articles

TG vs ASG: AWS Scaling Secrets for SDETs

Why Scaling Breaks Your Tests (And How TG/ASG Fix It) Your Selenium Grid just went down during peak load....

Selenium 4 Cheat Sheet: 50+ Commands for SDETs (2026)

Updated Feb 2026: Selenium 4.18+, Chrome 122+, WebDriverManager 5.6+ Selenium remains essential for legacy framework maintenance and specific browser...

Auto-Wait Magic: Playwright’s Flake-Proof Secret

If your Selenium tests pass locally but fail in CI, this article is for you. If youโ€™ve added Thread.sleep()...

Top 10 Python Testing Frameworks for QA & SDETs

Python dominates testing in 2026 with 78% AI adoption in QA teams and PyTest used by 12,516+ companies including Amazon, Apple, and IBM. Selenium...