Introduction to Java
We are very happy to announce that we are beginning a small tutorial series on basics of Java.
Very often we have observed that people find it extremely difficult to get started with Selenium directly without having prior programming knowledge experience. Thus, we have made an attempt to introduce them with the basics of java to ease their Selenium learning experience.
Before moving any further with the tutorial, let us take a moment to discuss about the history and introduction of Java.
Java is presently one of the most dominant and popular programming language used by engineers across the globe for developing programming solutions. If we look at the stats of 2012, Oracle claims that there are more than 9,000,000 users using Java where as our very own Wikipedia says that there are over 10,000,000 Java users. To be very precise, NumberOf.net says that there are exactly 9,007,346 java users. Ever since the inception of Java, the popularity and usage of java has shown immense promising trends.
Java programming language was originally introduced and developed by James Gosling. He started working on the project back in the year of 1991.As a token for his efforts, Sun Microsystems launched the prime java (Java 1.0) implementation in the year 1995. It was distributed as a core component of Sun Microsystems Java Platform. The popularity and likeliness of Java rose much more lately in 2008 when its standard edition was launched. Since then Java has achieved widespread and immense popularity and acceptance amongst its users and communities.
Java is chiefly distributed in namely three editions:
- Java Standard Edition
- Java Enterprise Edition
- Java Micro Edition
Features of Java
- Java is simple
- Java is Object Oriented Programming language
- Java is platform independent
- Java is an interpreted and compiled language
- Java is Secure
- Java is Multithreaded
Let us take a moment and discuss each of them one by one.
- Java is Simple: Being an object oriented programming language; it is easier to learn and grasp. The syntax is easy to understand and comprehend. Many of the conventional confusing concepts like operator overloading, pointers etc are no more used in Java which makes it more effective. Processes like garbage collection etc are automatically taken care of by the technology thereby giving space for the user to concentrate on objects rather than procedures.
- Java is Object Oriented Programming language: Java is strictly an object oriented programming language and considers everything as object. Thus, it employs a methodology that simplifies software development and maintenance by applying certain rules and standards.
- Java is platform independent: Java is considered to be platform independent, architecturally neutral, portable, dynamic etc. All these may be different terms but they all reference to the same idealism. Java, when compiled results into byte code which is a platform independent code that can be readily executed anywhere anytime. Thus, the code generated from the Java compilers are platform independent and are not machine specific. The byte code can be interpreted and executed on any machine having Java virtual machine installed on it.
- Java is an interpreted and compiled language: As explained earlier java code is compiled into byte code at the compilation time unlike many other programming languages like C which is compiled into a machine specific code that can be directly executed on the system. Byte code cannot be directly executed on the system. It needs to be interpreted by JVM to be executed. Languages like C compiles the code directly into machine specific code which can only be executed on a particular machine which is a major drawback of such languages. Other the other hand, high-level languages which are interpreted rather than compiled are highly portable and machine independent. The major drawback with high level languages lies with their performance as they require more time to interpret. Java is neither completely compiled language nor completely an interpreted language. Java is both an interpreted and compiled language there by exploiting portability and performance at the same time.
- Java is Secure: Java is architecturally robust, possess strong memory management, exception handling, type checking, garbage collection and many more. The language has incorporated various security measures like bytecode verifier, security manager, class loader etc which controls over the access rights, illegal code violations etc.
- Java is Multithreaded: Java programs have the ability to handle multiple tasks at the same time by defining multiple threads. Threads can be considered as sub programs running concurrently thereby handling different tasks at the same time.
Java Virtual Machine
Nearly all the programming languages compile the source code into the machine specific code which can be directly executed. Java is a little peculiar language where the source code is compiled into byte code which cannot be directly executed on any system. Thus, it executes on a special type of machine known as Java Virtual Machine which is essentially not a physical machine that runs on CPU rather a virtual machine.
Java Virtual Machine (JVM) can be considered as a machine or an environment in which compiled java code or byte code can be interpreted and executed by converting them into actions and system calls. JVM loads the byte code i.e. class files in the class loader (component of JVM) which is then verified and executed by Java Runtime Environment acronym as JRE; an execution system or environment provided by JVM.
JVM is platform dependent and therefore it is distributed for a wide range of software and hardware platforms.
Why is Java so popular?
Owing to several advantages, Java has become the primary choice for software development. Addition of just-in time compiler, enhanced security and stability components have particularly ensured that the applications built on Java are essentially reliable, efficient and secure. The language can easily be adopted by the user because of its simplicity, easiness and resemblance to conventional programming languages. The language exhibits great compatibility and can be plugged in with variety of third party tools.
Stay tuned for our next tutorial. There is lot more coming up in the next few tutorials…
Read Similar Posts