Top Qs
Timeline
Chat
Perspective
Outline of the Java programming language
Overview of and topical guide to Java From Wikipedia, the free encyclopedia
Remove ads
The following outline is provided as an overview of and topical guide to Java:
Java is a general-purpose, concurrent, object-oriented, class-based, strong, and statically typed programming language that is compiled to Java bytecode for execution on a Java Virtual Machine (JVM), where you can write once and run anywhere. Java was designed by James Gosling and a team at Sun Microsystems in the early 1990s and was a core component of Sun's Java platform.[1][2][3]
Remove ads
What type of language is Java?
- Programming language — artificial language designed to communicate instructions to a machine, particularly a computer.
- Object-oriented programming — built primarily around objects and classes.
- Class-based language — types and code are organized into classes.
- Compiled language — source code is compiled to an intermediate form (Java bytecode).
- Interpreted language — bytecode is executed by a Java virtual machine, which typically performs just-in-time.
- General-purpose programming language — designed for a wide variety of application domains.
- Statically typed — type checking is performed at compile-time.
- Strongly typed language — enforces strict type rules at compile time.
- Concurrent language — built-in support for multithreading and concurrency utilities.[4]
Remove ads
History of Java
- Oak — early name for a new programming language started at Sun Microsystems[5]
- Acquisition of Sun Microsystems by Oracle Corporation in 2010, along with the Java programming language and APIs.
- Oracle litigation against Google's Android OS for using Java APIs from Oracle. See also: Comparison of Java and Android API
- Java 25 — latest major release published September 16, 2025[6]
Remove ads
General Java concepts
- See also: Java Language fundamentals on Wikibooks
- Annotations
- Class loaders
- Classes and Objects
- Concurrency
- Constructors
- Fields
- Garbage collection
- Generics
- Interface (Java)
- Java Virtual Machine
- Java bytecode
- Java class library / standard library
- Java Development Kit
- Java Runtime Environment
- Javadoc
- Java package
- Java Platform Module System
- Java syntax
- Java variables
- Lambda expressions
- Methods
- Reflection
- Write once run anywhere[7]
Issues and limitations
- Abstraction from hardware — students miss low-level cost models
- Array limitations — capped size and no true multidimensional arrays
- Checked exceptions — criticized as verbose and largely abandoned by other languages
- Floating-point limitations — incomplete IEEE 754 support
- Generics via type erasure — limits expressiveness and caused unsoundness bugs
- Java performance — early implementations were slow compared to C/C++
- Primitive vs. object divide — forces code duplication in libraries
- Serialization — widely seen as a serious security risk
- Lack of tuples — requires awkward workarounds or third-party libraries
- Licensing and governance controversies — Sun Microsystems acquisition by Oracle and subsequent litigation
- No operator overloading — makes math-heavy code less readable
- Potential sources of security vulnerabilities in Java applications
- Project Valhalla (missing value types) — inefficiency due to everything being objects
- Security vulnerabilities — repeated sandbox escapes and exploit waves
- Unsigned integer types — problematic for cryptography and C interop
- Weak parallelism — monitors criticized as insecure and unreliable[8]
Remove ads
Java platform and editions
- Java SE — Java Platform Standard Edition
- Jakarta EE (formerly Java EE) — Enterprise Edition APIs and runtime for multi-tiered server applications[9]
- JavaFX
- Java ME — Micro Edition for constrained devices and embedded systems
Java toolchain
Notable projects using Java
Java open-source development communities
- Apache Software Foundation — Apache Commons, Apache Maven, Apache Tomcat, Apache Kafka
- Eclipse Foundation — Adoptium, Eclipse IDE, Jakarta EE, Eclipse Jetty, Eclipse Vert.x
- OpenJDK community — Java Platform Standard Edition
- Oracle — GraalVM (Community Edition), JavaFX (OpenJFX)
- Red Hat / JBoss — Hibernate, Drools, Quarkus
Remove ads
Example source code
Java publications
Books about Java
- Bruce Eckel – Thinking in Java
- James Gosling – The Java Programming Language
- Joshua Bloch – Effective Java
- Kathy Sierra – Head First Java
- Herbert Schildt – Java: The Complete Reference, Java: A Beginner's Guide, Java 2 Programmer's Reference
Java programmers
Java dialects and related languages
See also
External links
References
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads