Outline of the Java programming language
| Part of a series on |
| Software development |
|---|
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 JVM bytecode for execution on a Java virtual machine (JVM), which allows "write once, run anywhere" programming. 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, more so a computer.
- Object-oriented programming – built mostly around objects and classes.
- Class-based programming – types and code are organized into classes.
- Compiled – source code is compiled to an intermediate representation: JVM bytecode.
- Interpreted – bytecode is executed by a Java virtual machine, which typically performs Just-in-time compilation.
- General-purpose programming language – designed for a wide variety of application domains.
- Static type checking – type checking is performed at compile time.
- Strongly typed – enforces strict type rules at compile time.
- Concurrent – 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 Class Library, standard library
- Java Development Kit
- Java Runtime Environment
- Javadoc
- Java package
- Java Platform Module System
- Java variables
- JVM bytecode
- Lambda expressions[10]
- Methods[11]
- Reflection
- Write once run anywhere[12]
Issues and limitations
- Abstraction from hardware – students miss low-level cost models
- Array limits – capped size and no true multidimensional arrays
- Checked exceptions – criticized as verbose and largely abandoned by other languages
- Floating-point limits – 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 (video game), 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 – JVM Lisp dialect
- Groovy
- JRuby – JVM Ruby implementation
- Jython – JVM Python implementation
- Kotlin – JVM JetBrains language
- Scala – JVM language combining object-oriented and functional paradigms[16]
See also
Wikibooks has a book on the topic of: Java Programming
| This article is part of a series on the Java programming language |
- 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". Oracle. Retrieved 17 September 2025.
- ^ "Introduction to Java". www.w3schools.com.
- ^ "Sun Microsystems Introduces Java: Research Starters Research". EBSCO Research.
- ^ "Java programming language: Research Starters". EBSCO Research.
- ^ "A Brief History of the Java Programming Language". 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.com. April 14, 2018.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.