Outline of the Java programming language
Appearance
From Wikipedia, the free encyclopedia
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?
[edit ]- 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
[edit ]See also: 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
[edit ]- 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
[edit ]See also: Criticism of Java
- 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
[edit ]- 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
[edit ]- 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
[edit ]- Android (operating system)
- Apache Hadoop
- Apache Tomcat
- Eclipse IDE
- Elasticsearch
- IntelliJ IDEA
- Jenkins
- Minecraft (Java Edition)
- NetBeans
Java open-source development communities
[edit ]- 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
[edit ]Java publications
[edit ]Books about Java
[edit ]- 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
[edit ]- 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
[edit ]See also: List of JVM 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
[edit ]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
[edit ]- Oracle — Java
- OpenJDK — reference implementation and community
- Java.com — runtime download and general info
References
[edit ]- ^ "Chapter 1: Introduction – The Java® Language Specification". Oracle. Retrieved 17 September 2025.
- ^ "Introduction to Java". www.w3schools.com.
- ^ "Sun Microsystems Introduces Java | Research Starters | EBSCO Research". EBSCO.
- ^ "Java programming language | Research Starters | EBSCO Research". EBSCO.
- ^ "A Brief History of the Java Programming Language | Baeldung". www.baeldung.com. January 2, 2022.
- ^ "Oracle Releases Java 25". Oracle. 16 September 2025. Retrieved 17 September 2025.
- ^ 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".
- ^ "Free Java Tutorials | Criticism of Java programming language". www.freejavaguide.com.
- ^ https://www.geeksforgeeks.org/java/disadvantages-of-java-language/
- ^ "Differences between Java EE and Java SE". Oracle. Retrieved 17 September 2025.
- ^ "An Overview of the JVM Languages | Baeldung". www.baeldung.com. April 14, 2018.