Outline of the Java programming language
From HandWiki
Short description: Overview of and topical guide to Java
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]
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]
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]
General Java concepts
- See also: Java Language fundamentals on Wikibooks and Java syntax
- Annotations
- Class loaders
- Classes and Objects[7]
- Concurrency
- Constructors
- Fields[8]
- Garbage collection[9]
- 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 variables
- Lambda expressions[10]
- Methods[11]
- Reflection
- Write once run anywhere[12]
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[13][14]
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[15]
- JavaFX
- Java ME — Micro Edition for constrained devices and embedded systems
Java toolchain
- List of Java software and tools
- List of Java frameworks
- List of Java libraries
- List of Java compilers
- Comparison of Java virtual machines and List of Java virtual machines
- List of JVM languages
- List of application servers for Java
- List of unit testing frameworks for Java
- Comparison of IDEs for Java
Notable projects using Java
- Android (operating system)
- Apache Hadoop
- Apache Tomcat
- Eclipse IDE
- Elasticsearch
- IntelliJ IDEA
- Jenkins
- Minecraft (Java Edition)
- NetBeans
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
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
- Arthur van Hoff
- Bill Joy
- Craig L. Russell
- Doug Lea
- Gilad Bracha
- Guy L. Steele Jr.
- James Gosling
- Joshua Bloch
- Martin Odersky
- Urs Hölzle
Java dialects and related languages
- Clojure — Lisp dialect for the JVM
- Groovy
- JRuby – Ruby implementation for the JVM
- Jython — Python implementation for the JVM
- Kotlin — JVM language from JetBrains
- Scala — JVM language combining OOP and functional paradigms[16]
See also
| Wikibooks has a book on the topic of: Java Programming |
- Java Community Process
- Java version history
- Outline of computer programming
- Outline of software
- Outline of software engineering
- List of Kotlin software and tools
- List of programmers
- Outlines of other programming languages
- Outline of the C programming language
- Outline of the C sharp programming language
- Outline of the C++ programming language
- Outline of the JavaScript programming language
- Outline of the Perl programming language
- Outline of the Python programming language
- Outline of the Rust programming language
External links
- Oracle — Java
- OpenJDK — reference implementation and community
- Java.com — runtime download and general info
References
- ↑ "Chapter 1: Introduction – The Java® Language Specification". https://docs.oracle.com/javase/specs/jls/se12/html/jls-1.html.
- ↑ "Introduction to Java". https://www.w3schools.com/java/java_intro.asp.
- ↑ "Sun Microsystems Introduces Java | Research Starters | EBSCO Research". https://www.ebsco.com/.
- ↑ "Java programming language | Research Starters | EBSCO Research". https://www.ebsco.com/.
- ↑ "A Brief History of the Java Programming Language | Baeldung". January 2, 2022. https://www.baeldung.com/java-history.
- ↑ "Oracle Releases Java 25". 16 September 2025. https://www.oracle.com/news/announcement/oracle-releases-java-25-2025-09-16/.
- ↑ https://www.geeksforgeeks.org/java/classes-objects-java/
- ↑ https://www.geeksforgeeks.org/java/java-lang-reflect-field-class-in-java/
- ↑ https://www.geeksforgeeks.org/java/garbage-collection-in-java/
- ↑ https://www.geeksforgeeks.org/java/lambda-expressions-java-8/
- ↑ https://www.geeksforgeeks.org/java/methods-in-java/
- ↑ Team, Udemy (January 7, 2022). "13 Top Core Java Concepts You Need to Know". https://blog.udemy.com/core-java-concepts/.
- ↑ "Free Java Tutorials | Criticism of Java programming language". https://www.freejavaguide.com/criticism.html.
- ↑ https://www.geeksforgeeks.org/java/disadvantages-of-java-language/
- ↑ "Differences between Java EE and Java SE". https://docs.oracle.com/javaee/6/firstcup/doc/gkhoy.html.
- ↑ "An Overview of the JVM Languages | Baeldung". April 14, 2018. https://www.baeldung.com/jvm-languages.
