10 Things You Didn’t Know About Java

November 20, 2017

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 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. 


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, 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 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 (like AspectJ, 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.


  • 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


  • 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 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.

About the Author:

Rahul Tripathi has been writing custom content for over 3 years. He provides writing, coaching and editing services. MCA graduated from University of Delhi with bachelor’s degree in English Literature. Currently, Rahul is focusing on writing content about JAVA. His Guest Post, A writer by day and reader by night, he also enjoys preparing and editing resumes for individuals.

Recommended From Hakin9
Security firm RSA Security breached
Security firm RSA Security breached

RSA Security is one of the biggest players in the enterprise security landscape, featuring advanced

Social media zombies: HBGary, USAF and the government
Social media zombies: HBGary, USAF and the government

HBGary ownage has probably been the most prominent example of complete take over carried out

Microsoft MPE privilege flaw identified
Microsoft MPE privilege flaw identified

Microsoft's Malware Protection Engine has been patched as Argeniss security expert identifies an 'elevation of

Virus hits London Stock Exchange (LSE)
Virus hits London Stock Exchange (LSE)

The London Stock Exchange website was attacked by malware hidden inside an advert on February

Notify of

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Inline Feedbacks
View all comments
© HAKIN9 MEDIA SP. Z O.O. SP. K. 2023
What certifications or qualifications do you hold?
Max. file size: 150 MB.

What level of experience should the ideal candidate have?
What certifications or qualifications are preferred?

Download Free eBook

Step 1 of 4


We’re committed to your privacy. Hakin9 uses the information you provide to us to contact you about our relevant content, products, and services. You may unsubscribe from these communications at any time. For more information, check out our Privacy Policy.