Skip to main content

ClassNotFoundException vs NoClassDefFoundError

Both ClassNotFoundException and NoClassDefFoundError errors will be occurred  when the required Class not present in the Class path.
   
ClassNotFoundException
   
ClassNotFoundException is an Exception got arized when trying load class using
forName() method in class Class.
findSystemClass method in class ClassLoader .
loadClass method in class ClassLoader.

e.g. Class.forName("oracle.jdbc.driver.OracleDriver")
if the OracleDriver class file is not present in the Class path, then we will end up with this ClassNotFounException

NoClassDefFoundError

NoClassDefFoundError is an Error thrown at Runtime, when the Class is present during the compile time and not present during Runtime of the Code, then we will end up with this NoClassDefFoundError.

1. When required Class is not available at Runtime available only in compile time.
2.Since NoClassDefFoundError error is an Subclass of LinkageError, it will occur when one of the     Dependent of the jar not present in class path.
3. When the Static initialization of Class failed then it triggers java.lang.ExceptionInInitializerError
 which also leads to this Error.

e.g.  Exception in thread "main" java.lang.NoClassDefFoundError

Comments

Popular posts from this blog

Compress a String

package com.sbs.java8.praticse; public class StringCompression { public StringCompression() { // TODO Auto-generated constructor stub } public static void main(String[] args) { System.out.println(compressString("aaaabbbbbccccAAAAccccccccdefg")); } public static String compressString(String str) { //String str = "aaaabbbbbcccc"; char[] charArray = str.toCharArray(); String compressedString = ""; int i = 0; while (i charArray.length)? str: compressedString; return output; } }

String Pool Vs String Definition (Using 'new' Operator)

Strings can be defined in Java in two ways. 1. String Literals 2  Traditional way(using 'new' operator) String Literals If a String is created by using String literal notation, memory will be allocated directly in string pool. String pool is subset of Heap memory (Where objects will be created). e.g. String companyName = "Surimenus";      String empName= "Bhargav";       Using 'New' Operator If a String is created using new operator, memory will be allocated in Heap Memory not in String pool. e.g. String companyName = new String("Surimenus"); String empName= new String("Bhargav"); String Pool vs Using 'new' Operator String which are created in String pool will re-reference by reference which contains the same content. For example consider the following. String cn1 = "Surimenu"; String cn2 = "Surimenu"; In the above scenario cn1 and cn2 references having the same content and these are created in Strin...