what is java. how is it platform independent language.