Many of you might be working with Java since its beginning. And, for many of you might just have started working with Java. In this post, we will discuss some of the facts about java which is useful for both fresher as well as experienced.
➢ JAVA IS EVERYWHERE
Java is one of the most dominant programming languages out there. Millions of developers and a huge number of devices worldwide are using Java programming language; from laptops to data centers, gaming consoles to scientific supercomputers, cell phones to Internet. The reason is its simplicity and readability. Almost all native Android apps are built in Java and 90 percent of Fortune 500 companies use Java as a server-side language for backend development.
➢ INITIALLY JAVA WAS CALLED OAK
James Gosling was a developer for Sun Microsystems that was working to build a new programming language for their set-top box project in the 1990s. He originally created Oak, a language he named after the oak tree standing outside his office, which later evolved and was renamed Java.
➢ MINECRAFT WAS ORIGINALLY WRITTEN IN JAVA
Minecraft, the explosively popular 3D sandbox video game, is written completely using Java code. The game’s creator, Notch, chose to write Minecraft in Java because it was the programming language he was most comfortable writing. Now owned by Microsoft, there is now a version of Minecraft built using C++.
➢ IT’S A GREAT CODING LANGUAGE TO LEARN.
It’s one of the most popular choices as a first coding language to learn. Although it can be tough due to its complicated syntax, Java is often chosen as a first language because it teaches you more than just coding: it teaches you to think like a programmer. Students of Java will also learn foundational coding concepts that will be helpful as they move on to other languages. You can learn java by joining any Java Course.
➢ DYNAMIC JAVA
There is something called as Java Instrumentation and Java Reflections. Instrumentation allows you to change the already compiled classes. This is useful if you want to change the code at run time. There are open source libraries (like AspectJ, ASM, Javassist, cglibetc) that allow Java instrumentation. Using reflection you can access even private variables of a class. Similarly, Class.forName()loads a class at run time. This is very useful method which Java provides.
➢ JAVA MEMORY
- Heap: All instance variables, objects, arrays.
- Stack: All local variables, methods only.
- Heap: When Java program starts, it gets some memory from OS. Default size is 128 MB. It can be set by –Xms and –Xmx (for example -Xmx1G).
- Out of memory: when JVM start processing, initially it gets some memory (and heap) gets allocated. As processing goes on, more and more memory gets occupied. When a situation comes that there is no more space left then out of memory error might be thrown.
➢ 4 PLATFORMS OF JAVA
- Java Standard Edition: contains all core libraries and functionalities
- Java Enterprise Edition: contains frameworks and libraries to build applications that are used mostly in enterprises
- Java Micro Edition: contains frameworks and libraries to build applications that runs on micro devices like mobiles, tablets
- Java FX: contains graphic libraries to build rich client applications that operate consistently across diverse platforms
➢ LESS USED BUT SHOULD KNOW KEYWORDS
- Native methods: In this method is implemented in platform dependent way, often in C.
- strictfp methods: class or method can be strictfp. It means floating point operations are strict.
- Transient: means skip this while serialization.
- Volatile: it tells JVM that the thread accessing this variable must always sync its local private copy with master copy.
➢ JAVA IS USED IN MANY PLACES
Java is used in more places than you might think. Google Web Toolkit compiles Java to optimized JavaScript for all main browsers, making Java a first-class language for browser-side development. Java is the main language of development for Android, and new products (allow translation or compilation of Java for IOS. Java is a safe choice no matter what you are developing for.
➢ Wrongly overloaded hashCode() of your business object can make your Collections (HashMap) fail.
This can happen if you override hashCode as below -
- Return a transient type variable as hashCode.
- Return time as hashCode.