Không giống như C++, kết hợp cú pháp cho lập trình có cấu trúc, chung và hướng đối tượng, Java được xây dựng gần như độc quyền như một ngôn ngữ hướng đối tượng. Tất cả mã được viết bên trong các lớp và mọi mục dữ liệu là một đối tượng, ngoại trừ các loại dữ liệu nguyên thủy, (ví dụ như số nguyên, số điểm nổi, giá trị boolean và ký tự), không phải là đối tượng vì lý do hiệu suất. Java sử dụng lại một số khía cạnh phổ biến của C++ (như phương pháp printf).
C++