Features of java
Features of java:
There are many features of java

1. Simple
2. Object-Oriented
3. Distributed
4. Robust
5. Secured
6. platform independent
7. Portable
8. Interpreted
9. High Performance
10. Multithreaded
11. Scalability
12. Dynamic
Java Images
1) Simple
Java is simple programming language. Rather than saying that this is the feature of java, we can say that this is the design aim of java. First of all the java soft people have been omitted the difficult concepts of c and c++, like pointers and operator overloading, etc. And the syntax of java is quite similar to the syntax of c and c++ languages.
Java is an object oriented programming language. This means java programs use objects and classes. An object is anything that really exists in the world and can be distinguished from others. Everything that we see physically will come into this definition, for example, every human being, a book, a tree, and so on.
group of objects exhibiting same behavior (properties + actions) will come under the same group called a class.
Object-oriented programming (OOPs) is a methodology that simplifies software development and maintenance by providing some rules.
Basic concepts of OOPs are:
3) Distributed:
By using JAVA technology we are preparing standalone applications and Distributed applications.
Standalone applications are java applications it doesn't need client server architecture. web applications are java applications it need client server architecture. 
Distributed applications are the applications the project code is distributed in multiple number of jvm's.
4) Robust:
Robust means strong. Java programs are strong and they don't crash easily like C/C++. There are two reasons for this. Firstly, java has got excellent inbuilt exception handling feature. Another reason is java has strong memory management mechanism.
5) Secured:
Security problems like eavesdropping, tampering, impersonation, and virus threats can be eliminated or minimized by using java on internet.
Java is secured because:
No explicit pointer
Programs run inside virtual machine sandbox
6) Platform independent:
Java code can be run on multiple platforms e.g. Windows, Linux, Sun Solaris, Mac/OS etc. Java code is compiled by the compiler and converted into bytecode. This bytecode is a platform independent code because it can be run on multiple platforms i.e. Write Once and Run Anywhere (WORA).
Java Images
7) Portable:
If a program yields the same result on every machine, then that program is called portable. Java programs are portable. This is the result of system independence nature. 
8) Interpreted:
Java programs are compiled to generate the byte code. This byte code can be downloaded and interpreted by the interpreter in JVM. If we take any other language, either an interpreter or a compiler is used to execute the programs. But in Java, we use both compiler and interpreter for the execution.
9) High performance
The problem with interpreter inside the JVM is that it is slow. Because of this, Java programs used to run slow. To overcome this problem, along with the interpreter, Java soft people have introduced JIT (Just In Time) compiler, which enhances the speed of execution. So now in JVM, both Interpreter and JIT compiler work together to run the program.
10) Multithreaded:
Thread represents an individual process to execute a group of statements. JVM uses several threads to execute different blocks of code. Creating multiple threads is called multithreaded.
11) Scalability:
Java platform can be implemented on a wide range of computers with varying levels of resources, from embedded devices to mainframe computers. This is possible because Java is compact and platform independent.
12) Dynamic:
Before the development of java, only static text used to be displayed in the browser. But James Gosling demonstrated an animated atomic molecule structure. This animation was done using applet program, which are dynamically interacting programs on Internet.