Java — Bank account (class, record, exceptions)
A realistic Java class with a package declaration, fields, a nested record, methods that throw exceptions, and formatted output — for testing highlighters, javac, Checkstyle, and parsers.
// A small bank-account model: fields, a constructor, methods,
// exceptions, a record, and formatted output.
package com.example.bank;
import java.util.ArrayList;
import java.util.List;
public class BankAccount {
private final String owner;
private long balanceCents;
private final List<Transaction> history = new ArrayList<>();
public record Transaction(String kind, long amountCents) {}
public BankAccount(String owner, long openingCents) {
this.owner = owner;
this.balanceCents = openingCents;
history.add(new Transaction("open", openingCents));
}
public void deposit(long cents) {
if (cents <= 0) {
throw new IllegalArgumentException("deposit must be positive");
}
balanceCents += cents;
history.add(new Transaction("deposit", cents));
}
public void withdraw(long cents) {
if (cents > balanceCents) {
throw new IllegalStateException("insufficient funds");
}
balanceCents -= cents;
history.add(new Transaction("withdraw", -cents));
}
public double balance() {
return balanceCents / 100.0;
}
public static void main(String[] args) {
BankAccount account = new BankAccount("Jordan Rivera", 10_000);
account.deposit(2_500);
account.withdraw(1_200);
System.out.printf("%s: $%.2f over %d transactions%n",
account.owner, account.balance(), account.history.size());
}
}
Specifications
- Language
- Java
- Kind
- realistic snippet
- Lines
- 48
- Encoding
- UTF-8
- Line Endings
- LF
What is a .java file?
Java (.java) is a plain-text source file for the Java programming language — a statically typed, class-based, object-oriented language that compiles to JVM bytecode. It is widely used for enterprise back-ends, Android apps, and large systems, and emphasises explicit types and classes.
How to use this file
Use an example .java file to test syntax highlighters, the javac compiler, linters and formatters (Checkstyle, google-java-format), and parser or language-detection tooling.
Related files
- javaJava — Hello WorldThe classic hello-world in Java — a public class with the standard main method — for testing highlighters, javac, and Java parsers.

- cC — Hello WorldThe classic hello-world in C — an include, main, and printf — for testing highlighters, C compilers, and parsers against the canonical first program.

- cC — Linked list (structs, malloc, pointers)A realistic C program: a singly linked list with a typedef struct, malloc/free memory management, pointer walking, and error handling — for testing highlighters, compilers, and static analysers.

- cppC++ — Hello WorldThe classic hello-world in C++ — iostream and std::cout — for testing highlighters, C++ compilers, and parsers.

- cppC++ — Series (class template, STL)A realistic C++ snippet with a class template, STL algorithms (max_element, accumulate), std::move, and range handling — for testing highlighters, g++/clang++, and parsers against real templates.

- cssCSS — Component styles (variables, flexbox, keyframes)A realistic component stylesheet using custom properties, flexbox, a fluid clamp() font size, color-mix(), a keyframe animation, and a media query — for testing CSS parsers, linters (stylelint), and highlighters.

Generated by generation/code_samples.py. Free for any use, no attribution required — license.