Quick reference
Java Cheat Sheet (Java 21)
Primitives
| Type | Size | Range / Note | Default |
|---|---|---|---|
byte |
8-bit | -128..127 | 0 |
short |
16-bit | -32,768..32,767 | 0 |
int |
32-bit | ~±2.1B | 0 |
long |
64-bit | ~±9.2e18 (L suffix) |
0L |
float |
32-bit | ~7 digits (f suffix) |
0.0f |
double |
64-bit | ~15 digits | 0.0d |
char |
16-bit | UTF-16 code unit | '\u0000' |
boolean |
JVM-dependent | true/false | false |
Variables
1int x = 10; // explicit2var y = 10; // inferred (local only, Java 10+)3final int Z = 5; // constantStrings
1String s = "hi";2s.length(); s.charAt(0); s.substring(1); s.indexOf("i");3s.toUpperCase(); s.trim(); s.strip(); s.isBlank();4s.split(","); String.join("-", "a","b");5s.repeat(3); s.contains("h"); s.replace("h","H");6String t = """7 text block (Java 15+)8 """;9String f = "x=%d".formatted(10); // or String.format10StringBuilder sb = new StringBuilder().append("a").append("b");Control flow
1if (c) {...} else if (d) {...} else {...}2switch (n) { case 1 -> "one"; default -> "other"; } // switch expr3var r = switch (obj) { // pattern match4 case Integer i -> "int " + i;5 case String str when str.length() > 3 -> "long str";6 default -> "other";7};8for (int i=0;i<n;i++){} 9for (var e : list){}10while (c){} do {} while(c);Collections
1List<Integer> list = new ArrayList<>(); // add/get/remove/size2Set<Integer> set = new HashSet<>(); // unique; TreeSet=sorted; LinkedHashSet=insertion order3Map<String,Integer> map = new HashMap<>();// put/get/getOrDefault/computeIfAbsent/merge4Deque<Integer> dq = new ArrayDeque<>(); // stack: push/pop; queue: offer/poll5Queue<Integer> pq = new PriorityQueue<>();// min-heap by default6List<Integer> imm = List.of(1,2,3); // immutable factoryStreams
1list.stream()2 .filter(x -> x > 0)3 .map(x -> x * 2)4 .sorted()5 .distinct()6 .limit(10)7 .collect(Collectors.toList()); // or .toList()8list.stream().mapToInt(Integer::intValue).sum();9list.stream().collect(Collectors.groupingBy(fn));10list.stream().reduce(0, Integer::sum);11IntStream.range(0, n).forEach(System.out::println);Optional
1Optional<String> o = Optional.ofNullable(x);2o.map(String::length).orElse(0);3o.ifPresent(System.out::println);4o.orElseThrow();Functional interfaces
| Interface | Method | Use |
|---|---|---|
Supplier<T> |
get() |
produce |
Consumer<T> |
accept(t) |
consume |
Function<T,R> |
apply(t) |
transform |
Predicate<T> |
test(t) |
boolean test |
BiFunction<T,U,R> |
apply(t,u) |
two args |
UnaryOperator<T> |
apply(t) |
T→T |
Records, sealed, enums
1record Point(int x, int y) {}2sealed interface Shape permits Circle, Square {}3enum Day { MON, TUE; }Exceptions
1try (var r = open()) { ... } // try-with-resources2catch (IOException | SQLException e) {...} // multi-catch3finally { ... }4throw new IllegalArgumentException("msg");Concurrency
1Thread.ofVirtual().start(() -> {}); // virtual thread (Java 21)2ExecutorService ex = Executors.newFixedThreadPool(4);3Future<Integer> f = ex.submit(() -> 42);4CompletableFuture.supplyAsync(() -> 1).thenApply(x -> x+1);5synchronized(lock) {} // mutual exclusion6AtomicInteger ai = new AtomicInteger();Big-O quick reference
| Structure | Access | Search | Insert | Delete |
|---|---|---|---|---|
| Array | O(1) | O(n) | O(n) | O(n) |
| ArrayList | O(1) | O(n) | O(1)* | O(n) |
| LinkedList | O(n) | O(n) | O(1) | O(1) |
| HashMap | — | O(1)* | O(1)* | O(1)* |
| TreeMap | — | O(log n) | O(log n) | O(log n) |
| Heap | — | O(n) | O(log n) | O(log n) |
* amortized / average.
Compile & run
1javac --release 21 -d out File.java && java -cp out File2java File.java # single-file source launch