Java is the simplest Object Oriented Programming (OOP) language to learn. Compared to  the other ,learning Java is simpler. Although Java shares much of Cs syntax, it is not C. Knowing how to program in C or, better yet, C, will certainly help you to learn Java more quickly, but you dont need to know C to learn Java .Most of the syntax used in Java comes from C.

Java has so much advantages because:

Small: The Java language is small. The number of keywords and language constructs is limited compared with other development languages

Architecture Neutral: Java’s characteristics is absolutre across all platforms ,so it makes java as extreamely portable, Anyone who has had to architect and construct portable graphics code, even with a helper toolkit, will appreciate Java’s portability.The compiler generates an architecture-neutral object file format to enable a Java application to execute anywhere on the network and then the compiled code is executed on many processors.
Secure: Built -in security features like absence of pointers and confinement of the java program within its runtime environment

Robust: Java has the strong memory allocation and automatic garbage collection mechanism. It provides the powerful exception handling and type checking mechanism as compare to other programming languages.These are the some of Java’s elements make it one of the most robust languages ever developed.

Multi-threaded: Multi-threading means a single program having different threads executing independently at the same time. Multiple threads execute instructions according to the program code in a process or a program. Multithreading works the similar way as multiple processes run on one computer.

International: All character and string data types in Java are Unicode. Unicode is a standard that supports wide characters capableof representing any one of the natural languages .


Byte Code:-
Bytecode is the powerfull feature of Java, when you compile a Java code, it turns into Bytecode as a Class file.Bytecodes are the machine language of the Java virtual machine. When a JVM loads a class file, it gets one stream of bytecodes for each method in the class. The bytecodes streams are stored in the method area of the JVM. The bytecodes for a method are executed when thatmethod is invoked during the course of running the program. They canbe executed by intepretation, just-in-time compiling, or any other technique that was chosen by the designer of a particular JVM.Once the Bytecode is generated from code,it can be run in any platform .it supports all JVM Java is called as “write Once,Run anywhere”