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
Testing contract
Expected to pass- Scenario
- Compile the file and run its main method.
- Expected result
- It compiles under Java 16+ (the nested `record Transaction` requires it) and prints `Jordan Rivera: $113.00 over 3 transactions`: opening 10000 cents, +2500, -1200 leaves 11300 cents and three history entries. `deposit(0)` throws IllegalArgumentException and an over-withdrawal throws IllegalStateException.
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.
How to use this file for testing
“Java — Bank account (class, record, exceptions)” is a deterministic Novus Examples fixture for Syntax highlighting, Code parsing, Editor testing. Idiomatic hello-world programs and realistic snippets across sixteen languages, exercising comments, string escapes, interpolation, numeric literals, and language keywords — for testing syntax highlighters, editor themes, and tree-sitter grammars.
Documented properties for this file: Java · UTF-8 · LF. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
This is a short, known-correct source file. Run it through your syntax highlighter, linter, formatter, tree-sitter grammar, or parser, and open it in the in-browser editor to tweak and re-download. Each snippet exercises comments, string escapes, literals, and language keywords.
Code examples
java BankAccount.java # single-file source, JDK 11+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.

- javaJava Lint Invalid — Empty Catch InvalidIntentionally lint-bait SAMPLE java snippet (empty-catch-invalid) for rule-engine tests.

- javaJava RecordJava record type hello for javac / highlighter fixtures.

- 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.

- cC StructC struct SAMPLE for clangd / highlighter fixtures.

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