Top 10 Java Classes

Last modified on August 1st, 2014 by Joe.

Thought of compiling a list of classes that are popular among java programmers. Should I say most essential? There is no strict rules for the selection, in fact there are no rules followed. Classes that popped up on top of mind are listed below. You are welcome to add your own list. This list will vary depending on the type of java project you work on. These classes I have listed does not require any introduction and they are as popular as Rajnikanth in java world. Have fun!

  1. java.lang.String
    String class will be the undisputed champion on any day by popularity and none will deny that. This is a final class and used to create / operate immutable string literals. It was available from JDK 1.0
  2. java.lang.System
    Usage of System depends on the type of project you work on. You may not be using it in your project but still it is one of the popular java classes around. This is a utility class and cannot be instantiated. Main uses of this class are access to standard input, output, environment variables, etc. Available since JDK 1.0
  3. java.lang.Exception
    Throwable is the super class of all Errors and Exceptions. All abnormal conditions that can be handled comes under Exception. NullPointerException is the most popular among all the exceptions. Exception is at top of hierarchy of all such exceptions. Available since JDK 1.0
  4. java.util.ArrayList
    An implementation of array data structure. This class implements List interface and is the most popular member or java collections framework. Difference between ArrayList and Vector is one popular topic among the beginners and frequently asked question in java interviews. It was introduced in JDK 1.2
  5. java.util.HashMap
    An implementation of a key-value pair data structure. This class implements Map interface. As similar to ArrayList vs Vector, we have HashMap vs Hashtable popular comparisons. This happens to be a popular collection class that acts as a container for property-value pairs and works as a transport agent between multiple layers of an application. It was introduced in JDK 1.2
  6. java.lang.Object
    Great grandfather of all java classes. Every java class is a subclass of Object. It will be used often when we work on a platform/framework. It contains the important methods like equals, hashcode, clone, toString, etc. It is available from day one of java (JDK 1.0)
  7. java.lang.Thread
    A thread is a single sequence of execution, where multiple thread can co-exist and share resources. We can extend this Thread class and create our own threads. Using Runnable is also another option. Usage of this class depends on the domain of your application. It is not absolutely necessary to build a usual application. It was available from JDK 1.0
  8. java.lang.Class
    Class is a direct subclass of Object. There is no constructor in this class and their objects are loaded in JVM by classloaders. Most of us may not have used it directly but I think its an essential class. It is an important class in doing reflection. It is available from JDK 1.0
  9. java.util.Date
    This is used to work with date. Sometimes we feel that this class should have added more utility methods and we end up creating those. Every enterprise application we create has a date utility. Introduced in JDK 1.0 and later made huge changes in JDK1.1 by deprecating a whole lot of methods.
  10. java.util.Iterator
    This is an interface. It is very popular and came as a replacement for Enumeration. It is a simple to use convenience utility and works in sync with Iterable. It was introduced in JDK 1.2

Did I miss your favourite?

