Skip to main content

Why java is platform independent?

 Java programming language provides platform independence, what does it mean ? It means same java program can be run on any platform or operating system e.g. Windows, Linux or Solaris without any change. This is the great benefit for some one coming from platform dependent programming language like C or C++ whose code needs to be ported for every single platform because they use native libraries which differ in every platform. Now question comes how Java achieve platform independence, what makes Java programs running on every platform without any change ? This is one of the most basis question java programmer ask when it start learning java programming language. if you read further you will come to know about byte code and Java virtual machine which together provides platform independence to Java.

For those who don't know Java is both compiler and interpreter language. When you compile a Java program it creates .class file which is collection of byte code, these byte code are not machine instruction instead they are instruction which Java virtual machine can understand. Since every Java program runs on Java virtual machine, same byte code can be run on any platform. key is byte code is not machine instruction they are platform independent instruction to JVM. On the other hand JVM or Java virtual machine is platform dependent because it converts byte code into machine level instruction which is platform specific and that's why you have different version of JDK and JRE for windows and Linux because both JDK and JRE comes with Java virtual machine. if you are confused between JVM, JRE and JDK then read my most on difference between JDK, JRE and JVM in java.

Byte code is created when you compile Java program using java compiler "javac" and byte code runs on JVM which is created by running "java" command. In detail when you run "java" command it creates Java virtual machine, loads Main class specified in command line and calls standard main method in java.

In summary combination of byte code and JVM makes Java program platform independent. Write once run everywhere was Java’s mantra when it started ruling programming world in mid and late 90’s.  



Comments

Popular posts from this blog

What is the difference between Selenium and QTP?

Feature QTP(UFT) Selenium Language Support VB Script Java, C#, Ruby, Python, Perl, PHP Windows (Non-browser) based Application support Yes No Browser support Google Chrome (uptill ver 23) Internet Explorer , Firefox ( ver 21) Google Chrome , Internet Explorer , Firefox , Opera , HtmlUnit, Safari Environment Support Only Windows Windows , Linux , Solaris OS X , iOS, Android, Others (If brower & JVM or Javascript support exists) Mobile (Phones & Tablets) Support Different commercial product i.e. HP UFT Mobile (formerly known as MobileCloud for QTP) Android , iPhone & iPad , Blackberry , Headless WebKit Framework Easily integrated with HP Quality Center or HP ALM (separate commercial products) Selenium + Eclipse + Maven / ANT + Jenkins...

Operating Systems supported by Selenium Webdriver

Microsoft Windows: Most versions of MS Windows that are currently still supported by Microsoft should work with Selenium. Altough here's the list of OS's we currently run tests against before each release:     Windows XP (to be unsupported on April 8, 2014)     Windows 7     Windows 8     Windows 8.1 If your version of windows is not listed, it does not mean Selenium won't attempt to support it. That only means we don't continually run tests on that particular version of Windows. Apple OS X : We currently do not use any version of OS X in our automated tests against the selenium project. However most developers on the project are using a recent version of OS X and we'll continue to support the current stable release and often the previous release. Linux: We test mainly on Ubuntu, but other variations of Linux should also work where the browser manufacturers support them. iOS : The first lines of the ...

Working with Dropdown in Selenium Webdriver

WebDriver has a class called “ Select ” to interact with dropdown. Dropdown is an another WebElement like textbox, radio button, links etc. We use below methods frequently to interact with Dropdown using Select class. selectByIndex(int index) selectByValue(String value) selectByVisibleText(String text) getOptions() getFirstSelectedOption() Note: Select class can be found in org.openqa.selenium.support.ui  package Sample Dropdown: selectByIndex(int index): This method is used to select dropdown value by using index. This method accept integer as an argument. Index value always start from 0 (Zero). So if we want to select 2 nd value from dropdown we have to give index 1. Syntax: Select s = new Select(dropdown_WebElement); s.selectByIndex(1); Example: package selenium; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; ...