Java Learning Notes — Telusko Core Java | Video 01
When I started learning Core Java, the first lesson looked simple.
It talked about Java, the JVM, enterprise applications, WORA, James Gosling, Sun Microsystems, and Java releases.
But while going through the lesson, I realized something:
Knowing the words is not the same as understanding them.
For example, I understood the sentence:
"Java was created at Sun Microsystems."
But then I immediately had another question:
"What is Sun Microsystems?"
And when I learned that Oracle acquired Sun Microsystems, I had another:
"So did Oracle create Java?"
This article is my attempt to answer these kinds of beginner questions in simple language.
I am writing these explanations based on what I learned from the lesson, my own understanding, and additional resources I used while trying to clear up the concepts.
The goal is not just to give an answer to memorize, but to explain why the answer makes sense.
What This Article Covers
These are the questions I am going to answer:
- Why is Java widely used in enterprise software?
- What is the JVM?
- Which other languages can run on the JVM?
- Why can Java feel difficult at first?
- What does WORA mean?
- Who led the original Java development team?
- When was Java introduced?
- What is the general modern Java release cadence?
At the end, I have also added a quick revision section and short interview-ready answers.
1. Why is Java widely used in enterprise software?
What I understood first
One thing that stood out to me while learning Java is how often it appears in the enterprise world.
You will see Java being used in areas such as:
- Banking
- Insurance
- E-commerce
- Healthcare
- Telecommunications
- Government systems
- Large backend applications
But initially, I wondered:
"Why Java? There are so many programming languages today."
The answer is not just one feature.
Java became popular because it combines several characteristics that are useful when building and maintaining large software systems.
1. Platform independence
One of Java's biggest ideas is that Java source code is compiled into bytecode, which can be executed by a compatible JVM.
So instead of thinking:
Java Program → Windows only
we can think:
Java Source Code
↓
Compiler
↓
Bytecode
↓
JVM
↙ ↓ ↘
Windows Linux macOS
This portability was one of Java's major strengths.
2. A large ecosystem
Java has been around for decades, so a huge ecosystem has grown around it.
There are:
- Libraries
- Frameworks
- Build tools
- Testing tools
- Monitoring tools
- Development tools
- Community resources
For example, when I later started looking at backend development, I encountered technologies such as Spring and Spring Boot, which are part of the broader Java ecosystem.
So learning Java doesn't mean learning only the language syntax.
You are also entering a much larger ecosystem.
3. Maintainability
This was another point that made more sense to me after learning more about Java.
Java can feel verbose.
You may have to write more code than you would in some other languages.
But that explicit structure can also make large codebases easier to understand.
Imagine a project with:
10 files
versus:
10,000+ files
The second situation is very different.
When hundreds of developers work on a large application, readability, structure, typing, testing, and maintainability become extremely important.
That is one reason Java's style has remained useful in large systems.
4. Performance and the JVM
Java also benefits from the JVM's runtime optimizations.
Modern JVMs can use techniques such as Just-In-Time (JIT) compilation to optimize code while programs are running.
So Java isn't simply:
"A language that runs slowly because it uses a virtual machine."
The JVM is a sophisticated runtime platform.
What I remember from this
When I think about Java's popularity in enterprise software, I don't try to memorize ten different reasons.
I remember:
Java = Portability + Mature Ecosystem + Maintainability + Performance
Easy to Remember
Why is Java popular in enterprise software?
Because Java provides portability, a mature ecosystem, maintainability, and strong runtime performance.
Short Interview Answer
Java is widely used in enterprise software because of its platform-independent execution model, mature ecosystem, maintainability, performance, and long-term adoption.
2. What is the JVM?
This was one of the first concepts that confused me.
I kept seeing:
JVM
JDK
JRE
Java
and initially they all seemed connected but unclear.
For this lesson, let's focus only on JVM.
JVM = Java Virtual Machine
JVM stands for:
Java Virtual Machine
The easiest way I understand it is:
The JVM is the environment that executes Java bytecode.
Let's see what that means.
Suppose I write:
class Hello {
public static void main(String[] args) {
System.out.println("Hello");
}
}
This is Java source code.
The Java compiler converts it into bytecode.
Conceptually:
Java Source Code
↓
javac
↓
Bytecode
↓
JVM
↓
Execution
The bytecode is stored in a .class file.
The JVM then loads and executes that bytecode.
But why do we need a JVM?
This is where the idea of Java's portability becomes interesting.
Different operating systems have different environments.
A Windows JVM is designed to work with Windows.
A Linux JVM is designed to work with Linux.
A macOS JVM is designed to work with macOS.
So we can imagine:
Java Bytecode
│
┌───────────┼───────────┐
↓ ↓ ↓
Windows JVM Linux JVM macOS JVM
↓ ↓ ↓
Windows Linux macOS
The Java bytecode can remain the same while the JVM handles the platform-specific execution.
This is one of the foundations behind Java's famous:
Write Once, Run Anywhere
idea.
One important clarification
The JVM is not Java itself.
I found this distinction important because beginners can easily mix these terms.
Think of it this way:
Java
↓
Programming Language
JVM
↓
Runtime environment that executes bytecode
🧠 Easy to Remember
JVM = Java Virtual Machine = executes Java bytecode
If you remember only one thing from this section, remember that.
🎯 Short Interview Answer
JVM stands for Java Virtual Machine. It is the runtime environment responsible for executing Java bytecode and is a key part of Java's platform-independent execution model.
3. Which other languages can run on the JVM?
This was another interesting thing I learned from the first lesson.
I initially thought:
JVM = Java
But that's not completely true.
The JVM can support multiple programming languages.
Some examples are:
- Java
- Kotlin
- Scala
- Groovy
Why can this happen?
The JVM works with bytecode.
A language that can compile its code to JVM-compatible bytecode can use the JVM as its runtime environment.
So we can think of it like:
Java ────────┐
Kotlin ──────┤
Scala ───────┤──→ JVM
Groovy ──────┘
This is why the JVM is better thought of as a runtime platform, rather than simply "the thing that runs Java."
Why is this useful for me as a learner?
This changed the way I thought about learning Core Java.
Suppose I later work with Kotlin.
Understanding concepts such as:
- Bytecode
- JVM
- Classes
- Objects
- Memory
- Exceptions
- Collections
can still be useful because Kotlin is part of the JVM ecosystem.
So learning Core Java can give you knowledge that goes beyond Java syntax itself.
Easy to Remember
JVM is not only for Java.
Remember:
Java + Kotlin + Scala + Groovy → JVM ecosystem
Short Interview Answer
Languages such as Kotlin, Scala, and Groovy can run on the JVM by targeting JVM-compatible bytecode.
4. Why can Java feel difficult at first?
This is probably the question I relate to the most as a learner.
When I compare a very simple Java program with something like Python, Java can look unnecessarily complicated.
For example:
class Main {
public static void main(String[] args) {
System.out.println("Hello");
}
}
While Python can simply use:
print("Hello")
So naturally, a beginner may think:
"Why does Java require so much code?"
Java can be verbose
Java requires beginners to understand concepts such as:
- Classes
- Methods
- Access modifiers
- Data types
- The
main()method - Objects
- Packages
That's a lot to process when you are writing your first few programs.
But there is another side to it.
Structure becomes useful as applications grow
Imagine writing a tiny program.
You may prefer:
Less code → faster to write
But imagine working on a huge application with thousands of classes and many developers.
Now you care much more about:
Structure → readability → maintainability
Java's explicit structure can help developers understand what different parts of a large codebase are supposed to do.
So I think the better way to look at it is:
Beginning
↓
Java feels verbose
↓
Learn the structure
↓
Understand classes, methods, types, etc.
↓
Large code becomes easier to reason about
What I would tell another beginner
Don't decide that Java is "bad" simply because the first few programs look long.
At the beginning, you are learning both the language and the structure used by the language.
Once those patterns become familiar, they stop feeling as complicated.
🧠 Easy to Remember
Java can be verbose to write, but its structure can help with readability and maintainability in large applications.
🎯 Short Interview Answer
Java can feel difficult initially because it is relatively verbose and requires beginners to learn several concepts such as classes, methods, data types, and object-oriented programming. However, its structured nature can support readability and maintainability in large applications.
5. What does WORA mean?
This was one of the first Java terms I wanted to properly understand.
WORA means:
Write Once, Run Anywhere
At first, this sounds almost too good to be true.
Does it mean I write Java code once and it magically runs everywhere?
Not exactly.
The JVM is the important part.
How WORA works
The simplified process is:
Java Source Code
↓
Compiler
↓
Bytecode
↓
JVM
↓
Operating System
The Java compiler doesn't simply create code that is directly tied to one operating system.
Instead, it produces bytecode.
The JVM on the target platform then executes that bytecode.
For example:
Same Bytecode
│
┌──────────┼──────────┐
↓ ↓ ↓
Windows Linux macOS
JVM JVM JVM
That's the core idea behind WORA.
Is WORA literally 100% true?
This is something I think is important to clarify for beginners.
WORA is a design principle, not a guarantee that every Java application will work everywhere without any configuration or changes.
A Java application can still depend on:
- Operating-system-specific behavior
- Native libraries
- External services
- Environment variables
- File-system assumptions
- Hardware-specific integrations
So I would understand WORA as:
Java's bytecode-based execution model provides strong platform portability through the JVM.
Easy to Remember
WORA = Write Once, Run Anywhere
And remember the mechanism:
Java → Bytecode → JVM → Platform
Short Interview Answer
WORA stands for Write Once, Run Anywhere. It refers to Java's ability to compile source code into bytecode that can be executed on different platforms through compatible JVM implementations.
6. Who led the original Java development team?
This question took me to the history of Java.
Java was developed at:
Sun Microsystems
The original development effort was led by:
James Gosling
He is widely known as the father of Java.
However, one thing I want to be careful about is saying:
"James Gosling created Java completely by himself."
That would oversimplify the history.
Java was developed by a team of engineers at Sun Microsystems, with James Gosling leading the original effort.
The early project was connected to Sun's Green Project.
The language was initially called:
Oak
and was later renamed Java.
The history in one picture
Sun Microsystems
↓
Green Project
↓
Oak
↓
Java
↓
Publicly introduced in 1995
This is also why I created a separate article about Sun Microsystems, James Gosling, Oak, and Oracle while working through this lesson.
If you are confused by the sentence:
"Java was created at Sun Microsystems"
you can read my detailed explanation here:
👉 Java Introduction: What Is Java, Who Created It, and How Sun Microsystems Became Oracle?
Easy to Remember
James Gosling → Java
and:
Sun Microsystems → Company where Java was developed
Short Interview Answer
Java was developed by James Gosling and a team of engineers at Sun Microsystems. Gosling led the original development effort and is widely known as the father of Java.
7. When was Java introduced?
The answer I need to remember is:
1995
But there is a little more history behind that number.
Java didn't suddenly appear in 1995.
The development began earlier.
Sun's Green Project began in the early 1990s, and the language was initially known as Oak.
Java was publicly introduced in 1995. Oracle's historical documentation describes the early Green Project and Oak work and identifies 1995 as the public introduction of Java.
So I remember the timeline like this:
Early 1990s
↓
Green Project
↓
Oak
↓
1995
↓
Java publicly introduced
1991 vs 1995 — don't mix them up
This is a small detail that can easily cause confusion.
You may find different sources saying:
Java started in 1991.
and others saying:
Java was introduced in 1995.
Both statements can appear because they refer to different events.
A simple way to remember it:
1991 → early project/development
1995 → Java publicly introduced
What happened to Sun Microsystems?
This was another question I had after hearing about Java's history.
If Sun Microsystems developed Java, why do I see Oracle everywhere today?
Because Oracle acquired Sun Microsystems.
That is a separate part of the story, and I have explained it in detail in my companion article:
👉 What Was Sun Microsystems and How Did Java Become Associated With Oracle?
🧠 Easy to Remember
1991 → Early Java project
1995 → Java publicly introduced
🎯 Short Interview Answer
Java was publicly introduced in 1995. Its development began earlier in the 1990s as part of Sun Microsystems' Green Project, where the language was initially called Oak.
8. What is the general modern Java release cadence?
This was a concept I initially didn't pay much attention to.
But after learning more about modern Java, I realized that Java doesn't follow the old model of:
"Wait several years → release a huge new version."
Modern Java uses a time-based release model.
What does six-month release cadence mean?
Modern Java has feature releases approximately every six months.
For example:
March 2024
↓
Java 22
September 2024
↓
Java 23
March 2025
↓
Java 24
September 2025
↓
Java 25
March 2026
↓
Java 26
Oracle's documentation confirms that Java uses a time-based model in which the feature version increments every six months.
This regular schedule means Java can continue evolving without waiting years for another major release.
Does every release completely change Java?
No.
This is another thing I found useful to understand.
Java continues to evolve, but the core language doesn't get completely replaced every six months.
New releases can introduce:
- Language improvements
- JVM improvements
- Library improvements
- Performance improvements
- Security fixes
- Developer-experience improvements
For example, Java's recent releases have introduced or finalized features such as record patterns, pattern matching, module import declarations, and other language improvements.
So I think of Java's evolution as:
Stable foundation
+
Continuous improvements
↓
New Java releases
What about LTS releases?
This is another term you will hear frequently:
LTS = Long-Term Support
Not every Java feature release is treated the same way by organizations.
Some Java releases are designated as LTS releases and are particularly important for teams that want longer-term support.
For example:
- Java 8
- Java 11
- Java 17
- Java 21
- Java 25
are commonly recognized LTS releases.
The important thing for me as a beginner is simply:
Feature releases bring new improvements regularly, while LTS releases are especially important when organizations want a longer support horizon.
Easy to Remember
Modern Java → roughly one feature release every 6 months
And:
LTS → Long-Term Support
Short Interview Answer
Modern Java follows a time-based release model with feature releases approximately every six months. Some releases are designated as Long-Term Support releases for users and organizations that need longer support periods.
🧠 My One-Minute Revision Sheet
After going through all these questions, this is what I personally want to remember before moving to the next lesson:
Java
│
├── Enterprise
│ └── Large-scale applications
│
├── JVM
│ └── Executes Java bytecode
│
├── JVM Languages
│ ├── Java
│ ├── Kotlin
│ ├── Scala
│ └── Groovy
│
├── WORA
│ └── Write Once, Run Anywhere
│
├── Java History
│ ├── Sun Microsystems
│ ├── James Gosling
│ ├── Oak
│ └── Java → 1995
│
└── Modern Java
└── Feature release ≈ every 6 months
🎯 8 Interview Questions — Super Short Answers
If I only have a few minutes before an interview, these are the answers I would revise.
1. Why is Java widely used in enterprise software?
Java offers portability, a mature ecosystem, maintainability, and strong runtime performance, making it suitable for large-scale applications.
2. What is JVM?
JVM stands for Java Virtual Machine and is responsible for executing Java bytecode.
3. Which other languages run on the JVM?
Kotlin, Scala, Groovy, and several other languages can target the JVM.
4. Why can Java feel difficult initially?
Java can be verbose and requires beginners to understand concepts such as classes, methods, data types, and OOP, but its structure can help maintain large applications.
5. What is WORA?
WORA means Write Once, Run Anywhere. Java bytecode can run on different platforms through compatible JVMs.
6. Who led the original Java development?
James Gosling led the original Java development effort at Sun Microsystems along with a team of engineers.
7. When was Java introduced?
Java was publicly introduced in 1995.
8. What is Java's modern release cadence?
Java has a time-based release model with feature releases approximately every six months.
What I Learned From This First Lesson
The biggest thing I took away from this lesson is that learning Java is not only about learning Java syntax.
There is a whole ecosystem behind it.
At first, I only knew:
Java is a programming language.
Now I have a better mental picture:
Java
│
┌──────────┼──────────┐
↓ ↓ ↓
Language JVM Ecosystem
│ │ │
↓ ↓ ↓
Code Bytecode Frameworks
Libraries
Tools
And then there is the history:
Sun Microsystems
↓
Green Project
↓
Oak
↓
Java
↓
1995
↓
Java evolves continuously
↓
Oracle becomes its steward after
acquiring Sun Microsystems
Understanding this background makes the later concepts feel less disconnected.
A Note for Other Beginners
If you're also starting Java, don't worry if terms like JVM, JDK, JRE, bytecode, WORA, Sun Microsystems, or Oracle seem confusing in the beginning.
I had the same problem.
Instead of trying to memorize everything immediately, I found it more useful to stop whenever I encountered an unfamiliar term and ask:
"What exactly is this?"
Then understand that one concept before moving forward.
That's the approach I'm trying to follow throughout this Java learning series.
📚 Related Article
While writing these notes, I had a separate question:
"What exactly was Sun Microsystems, and why is Oracle associated with Java today?"
So I researched that topic separately and wrote a detailed beginner-friendly explanation:
👉 Java Introduction: What Is Java, Who Created It, and How Sun Microsystems Became Oracle?
That article goes deeper into:
- Sun Microsystems
- James Gosling
- The Green Project
- Oak
- Java's history
- Oracle's acquisition of Sun Microsystems
🔗 My Java Learning Notes
I am also maintaining the complete learning notes and resources in my GitHub repository.
👉 Java Learning Notes — Telusko Core Java
The GitHub repository contains the structured notes, while these DEV.to articles are where I am going deeper into the concepts and questions that I find confusing during my learning.
Final Takeaway
For me, the first Java lesson became much easier once I stopped looking at it as a list of facts.
Instead, I connected the ideas:
Java → JVM → Bytecode → WORA → Enterprise
and:
Sun Microsystems → James Gosling → Oak → Java → 1995 → Oracle
Now I'm ready to move from understanding the background of Java to actually setting up Java and writing my first programs.
This is part of my ongoing Java learning journey. I'm documenting what I learn, the questions I get stuck on, and the explanations that finally make the concepts click for me — hopefully they can help another beginner too.
Top comments (0)