Comments on "Top 10 Java Classes"

  1. venki says:


  2. Ravi says:

    Great thought to list out Top 10 classes.

  3. Sunil says:

    very good joe….

  4. kalpesh popat says:

    very nice

  5. Ramana says:

    the only blog that have lot of stuff for the learner is JavaPapers

  6. Anonymous says:

    I have been reading all your blogs. Very good one. Simple but powerful explanation. Thanks a lot. Keep going. :)

  7. Rishabh says:

    great work!!! ;)

  8. Kapil Suryawanshi says:

    Very well :)

  9. Anonymous says:

    Good content with well understandable


  10. Shashi Kanth says:

    Great Job Joe,
    we are using, but not pointed.

  11. Chandrasekhar says:

    Simple but great Knowledge Transfer from ur blog.
    Nice work Joe…… :-)

    Keep Go on……

  12. Sumit Sharma says:

    Very Good friend..
    please write for advance java as well like hibernate spring etc.

  13. Anonymous says:

    very nice,
    now I know who Rajnikanth is :)

  14. richa says:

    Very Good.Pls post some topics on spring & hibernate…

  15. Sree says:

    Hi Sir,

    Very nice explanation. If you have time Can you please explain what exactly difference between Encapsulation and Abstraction with an example.

  16. Prince says:

    Brilliant. I would be including java.util.LinkedList too.
    Neenga room pottu yosipengalo..?

  17. Dinesh Kumar says:

    one doubt, is Class is the direct subclass of Object ?

    I dint see any extend keyword used in Class to extend Object ?

    Pls clear my ignorance

  18. Joe says:

    @Dinesh, Object is superclass of all java classes. In that way it is a superclass for ‘Class’ also. This will not be given explicitly in source code as extends.

  19. Sandeep Singh says:

    Good One

  20. Anonymous says:

    buddy….. u r an excellent java guru…..every body can become a master by reading just ur blog….great brother…carry on….. would like to become java master in the universe like rajani kanth…..lolz…..

  21. Anonymous says:

    brother…kindly send the the link of ur blog for J2EE too !!! its request from myside

  22. deepak sharma says:

    hallo sir i’am deepak, i’m new for JDBC actually i’m facing connectivity problems after making dsn for MS Access database. i am using win7 64-bit…!!
    plz provide me solution …
    thank you…

  23. Deepti says:

    Thanks for sharing
    I guess we can add ClassLoader to the list

  24. Jirka Pinkas says:

    How about org.slf4j.Logger? Everybody uses logging nowadays.

  25. Michael says:

    Would love to see a statiscal based approach for this as a comparison. Obviously it would hard to classify Object and class

  26. Ganeshji Marwaha says:

    Good one Joe…

  27. Anonymous says:


  28. Joe says:

    Thanks Ganeshji. Privileged to have you comment here.

  29. Anonymous says:

    good… very informative

  30. Rashi Coorg says:

    Nice one

  31. Janarthanan s says:

    Really superb Mr Joe…. Thanks lot to share your knowledge with us…

  32. Roopesh says:

    bcoz I did a lot of number manipulation
    i would put j as wellava.lang.Math

  33. Annu Singh says:

    Thanks for this site it’s very beneficial for all Java developers….

  34. Sridhar says:

    This is simply fantastic. It helped me a lot. Keep up the good work. Many people are getting benefited from this.

  35. Thiru says:

    Its very simple to understand

    Great Job Mr Joe

  36. Amit Kumar says:

    Superb Joe,

    Very Good topic and easy to understand..

  37. Anny says:

    Hello Joe,

    Also provide the detail information like methods,properties etc. for these classes.

  38. Akash says:

    ThankYou So much for knowledge sharing.

  39. Prashant says:

    Great job Joe.

    Thanks for your such a gr8 effort.

  40. Anonymous says:

    nice post ….

  41. kamesh duvvuri says:

    Hi Joe

    Excellent information has given your blog. please explain the encapsulation and abstraction.

  42. kamesh duvvuri says:

    Hi Joe

    Excellent information has given your blog. please explain the encapsulation and abstraction.

  43. vivek says:

    Nice Joe…Good….Expecting more from you..
    Can you please explain about some of the frameworks which is most used in projects.

  44. andy says:

    hi Joe,

    I guess StringBuilder/StringBuffer should be there too, must people use String where they should be using one of those two. String is inmutable, any time you assign text to an instance of String, you a creating a new object, leaving previous object orphan, until the scavengers of the gc wipe it out, and probably memory leak probs.

    Anyway, u have done a great job here !

  45. Krishna says:

    Thank you sir.

    Rajnikanth is master in acting,
    your master in java……..

  46. Yaso says:

    Great blog, Loved it. Pls keep on posting. Thanks

  47. arun says:

    java.class does not have constructor the how it will load and initialize the objects?can u please clarify me?

  48. Anonymous says:

    good work boss

  49. Vijay Jetti says:


  50. Dimit says:

    Good thought process

  51. Anonymous says:

    very good explanation, i liked it

  52. bala says:

    thanks, your site is very neat and beautiful

  53. Jagadeesh says:

    Great Job Dude,post more articles on Threads,Collections.

  54. Anonymous says:

    what is the default access specifier, if we dont mentioned while declare the class

  55. Anonymous says:

    Good one…..

  56. Anonymous says:

    Ok Good,i appriciate you

  57. manoj says:

    I think u may missed*; this is one of my fav class…

  58. SawMinOo says:

    Thanks for your knowledge

  59. Vick says:

    Excellent is just the preface!! Kudos Joe!

  60. aditya says:

    Thanks a lot
    keep posting
    god bless you.>>>

  61. Janardhan says:

    Hi Joe,
    Where do you get the images ?
    It seems there is a lot of hard work behind your blog. keep up good work bro.

  62. Rachana says:

    nice…too much helpful to me..thanks..

  63. Rohit Saxena says:

    Wrapper classes should be there for sure.

  64. teenu says:

    very useful :)

  65. Anonymous says:

    very useful

  66. SRINU says:


  67. Prashant says:

    Thanks ……………JOE

  68. sumon says:

    Great work, thanks

  69. aravind says:

    Kindly Explain System.out.println() function i.e what is System, out and println what is their relationship

  70. guru manikanta says:

    nice work. thank u sir

  71. Anonymous says:

    ur site looking nice bayya

  72. Nasir says:

    Dear Joe, All your posts are quite interesting and easy to understand.

    I am new to core java … yet learning basics of core java. As of now I am trying to understand the package, serialization, and generics.

    Can you please help me understand the above said for a fresher point of view?
    Thanks in advance.

  73. Anonymous says:

    the way simple look of your blog and explanations get u lot of fans.. keep it up.

  74. Anonymous says:

    Thanku sir .very easy to understanding

  75. Jatin says:

    Nice list of top 10 java classes.

  76. Praveen S M says:

    Top 3 interfaces


  77. Anonymous says:

    thnQ u joe

  78. Shiv says:

    Very nice…

  79. srini says:

    Good. However, you missed an important one which will be used for all your I/O. I don’t think any program can run without this class.

  80. koduru.Rajenderreddy. says:

    Hi joe,

    All your posts are quite interesting. Please can you post tutorials regarding XML.bcz now a days it is very useful technology…do needful.

    Koduru.Rajender reddy.

  81. nilesh boradkar says:

    I would like to replace Date with Calendar and numbered at 3 or 4 :-)

  82. Anonymous says:

    Really nice work Joe… Nice article for learners… Thank you :)

Comments are closed for "Top 10 Java Classes".