[java] What is the difference between java and core java?

When looking at job openings on-line, I noticed that some openings required knowledge of "core Java". What is core java and how is different from java?

This question is related to java

The answer is


Java has mainly three sub categories :

  1. Java Standard Edition (JSE) or Core Java
  2. Java Enterprise Edition (JEE)
  3. Java Mobile Edition (JME)

where core java is the first and basic step of all to start or learn java from beginning.


Core Java is Sun Microsystem's, used to refer to Java SE. And there are Java ME and Java EE (J2EE). So this is told in order to differentiate with the Java ME and J2EE. So I feel Core Java is only used to mention J2SE.

Java having 3 category:

J2SE(Java to Standard Edition) - Core Java

J2EE(Java to Enterprises Edition)- Advance Java + Framework

J2ME(Java to Micro Edition)

Thank You..


"Core Java" is Sun Microsystem's term, used to refer to Java SE. And there are Java ME and Java EE (J2EE). So this is told in order to differentiate with the Java ME and J2EE. So I feel Core Java is only used to mention J2SE.

Happy learning!


In simple language core java stands for the concepts of Inheritance, Polymorphism,Abstraction,Encapsulation,class,objects which comes under core java. Core java stands for J2SE. I hope this can clear you doubts.


Java is programming language but Core java is just a part of java. Core java is the basic of java. If you are new to JAVA then you have to start with core java.

Java is basically categories in 3 parts :

1.) J2SE / Core java stands for Java 2 standard edition and is normally for developing desktop applications, forms the core/base API.

2.) J2EE stands for Java 2 enterprise edition for applications which run on servers, for example web sites. (Spring, Struts are the java frameworks mainly used for J2EE)

3.) J2ME stands for Java 2 micro edition for applications which run on resource constrained devices (small scale devices) like cell phones, for example games.

To learn J2EE or J2ME, you should know core java.


Core Java:
It’s a general term used by Sun Microsystems to describe the standard version of Java (JSE). It’s the most basic version of Java which sets the foundation for all other editions of Java plus a set of related technologies such as CORBA, Java VM, etc. Core Java refers to a collection of libraries rather than just the programming language.

Java :
Java is hypothetically everywhere, thanks to its readability and simplicity. From mobile applications to websites, game consoles to datacenters, from mobile phones to the Internet, Java is everywhere. Millions of devices throughout the world use Java as a core programming language. Even all native Android apps come built-in with Java and several companies use Java as server-side scripting language for backend development.

According to some developers, "Core Java" refers to package API java.util.*, which is mostly used in coding.

The term "Core Java" is not defined by Sun, it's just a slang definition.

J2ME / J2EE still depend on J2SDK API's for compilation and execution.

Nobody would say java.util.* is separated from J2SDK for usage.


I think when you see the phrase "core Java," they are talking about the basics of the language and maybe some knowledge of Java SE. I don't know why they would bother to put the "core" on there.


Core java is a sun term.It mentions the USE,it means it contains only basics of java and some principles and also contain some packages details.


There are two categories as follows

  1. Core Java
  2. Java EE

Core java is a language basics. For example (Data structures, Semantics..etc) https://malalanayake.wordpress.com/category/java/data-structures/

But if you see the Java EE you can see the Sevlet, JSP, JSF all the web technologies and the patterns. https://malalanayake.wordpress.com/2014/10/10/jsp-servlet-scope-variables-and-init-parameters/


Some companies will put "core java" to differentiate from Java EE, but it's still just your basic Java.


"Core Java" is Oracle's definition and refers to subset of Java SE technologies.

This actually is not related to Java language itself but rather to set of some 'basic' packages. As a result it affects development approaches.

Currently Java Core is defined as a following set:

  • Basic technologies
  • CORBA
  • HotSpot VM
  • Java Naming and Directory Interface (JNDI)
  • Application monitoring and management
  • Tools API
  • XML

But as you probably understand even term 'basic technologies' is somewhat unclear ;-) so this is not so strict definition. Here is official page for this term:

Here is another picture illustrating Java Core API / technologies inside Java SE platform.


"Core Java" is Sun's term, used to refer to Java SE, the standard edition and a set of related technologies, like the Java VM, CORBA, et cetera. This is mostly to differentiate from, say, Java ME or Java EE.

Also note that they're talking about a set of libraries rather than the programming language. That is, the underlying way you write Java doesn't change, regardless of the libraries you're using.


A simple step to understand what is java and core java.

  • Find a book for Java.

  • Find a book for core java.

  • Compare the content of both books.

Actual result: both have almost same content.

Result: Java and core java is same.

core java is just slang, to emphasize on deep knowledge of basic java. but if I say I know Java it doesn't mean that I don't have deep knowledge of basic java, or if I know everything in java.


It's not an official term. I guess it means knowledge of the Java language itself and the most important parts of the standard API (java.lang, java.io, java.utils packages, basically), as opposed to the multitude of specialzed APIs and frameworks (J2EE, JPA, JNDI, JSTL, ...) that are often required for Java jobs.