> For the complete documentation index, see [llms.txt](https://muhammad-tri-wibowo.gitbook.io/java-tutorials/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://muhammad-tri-wibowo.gitbook.io/java-tutorials/introduction-to-java/history-and-features-of-java.md).

# History and Features of Java

**History:**

* **1991:** Java project initiated by James Gosling and his team at Sun Microsystems.
* **1995:** Java 1.0 officially released to the public.
* **2009:** Sun Microsystems acquired by Oracle Corporation.
* **2014:** Java 8 introduced lambdas and the Stream API.
* **2017:** Java 9 released with the module system and enhancements.

<figure><img src="/files/cWNEc969HmnXpaqTTZjG" alt=""><figcaption><p><a href="https://en.wikipedia.org/wiki/Java_version_history">https://en.wikipedia.org/wiki/Java_version_history</a></p></figcaption></figure>

**Key Features:**

1. **Simplicity:** Java was designed to be easy to use and write, allowing developers to create robust applications with fewer codes.
2. **Object-Oriented:** Everything in Java is treated as an object, making it easy to manage and manipulate data structures.
3. **Platform-Independent:** Java code can run on any device or operating system with the help of Java Virtual Machine (JVM), ensuring write once, run anywhere (WORA) capability.
4. **Distributed Computing:** Java supports creating applications that can be distributed across multiple machines in a network.
5. **Multithreading:** Java provides built-in support for multithreading, allowing the execution of multiple threads simultaneously, enhancing the performance of applications.
6. **Robust and Secure:** Java is designed with strong memory management, exception handling, and type checking mechanisms, making it robust and secure against common programming errors.
7. **Dynamic:** Java applications are capable of adapting to an evolving environment, making it suitable for various applications.
8. **Rich Standard Library:** Java comes with a vast library of classes and methods, simplifying the development process by providing pre-built components for various tasks.
