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.