What is Java ?
Java is a programming language and a platform. I will detail it later.
Where is Java ?
Java is anywhere.
- Java is in embedded hardware platforms like micro controllers, sensors, PDAs, TV set top boxes and many more embedded and mobile devices.
- Java is in desktop application
- Java is in Android mobiles and tablets
- Java is in server client architecture
- Java is in web browsers
- Java is in smart cards, ATM cards, SIM cards
Java has different flavours to choose from depending on what you are trying to put it in work.
- JavaCard - for smart cards with very limited resources
- J2ME (Java Platform Micro Edition) - for small devices with limited resouurces
- J2SE (Java Platform Standard Edition)- for standard desktop application development
- J2EE (Java Platform Enterprise Edition) - for enterprise applications, mostly used in a client server architecture.
Java is full of features.
- Simple - easy to learn. Also java has many built in libraries that makes development easier.
- Architecture independent - means you can write applications on a system and can run on any platform with adequate support.
- Robust - java is reliable. It puts a lot of emphasis on possible. Java compiler detects many errors upfront and tries to minimize errors on runtime.
- Secured - a java program runs on Java Virtual Machine which is a layer on top of Operating System. So a java program can not harm another program running.
- Object Oriented - I will discuss this later.
- Interpreted - Java Compiler generates which is interpreted by Java Virtual Machine. Thus it can be portable and run by different environments.
- High Performance - Java provides Just In Time compilation which makes the execution of compiler generated byte code faster.
- Multithreading - different threads of an application can run simultaneously. Something like listening to your favourite track while walking down the street.
- Memory management - Java helps developer to forget about memory management. Java does this for you. It has a its own garbage collection mechanism which takes of the unreferenced objects and deallocates them. Although Java does memory management, if your code has something wrong memory leakage is still possible.
Absolutely no, Java is free. Development tools and runtime environments are absolutely comes at no cost.
There are license for some use cases but you don't have to worry about it. Everything you will need comes for free. All you need to do is to learn how to instruct the computer using Java.
Check this if you have a doubt.