Skip to main content

Java cheatsheet

A one-page reference for Java. For JVM internals and interview Q&A, see the complete guide.

๐Ÿ“– Full guide: Java โ†’

OOP essentialsโ€‹

public class Animal {
protected String name;
public Animal(String name) { this.name = name; }
public String speak() { return name + " makes a sound"; }
}

public class Dog extends Animal implements Comparable<Dog> {
public Dog(String name) { super(name); }
@Override public String speak() { return name + " barks"; }
public int compareTo(Dog o) { return name.compareTo(o.name); }
}

Genericsโ€‹

public <T extends Comparable<T>> T max(List<T> list) {
return list.stream().max(Comparable::compareTo).orElseThrow();
}

List<? extends Number> nums; // producer, read-only
List<? super Integer> sink; // consumer, write-only

Collections frameworkโ€‹

List<String> list = new ArrayList<>();
Set<String> set = new HashSet<>();
Map<String, Integer> map = new HashMap<>();
Deque<String> stack = new ArrayDeque<>(); // push/pop

ArrayList โ€” fast random access. LinkedList โ€” fast insert/remove. HashMap โ€” O(1) avg lookup, no order.

Streams & lambdasโ€‹

List<String> names = users.stream()
.filter(u -> u.getAge() > 18)
.map(User::getName)
.sorted()
.collect(Collectors.toList());

int total = orders.stream().mapToInt(Order::getQty).sum();

Exception handlingโ€‹

try {
risky();
} catch (IOException | SQLException e) {
log.error("failed", e);
} finally {
cleanup();
}

Checked exceptions must be declared/caught; unchecked (RuntimeException) don't.

Concurrency basicsโ€‹

ExecutorService pool = Executors.newFixedThreadPool(4);
Future<Integer> f = pool.submit(() -> compute());
f.get(); // blocks for result

synchronized (lock) { counter++; } // mutual exclusion

Build toolsโ€‹

<!-- Maven: pom.xml -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>7.10.2</version>
</dependency>
mvn clean test
gradle test

Why Java for SDETโ€‹

  • Mature ecosystem: JUnit/TestNG, Selenium/Appium, Rest Assured all Java-first.
  • Strong typing catches framework bugs at compile time, not runtime.
  • Enterprise QA orgs standardize on it for shared tooling with backend teams.
See: Why Java Underpins the Mainstream SDET Stack