Introduction to Java: A Comprehensive Guide for Beginners (J2SE, J2EE, J2ME Explained)

Confusion Cleared: Unraveling the Basics of Java, Its History, Classification, and Key Technologies (J2SE, J2EE, J2ME). Perfect Guide for Beginners.

Introduction to Java: A Comprehensive Guide for Beginners (J2SE, J2EE, J2ME Explained)

Java was first released in 1996 by Sun Microsystems and was originally called Oak. The language was later renamed Java and quickly gained popularity due to its ability to run on multiple platforms, including Windows, Unix, and Mac OS.

When starting with learning Java, a curious student may face many doubts such as :

  • Confusion between Java, advance Java, J2SE, J2EE, J2ME

  • Development possibilities with Java [Desktop app, web app, mobile app]

  • Open JDK vs Oracle JDK

  • Should we learn C++ or Java or something else in 2023

  • Roadmap

Let’s get the basics cleared.

J2SE, J2EE, J2ME

  • J2SE - Java Standard Edition

    • Java is a versatile programming language used for various purposes. Core Java refers to the foundational components of Java like syntax, OOPs concepts, basic libraries and other features that Java offers.

    • J2SE is a computing platform that encompasses a broader set of libraries and tools for building various types of applications, not just limited to core components. Basically, J2SE is JDK(Java Development Kit).

      • When we refer to core Java, we usually refer to J2SE.
    • If you know core Java you can build standalone applications (or) desktop applications like Calculator, Clock, PDF Reader, and Viedo Player. Apps that do not require networking.

  • J2EE - Java Enterprise Edition

    • J2EE is JDK that encompasses libraries and tools that can be used to build Web Applications and Servelets. J2EE is widely used in industry.

      • When we refer to Advance Java, we usually mean J2EE.
  • J2ME - Java Micro Edition

    • J2ME was developed focusing on mobile devices but Android took over.
      It is still being used for small electronics and embedded devices that have limited capabilities like setup boxes, cards, etc.

Oracle Java and Open JDK

In 2007, Sun Microsystems also released an Open JDK which is an official reference implementation of Java SE 7.
Since Java 10(in 2018), the Open JDK is the responsibility of the JDK Project.

Oracle Java is paid and has support by Oracle whereas OpenJDK is open source and free for use. OpenJDK also has a large open-source community support. Various companies provide their Java builds with their support including Oracle, Red Hat, Azul Systems, and more.

Should you learn Java in 2023? C++ vs Java

Let's keep it concise:

  • For college placements or DSA -> C++ and Java, both have equal weightage.

  • If you want to do development in the future Java gives you an edge.

  • If you want to do competitive programming in the future C++ gives you an edge.

With time various new technologies have taken up the market for web development you can use ReactJS and NodeJS, for Android Kotlin is being used. The introduction of these specialised technologies has led to a decrease in the popularity of Java.

Is Java Dead?

Java is a legacy language and has passed the test of time to remain among the top programming languages. It has emerged as a very secure and robust language over time for enterprises to build their systems. Due to constant updates in Java and its ecosystem Java remains popular and is still a top choice for Enterprises. So, Java is still popular in 2023.
There is a new release in Java every 6 months, therefore most people believe Java will eventually catch up to all those new technologies coming into the market.

Remember language is just a tool for solving real problems and some tools are better for certain tasks and some for others. So keep your focus on solving the problems, you can learn different tools with time and starting with a language like Java will help you in that.

Basic Roadmap for Learning Java in 2023

This roadmap is to help you look at your path and understand things better.

1. Core Java Fundamentals:

  • Start your journey by mastering the core concepts of Java, including its architecture, syntax, and data types.

  • Understand control flow structures like If-else and Switch Case, which allow you to make decisions in your code.

  • Learn loops for repetitive tasks and delve into the principles of Object-Oriented Programming (OOP), which Java is built upon.

  • Familiarize yourself with Data Structures and Algorithms (DSA) to solve complex problems efficiently.

  • Explore the Collections Framework to work with data collections, such as lists, maps, and sets.

  • Gain expertise in Exception Handling to manage errors and exceptions gracefully.

  • Dive into Multi-Threading to harness the power of concurrency in Java applications.

2. Graphical User Interfaces (GUIs):

  • To create user-friendly Java applications, consider learning about GUI development.

  • Explore Java Swing (a legacy option) or JavaFX (the latest choice) to build interactive frontends.

  • While not mandatory for all Java developers, a basic understanding of GUI development can be beneficial.

3. Practical Project:

  • Apply your knowledge by building a simple project. This hands-on experience will help you understand how Java concepts come together in real-world applications.

  • You can create a basic desktop application or explore other project ideas that align with your interests.

4. Java Frameworks:

  • Once you have a solid grasp of Java fundamentals, consider delving into Java frameworks.

  • Java frameworks are pre-built libraries and tools that simplify application development, saving time and effort.

  • Some popular Java frameworks include:

    • Spring Framework: Widely used for building enterprise-level applications, it offers features like dependency injection, aspect-oriented programming, and more.

    • Hibernate: An Object-Relational Mapping (ORM) framework for database interaction.

    • Struts: A framework for developing web applications using the Model-View-Controller (MVC) pattern.

  • Java frameworks enhance productivity and maintainability, making them valuable tools in professional software development.

Remember, learning is an ongoing process, and there's always something new to explore. As you progress, stay updated with industry trends, best practices, and emerging technologies to become a proficient Java developer. Self-guided learning and continuous improvement are key factors in your journey to mastering Java.

Java Versions History

(Checkout latest versions here ~ https://www.codejava.net/java-se/java-se-versions-history)