Introduction:
- Java developed by James Gosling.
- Using Java, we can develop Desktop applications and Web applications.
- Using Core concepts of Java,
- We develop Desktop applications.
- Using Java technologies (Servlets, JDBC and JSP)
- We develop Web based applications.
- Using Frameworks (Spring, Hibernate, SpringBoot etc)
- We achieve Rapid applications development.
Java distributions:
- JSE(Java Standard Edition): contains the core concepts of Java by which we can develop Desktop applications.
- JEE(Java Enterprise Edition): contains advanced concepts of Java to develop Server side applications.
- JME(Java Micro Edition): concepts used to develop mobile applications, embedded systems etc.

Java is a platform independent language:
- Java Compiler converts the Source program into Byte code format file.
- Byte code can run on any OS, hence java applications become platform independent.
Java is an Object-Oriented language:
- Object oriented programming is a way of organizing programs as collection of objects, each of which represents an instance of a class.
- Four main concepts of OOPS:
- Abstraction
- Encapsulation
- Inheritance
- Polymorphism
Multithreading:
- Java supports multithreading.
- Multithreading is a Java feature that allows concurrent execution of two or more parts of a program for maximum utilization of CPU.