Java Cheatsheet
Setup & Environment
brew install openjdk
# Ubuntu/Debian
sudo apt update
sudo apt install default-jdk
# CentOS/RHEL
sudo yum install java-11-openjdk-devel
- Download JDK from Oracle or OpenJDK
- Run the installer and follow the prompts
- Set JAVA_HOME environment variable
java -version
javac -version
- Set up Java environment variables (add to ~/.bashrc or ~/.zshrc)
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk
export PATH=$PATH:$JAVA_HOME/bin
Building & Running
javac HelloWorld.java
java HelloWorld
- Compile and run with classpath
javac -cp "lib/*" MyApp.java
java -cp ".:lib/*" MyApp
jar cvf myapp.jar *.class
java -jar myapp.jar
Maven
- Create a new Maven project
mvn archetype:generate -DgroupId=com.example -DartifactId=myapp -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
mvn compile
mvn test
mvn package
mvn clean
- Install to local repository
mvn install
Gradle
- Create a new Gradle project
gradle init --type java-application
./gradlew build
./gradlew test
./gradlew run
./gradlew clean
Basic Java Structure
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Variables and Data Types
int number = 42;
double decimal = 3.14;
boolean flag = true;
char letter = 'A';
byte smallNumber = 127;
short mediumNumber = 32767;
long largeNumber = 123456789L;
float floatNumber = 2.5f;
String text = "Hello";
String name = new String("World");
int[] numbers = {1, 2, 3, 4, 5};
String[] names = new String[3];
names[0] = "Alice";
final int MAX_SIZE = 100;
static final String CONSTANT = "VALUE";
Control Flow
if (x > 0) {
System.out.println("Positive");
} else if (x < 0) {
System.out.println("Negative");
} else {
System.out.println("Zero");
}
switch (day) {
case 1:
System.out.println("Monday");
break;
case 2:
System.out.println("Tuesday");
break;
default:
System.out.println("Other day");
}
for (int i = 0; i < 10; i++) {
System.out.println(i);
}
int[] array = {1, 2, 3, 4, 5};
for (int num : array) {
System.out.println(num);
}
int i = 0;
while (i < 10) {
System.out.println(i);
i++;
}
int i = 0;
do {
System.out.println(i);
i++;
} while (i < 10);
Classes and Objects
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
Person person = new Person("Alice", 30);
System.out.println(person.getName());
person.setAge(31);
Inheritance
public class Student extends Person {
private String studentId;
public Student(String name, int age, String studentId) {
super(name, age);
this.studentId = studentId;
}
public String getStudentId() {
return studentId;
}
}
@Override
public String toString() {
return "Student{" +
"name='" + getName() + '\'' +
", age=" + getAge() +
", studentId='" + studentId + '\'' +
'}';
}
Interfaces
public interface Drawable {
void draw();
default void print() {
System.out.println("Printing...");
}
}
public class Circle implements Drawable {
@Override
public void draw() {
System.out.println("Drawing a circle");
}
}
Exception Handling
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage());
} finally {
System.out.println("This always executes");
}
public void checkAge(int age) throws IllegalArgumentException {
if (age < 0) {
throw new IllegalArgumentException("Age cannot be negative");
}
}
Collections
import java.util.ArrayList;
import java.util.List;
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
names.remove("Alice");
import java.util.HashMap;
import java.util.Map;
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 30);
ages.put("Bob", 25);
int aliceAge = ages.get("Alice");
import java.util.HashSet;
import java.util.Set;
Set<String> uniqueNames = new HashSet<>();
uniqueNames.add("Alice");
uniqueNames.add("Bob");
uniqueNames.add("Alice"); // Duplicate, won't be added
File I/O
import java.io.*;
import java.util.Scanner;
try (Scanner scanner = new Scanner(new File("file.txt"))) {
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
System.out.println(line);
}
} catch (FileNotFoundException e) {
System.out.println("File not found: " + e.getMessage());
}
import java.io.*;
try (PrintWriter writer = new PrintWriter("output.txt")) {
writer.println("Hello, World!");
writer.println("Writing to file");
} catch (FileNotFoundException e) {
System.out.println("Error writing file: " + e.getMessage());
}
Useful Methods
String text = "Hello World";
int length = text.length();
String upper = text.toUpperCase();
String lower = text.toLowerCase();
boolean contains = text.contains("World");
String[] parts = text.split(" ");
String trimmed = text.trim();
int max = Math.max(10, 20);
int min = Math.min(10, 20);
double sqrt = Math.sqrt(16);
double random = Math.random(); // 0.0 to 1.0
int randomInt = (int) (Math.random() * 100); // 0 to 99
import java.util.Arrays;
int[] numbers = {3, 1, 4, 1, 5};
Arrays.sort(numbers);
String arrayString = Arrays.toString(numbers);
Common Patterns
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
public class User {
private String name;
private int age;
private String email;
private User(Builder builder) {
this.name = builder.name;
this.age = builder.age;
this.email = builder.email;
}
public static class Builder {
private String name;
private int age;
private String email;
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setAge(int age) {
this.age = age;
return this;
}
public Builder setEmail(String email) {
this.email = email;
return this;
}
public User build() {
return new User(this);
}
}
}
// Usage
User user = new User.Builder()
.setName("Alice")
.setAge(30)
.setEmail("alice@example.com")
.build();
Useful Packages
- "java.util" — Collections, utilities
- "java.io" — Input/output
- "java.nio" — New I/O API
- "java.lang" — Core language features
- "java.time" — Date and time API
- "java.util.stream" — Stream API
- "java.util.concurrent" — Concurrency utilities
Resources