Written by Aravind H.U on Dec 13, 2015
Few years back, when I was working for CoStrategix as a Senior Analyst, I had a pleasure to work on a Web based Java project, due to my roles and responsibilities It was too inevitable for me to learn and gain insights about JAVA technologies. Being a person from the world of scripting technologies, I was lost in the world of terminologies, I could not find any single post where they describe JAVA terminologies so that I can read the journals or posts with proper comprehension.
Today in this post, I have planned to post all those JAVA terminologies along with the subset of my understandings, which usually bugs any novice java developer.
JAVA : - Is a programming language, JAVA (with a capital J) can also be considered as a platform for application development. A platform is a loosely defined computer industry buzzword that typically means some combination of hardware and system software that will mostly run all the same software. For instance PowerMacs running Mac OS 9.2 would be one platform. DEC Alphas running Windows NT would be another.
Java SDK or JDK : - I guess all those matured programmers will be aware of what SDK means, JAVA SDK is nothing but Software development kit, to build software using JAVA programming language. JDK is a new term given to the same, calling it as JAVA development kit.
JAVA 2 : - Its a standard term, used to mention any version of java above 1.2
J2SE or JSE : - SE stands for standard edition, and J2 stands for JAVA 2, which consists of API's for building desktop applications, it actually forms the core/base API
J2RE : - Again J2 stands for JAVA 2 RE stands for Runtime environment, it is just a runtime environment where JAVA programs can run. JDK consists of development kit as well as runtime environment So if you have JDK installed in your system, you don't have to download JRE again. JDK is used only by developers and JRE is the one which is globally used to run any java programs.
J2ME : - Again J2 stands for JAVA 2, ME stands for Micro Edition, its a subset of JDK which provides API's for building Embedded systems or applications which run on resource constrained devices (small scale devices) like cell phones, for example mobile games
J2EE : - Again J2 stands for JAVA 2, EE stands for Enterprise Edition, its a subset of JDK which provides API's to build Web-based enterprise applications.
JDBC : - The Java Database Connectivity (JDBC) API is the industry standard for database-independent connectivity between the Java programming language and a wide range of databases. SQL databases and other tabular data sources, such as spreadsheets or flat files. The JDBC API provides a call-level API for SQL-based database access. ( taken from oracle documentation )
POJO : - Stands for Plain Old Java Object, This was a term coined by Martin Fowler in 2000 in a conference, this term is used to refer to any plain JAVA object with just attributes and getters and setters and also it should not rely on any framework.
Hibernate : - Hibernate is just another open source ORM ( Object Relation Mapping ) written in JAVA. The term Object/Relational Mapping refers to the technique of mapping data between an object model representation to a relational data model representation.
Struts : - Struts is an Apache foundation software, it is an open source MVC framework just like Zend for PHP and Rails for Ruby or Express for NodeJS etc..
Spring : - Spring is also just another framework, which provides almost almost all required infrastructure to build an enterprise class java application
There are still lot more terminologies in JAVA, I guess its too much to explain in a single post.
I hope I have covered almost all those terms which usually bugs a novice developer who is learning JAVA, BTW.. To understand why version 1.2 + versions of JAVA are called as JAVA 2 is some thing really interesting. I made some research to collect information about JAVA versions, please wait for my post "Evolution of JAVA " to understand the versions naming conventions of JAVA, I hope you enjoyed reading my post.