Data Types
Primitive Types
int age = 25;
double price = 9.99;
char grade = 'A';
boolean isActive = true;
Variables and Constants
int number = 10;
final double PI = 3.14159; // constant
Operators
Arithmetic
int sum = 5 + 3;
int product = 5 * 2;
Relational
boolean isEqual = (a == b);
Logical
boolean result = (x > 5) && (y < 10);
Type Casting
int i = (int) 3.14; // explicit
float f = 10; // implicit
Input / Output
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
System.out.println("Hello " + name);
Control Flow
if / else / switch
if (x > 0) {
System.out.println("Positive");
} else {
System.out.println("Non-positive");
}
switch (day) {
case 1: System.out.println("Mon"); break;
}
Loops
for (int i = 0; i < 5; i++) {}
while (x > 0) {}
do {} while (x > 0);
break / continue
for (int i = 0; i < 10; i++) {
if (i == 5) continue;
if (i == 8) break;
}
Object-Oriented Programming
Classes and Objects
class Dog {
String name;
void bark() {
System.out.println("Woof");
}
}
Dog d = new Dog();
d.name = "Rex";
Constructors, this, Overloading
Dog(String name) {
this.name = name;
}
Dog(String name, int age) { ... }
Access Modifiers, Encapsulation
private int id;
public void setId(int id) { this.id = id; }
Inheritance, Overriding, Polymorphism
class Animal {}
class Cat extends Animal {
@Override void speak() {}
}
Abstract Classes, Interfaces
abstract class Shape { abstract void draw(); }
interface Drawable { void draw(); }
Static, final, Inner Classes
static int count;
final int MAX = 100;
class Outer { class Inner {} }
Exception Handling
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Error: " + e.getMessage());
} finally {
System.out.println("Cleanup");
}
void risky() throws IOException {}
throw new IllegalArgumentException("Bad input");
Collections and Data Structures
int[] nums = {1, 2, 3};
ArrayList list = new ArrayList<>();
LinkedList ll = new LinkedList<>();
HashMap map = new HashMap<>();
HashSet set = new HashSet<>();
Stack stack = new Stack<>();
Queue queue = new LinkedList<>();
Collections.sort(list);
Strings
String s = "hello";
s.length();
s.toUpperCase();
s.substring(1,3);
StringBuilder sb = new StringBuilder("hi");
sb.append(" there");
String a = "test";
String b = new String("test");
a == b // false
a.equals(b) // true
Advanced Topics
enum Color { RED, GREEN, BLUE; }
class Box { T value; }
Runnable r = () -> System.out.println("Hello");
List list = Arrays.asList("a", "b", "c");
list.stream().filter(x -> x.equals("a"));
@FunctionalInterface
interface MyFunc { void run(); }
@interface MyAnnotation {}
import java.util.*;
void printAll(String... args) {}
Multithreading
class MyThread extends Thread {
public void run() {
System.out.println("Running");
}
}
Thread t = new MyThread();
t.start();
Runnable r = () -> {};
new Thread(r).start();
synchronized void syncMethod() {}
Thread.sleep(1000);
t.join();
wait(); notify();
File Handling
FileReader fr = new FileReader("file.txt");
BufferedReader br = new BufferedReader(fr);
FileWriter fw = new FileWriter("out.txt");
BufferedWriter bw = new BufferedWriter(fw);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("data.obj"));
oos.writeObject(obj);
Java Standard Libraries
// java.util: Collections, Date, Scanner
// java.lang: Math, String, Object (auto-imported)
// java.io: File, BufferedReader, InputStream
Miscellaneous
// JVM: Executes bytecode
// JRE: JVM + standard libraries
// JDK: JRE + development tools
public static void main(String[] args) {
System.out.println("Hello Java");
}
for (String arg : args) {
System.out.println(arg);
}
System.gc();
// Access JavaDoc: use javadoc tool or IDE shortcut

Comments