JAVA is a programming language and environment that was designed to solve a number of problems in modern programming practice. It is a general-purpose computer programming language that is concurrent, class-based, object-oriented and specifically designed to have as few implementation dependencies as possible. It is intended to let application developers “write once, run anywhere” (WORA) meaning that code that runs on one platform does not need to be recompiled to run on another.
Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture. Java is one of the most popular programming languages in use, particularly for client-server web applications, with a reported 9 million developers. Java was originally developed by James Gosling at Sun Microsystems (which has since merged into Oracle Corporation) and released in 1995 as a core component of Sun Microsystems’ Java platform.
Simple: Java inherits all the best features from the programming languages like C, C++ and thus makes it really easy for any developer to learn with little programming experience. The concept of Object Oriented programming was not invented by Java but it was just adopted by the Java team.
Secure: When Java programs are executed they don’t instruct commands to the machine directly. Instead Java Virtual machine reads the program (ByteCode) and convert it into the machine instructions. This way any program tries to get illegal access to the system will not be allowed by the JVM. Allowing Java programs to be executed by the JVM makes Java program fully secured under the control of the JVM.
Portable: Java programs are portable because of its ability to run the program on any platform and no dependency on the underlying hardware / operating system.
Object Oriented Programming Language:Java programming language was influenced from its previous successors programming language like C++. Object Oriented Programming Language helps to break the complex code into easy to understand objects and manage high complexity programs in distributed team environment. Java is object oriented programming language but everything in Java are not objects.
Robust: Following features of Java make it Robust.
Object Oriented Programming Language
Platform Independent: Java program are written once and executed on any platform this makes the job of developer easier to develop programs and not code machine dependent coding.
Memory Management: In traditional programming language like C, C++ user has to manage memory by allocating and deallocating memory which leads to memory leaks in the program. In Java, memory management is taken care by the Java Virtual Machine and safe from memory crashes. All the allocation and clean of the memory is done automatically.
Exception Handling: In Java, developers are forced to handle the exception during the development time. All the possible exception are errored out during the compilation of the program. This way when the exception happens during runtime there is proper exception handling mechanism already coded in the program.
Multithreaded: Java allows you to develop program that can do multiple task simultaneously. Interactive based programming allows you to write program that responds to the user actions and helps developers to just implement the logic based on the user action instead to manage the complete multi-tasking solution.
Architecture-Neutral: The major challenge when Java was developing is to have programming language with which a program can be developed and executed anytime in future. With changing environments of hardware, processor, Operating system there was need to have program still adopt to this architecture changes. Java code does not depend on the underlying architecture and only depends on it JVM thus accomplish the architecture neutral programming language.
Interpreter: The compiled code of Java is not machine instructions but rather its a intermediate code called ByteCode. This code can be executed on any machine that implements the Java virtual Machine. JVM interprets the ByteCode into Machine instructions during runtime.
High Performance: When java programs are executed, JVM does not interpret entire code into machine instructions. If JVM attempts to do this then there will huge performance impact for the high complexity programs. JVM was intelligently developed to interpret only the piece of the code that is required to execute and untouch the rest of the code. The performance of java is never questioned compared with another programming language.
Distributed: Java has a feature called Remote Method Invocation (RMI) using which a program can invoke method of another program across a network and get the output.
Dynamic: Java programs access various runtime libraries and information inside the compiled code (Bytecode). This dynamic feature allows to update the pieces of libraries without affecting the code using it.