Many of you might have been working with Java since its beginning. And, for many of you, you might just have started working with Java. In this post, we will discuss some of the facts about Java that are useful for both freshers as well as those with more experience.
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 the 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.
There is something called 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 (likeAspectJ, ASM, Javassist, cglib, etc.) 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 that Java provides.
- 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 starts 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 an 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 run on micro devices, like mobiles and 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
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.