Ever wondered how many classes are loaded into memory by the JVM for a
simple hello world program execution. Java being a dynamically loaded language
even if we import an entire package using the .* option, only the classes that
are needed during the runtime are loaded. When I first encountered this
question all I could think of was 3 classes. The String, System and the out
classes. But when I worked towards it only then I found that there are around
310 classes loaded using JRE 1.6 for this simple program. I had missed many
things. The main thing I missed was the inheritance concept. Every class in
Java extends the Object class so that needs to be loaded. Every Java program is
a thread by itself so thread class is loaded, exception class is loaded for
catching any exceptions. In such way all in all 310 classes are loaded for
execution of this program J
package
org.training.simple;
public class HelloWorld {
public static void main(String[]
args) {
System.out.println("Hello
World");
}
}
To check the classes
that are loaded during the execution of program in command line type
C:\> java –verbose:class
classname
Incase you are using
eclipse, right click on the class you want to execute, go to Run as > Run
Configurations > click the arguments tab and under VM arguments type in –verbose:class
click on apply and run.
The following classes are loaded
[Loaded java.lang.Object from shared objects file]
[Loaded java.io.Serializable from shared objects
file]
[Loaded java.lang.Comparable from shared objects
file]
[Loaded java.lang.CharSequence from shared objects
file]
[Loaded java.lang.String from shared objects file]
[Loaded java.lang.reflect.GenericDeclaration from
shared objects file]
[Loaded java.lang.reflect.Type from shared objects
file]
[Loaded java.lang.reflect.AnnotatedElement from
shared objects file]
[Loaded java.lang.Class from shared objects file]
[Loaded java.lang.Cloneable from shared objects
file]
[Loaded java.lang.ClassLoader from shared objects
file]
[Loaded java.lang.System from shared objects file]
[Loaded java.lang.Throwable from shared objects
file]
[Loaded java.lang.Error from shared objects file]
[Loaded java.lang.ThreadDeath from shared objects
file]
[Loaded java.lang.Exception from shared objects
file]
[Loaded java.lang.RuntimeException from shared
objects file]
[Loaded java.security.ProtectionDomain from shared
objects file]
[Loaded java.security.AccessControlContext from
shared objects file]
[Loaded java.lang.ClassNotFoundException from shared
objects file]
[Loaded java.lang.LinkageError from shared objects
file]
[Loaded java.lang.NoClassDefFoundError from shared
objects file]
[Loaded java.lang.ClassCastException from shared
objects file]
[Loaded java.lang.ArrayStoreException from shared
objects file]
[Loaded java.lang.VirtualMachineError from shared
objects file]
[Loaded java.lang.OutOfMemoryError from shared
objects file]
[Loaded java.lang.StackOverflowError from shared
objects file]
[Loaded java.lang.IllegalMonitorStateException from
shared objects file]
[Loaded java.lang.ref.Reference from shared objects
file]
[Loaded java.lang.ref.SoftReference from shared
objects file]
[Loaded java.lang.ref.WeakReference from shared
objects file]
[Loaded java.lang.ref.FinalReference from shared
objects file]
[Loaded java.lang.ref.PhantomReference from shared
objects file]
[Loaded java.lang.ref.Finalizer from shared objects
file]
[Loaded java.lang.Runnable from shared objects file]
[Loaded java.lang.Thread from shared objects file]
[Loaded java.lang.Thread$UncaughtExceptionHandler
from shared objects file]
[Loaded java.lang.ThreadGroup from shared objects
file]
[Loaded java.util.Dictionary from shared objects
file]
[Loaded java.util.Map from shared objects file]
[Loaded java.util.Hashtable from shared objects
file]
[Loaded java.util.Properties from shared objects
file]
[Loaded java.lang.reflect.AccessibleObject from
shared objects file]
[Loaded java.lang.reflect.Member from shared objects
file]
[Loaded java.lang.reflect.Field from shared objects
file]
[Loaded java.lang.reflect.Method from shared objects
file]
[Loaded java.lang.reflect.Constructor from shared
objects file]
[Loaded sun.reflect.MagicAccessorImpl from shared
objects file]
[Loaded sun.reflect.MethodAccessor from shared
objects file]
[Loaded sun.reflect.MethodAccessorImpl from shared
objects file]
[Loaded sun.reflect.ConstructorAccessor from shared
objects file]
[Loaded sun.reflect.ConstructorAccessorImpl from
shared objects file]
[Loaded sun.reflect.DelegatingClassLoader from
shared objects file]
[Loaded sun.reflect.ConstantPool from shared objects
file]
[Loaded sun.reflect.FieldAccessor from shared
objects file]
[Loaded sun.reflect.FieldAccessorImpl from shared
objects file]
[Loaded sun.reflect.UnsafeFieldAccessorImpl from
shared objects file]
[Loaded sun.reflect.UnsafeStaticFieldAccessorImpl
from shared objects file]
[Loaded java.lang.Appendable from shared objects
file]
[Loaded java.lang.AbstractStringBuilder from shared
objects file]
[Loaded java.lang.StringBuffer from shared objects
file]
[Loaded java.lang.StringBuilder from shared objects
file]
[Loaded java.lang.StackTraceElement from shared
objects file]
[Loaded java.nio.Buffer from shared objects file]
[Loaded sun.misc.AtomicLong from shared objects
file]
[Loaded sun.misc.AtomicLongCSImpl from shared
objects file]
[Loaded sun.misc.PostVMInitHook from shared objects
file]
[Loaded java.lang.Boolean from shared objects file]
[Loaded java.lang.Character from shared objects
file]
[Loaded java.lang.Number from shared objects file]
[Loaded java.lang.Float from shared objects file]
[Loaded java.lang.Double from shared objects file]
[Loaded java.lang.Byte from shared objects file]
[Loaded java.lang.Short from shared objects file]
[Loaded java.lang.Integer from shared objects file]
[Loaded java.lang.Long from shared objects file]
[Loaded java.io.ObjectStreamField from shared
objects file]
[Loaded java.util.Comparator from shared objects
file]
[Loaded java.lang.String$CaseInsensitiveComparator
from shared objects file]
[Loaded java.security.Guard from shared objects
file]
[Loaded java.security.Permission from shared objects
file]
[Loaded java.security.BasicPermission from shared
objects file]
[Loaded java.lang.RuntimePermission from shared
objects file]
[Loaded java.util.AbstractMap from shared objects
file]
[Loaded sun.misc.SoftCache from shared objects file]
[Loaded java.lang.ref.ReferenceQueue from shared
objects file]
[Loaded java.lang.ref.ReferenceQueue$Null from
shared objects file]
[Loaded java.lang.ref.ReferenceQueue$Lock from
shared objects file]
[Loaded java.util.HashMap from shared objects file]
[Loaded java.util.Map$Entry from shared objects
file]
[Loaded java.util.HashMap$Entry from shared objects
file]
[Loaded java.security.AccessController from shared
objects file]
[Opened C:\Program Files\Java\jre6\lib\rt.jar]
[Loaded sun.misc.JavaSecurityAccess from C:\Program
Files\Java\jre6\lib\rt.jar]
[Loaded java.security.AccessControlContext$1 from
C:\Program Files\Java\jre6\lib\rt.jar]
[Loaded sun.misc.SharedSecrets from shared objects
file]
[Loaded sun.misc.Unsafe from shared objects file]
[Loaded java.lang.IncompatibleClassChangeError from
shared objects file]
[Loaded java.lang.NoSuchMethodError from shared
objects file]
[Loaded sun.reflect.Reflection from shared objects
file]
[Loaded java.util.Collections from shared objects
file]
[Loaded java.lang.Iterable from shared objects file]
[Loaded java.util.Collection from shared objects
file]
[Loaded java.util.AbstractCollection from shared
objects file]
[Loaded java.util.Set from shared objects file]
[Loaded java.util.AbstractSet from shared objects
file]
[Loaded java.util.Collections$EmptySet from shared
objects file]
[Loaded java.util.List from shared objects file]
[Loaded java.util.AbstractList from shared objects
file]
[Loaded java.util.RandomAccess from shared objects
file]
[Loaded java.util.Collections$EmptyList from shared
objects file]
[Loaded java.util.Collections$EmptyMap from shared
objects file]
[Loaded java.util.Collections$ReverseComparator from
shared objects file]
[Loaded java.util.Collections$SynchronizedMap from
shared objects file]
[Loaded java.lang.reflect.ReflectPermission from
shared objects file]
[Loaded java.security.PrivilegedAction from shared
objects file]
[Loaded
sun.reflect.ReflectionFactory$GetReflectionFactoryAction from shared objects
file]
[Loaded java.util.Vector from shared objects file]
[Loaded java.util.Stack from shared objects file]
[Loaded sun.reflect.ReflectionFactory from shared
objects file]
[Loaded java.lang.ref.Reference$Lock from shared
objects file]
[Loaded java.lang.ref.Reference$ReferenceHandler
from shared objects file]
[Loaded java.lang.ref.Finalizer$FinalizerThread from
shared objects file]
[Loaded java.util.Enumeration from shared objects
file]
[Loaded java.util.Hashtable$EmptyEnumerator from
shared objects file]
[Loaded java.util.Iterator from shared objects file]
[Loaded java.util.Hashtable$EmptyIterator from
shared objects file]
[Loaded java.util.Hashtable$Entry from shared
objects file]
[Loaded sun.misc.Version from shared objects file]
[Loaded sun.misc.JavaLangAccess from shared objects
file]
[Loaded java.lang.System$2 from shared objects file]
[Loaded sun.misc.VM from shared objects file]
[Loaded java.lang.Runtime from shared objects file]
[Loaded java.io.File from shared objects file]
[Loaded java.io.FileSystem from shared objects file]
[Loaded java.io.Win32FileSystem from shared objects
file]
[Loaded java.io.WinNTFileSystem from shared objects
file]
[Loaded java.io.ExpiringCache from shared objects
file]
[Loaded java.util.LinkedHashMap from shared objects
file]
[Loaded java.io.ExpiringCache$1 from shared objects
file]
[Loaded java.util.LinkedHashMap$Entry from shared
objects file]
[Loaded sun.security.action.GetPropertyAction from
shared objects file]
[Loaded java.util.Arrays from shared objects file]
[Loaded java.lang.Math from shared objects file]
[Loaded sun.jkernel.DownloadManager from shared
objects file]
[Loaded java.lang.ThreadLocal from shared objects
file]
[Loaded sun.jkernel.DownloadManager$1 from shared
objects file]
[Loaded java.util.concurrent.atomic.AtomicInteger
from shared objects file]
[Loaded java.lang.Class$3 from shared objects file]
[Loaded java.lang.reflect.Modifier from shared objects
file]
[Loaded sun.reflect.LangReflectAccess from shared
objects file]
[Loaded java.lang.reflect.ReflectAccess from shared
objects file]
[Loaded sun.jkernel.DownloadManager$2 from shared
objects file]
[Loaded java.lang.StringValue from shared objects
file]
[Loaded java.lang.ClassLoader$3 from shared objects
file]
[Loaded java.io.ExpiringCache$Entry from shared
objects file]
[Loaded java.lang.ClassLoader$NativeLibrary from
shared objects file]
[Loaded java.io.Closeable from shared objects file]
[Loaded java.io.InputStream from shared objects
file]
[Loaded java.io.FileInputStream from shared objects
file]
[Loaded java.io.FileDescriptor from shared objects
file]
[Loaded java.io.Flushable from shared objects file]
[Loaded java.io.OutputStream from shared objects
file]
[Loaded java.io.FileOutputStream from shared objects
file]
[Loaded java.io.FilterInputStream from shared
objects file]
[Loaded java.io.BufferedInputStream from shared
objects file]
[Loaded
java.util.concurrent.atomic.AtomicReferenceFieldUpdater from shared objects
file]
[Loaded
java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
from shared objects file]
[Loaded sun.reflect.misc.ReflectUtil from shared
objects file]
[Loaded java.io.FilterOutputStream from shared
objects file]
[Loaded java.io.PrintStream from shared objects
file]
[Loaded java.io.BufferedOutputStream from shared
objects file]
[Loaded java.io.Writer from shared objects file]
[Loaded java.io.OutputStreamWriter from shared
objects file]
[Loaded sun.nio.cs.StreamEncoder from shared objects
file]
[Loaded java.nio.charset.Charset from shared objects
file]
[Loaded java.nio.charset.spi.CharsetProvider from
shared objects file]
[Loaded sun.nio.cs.FastCharsetProvider from shared
objects file]
[Loaded sun.nio.cs.StandardCharsets from shared
objects file]
[Loaded sun.util.PreHashedMap from shared objects
file]
[Loaded sun.nio.cs.StandardCharsets$Aliases from
shared objects file]
[Loaded sun.nio.cs.StandardCharsets$Classes from
shared objects file]
[Loaded sun.nio.cs.StandardCharsets$Cache from
shared objects file]
[Loaded sun.nio.cs.HistoricallyNamedCharset from
shared objects file]
[Loaded sun.nio.cs.MS1252 from shared objects file]
[Loaded java.lang.Class$1 from shared objects file]
[Loaded sun.reflect.ReflectionFactory$1 from shared
objects file]
[Loaded sun.reflect.NativeConstructorAccessorImpl
from shared objects file]
[Loaded
sun.reflect.DelegatingConstructorAccessorImpl from shared objects file]
[Loaded java.nio.charset.CharsetEncoder from shared
objects file]
[Loaded sun.nio.cs.SingleByteEncoder from shared
objects file]
[Loaded sun.nio.cs.MS1252$Encoder from shared
objects file]
[Loaded java.nio.charset.CodingErrorAction from
shared objects file]
[Loaded java.nio.charset.CharsetDecoder from shared
objects file]
[Loaded sun.nio.cs.SingleByteDecoder from shared
objects file]
[Loaded sun.nio.cs.MS1252$Decoder from shared
objects file]
[Loaded java.nio.ByteBuffer from shared objects
file]
[Loaded java.nio.HeapByteBuffer from shared objects
file]
[Loaded java.nio.Bits from shared objects file]
[Loaded java.nio.ByteOrder from shared objects file]
[Loaded java.lang.Readable from shared objects file]
[Loaded java.nio.CharBuffer from shared objects
file]
[Loaded java.nio.HeapCharBuffer from shared objects
file]
[Loaded java.nio.charset.CoderResult from shared
objects file]
[Loaded java.nio.charset.CoderResult$Cache from
shared objects file]
[Loaded java.nio.charset.CoderResult$1 from shared
objects file]
[Loaded java.nio.charset.CoderResult$2 from shared
objects file]
[Loaded sun.nio.cs.Surrogate$Parser from shared
objects file]
[Loaded sun.nio.cs.Surrogate from shared objects
file]
[Loaded java.io.BufferedWriter from shared objects
file]
[Loaded java.lang.Terminator from shared objects
file]
[Loaded sun.misc.SignalHandler from shared objects
file]
[Loaded java.lang.Terminator$1 from shared objects
file]
[Loaded sun.misc.Signal from shared objects file]
[Loaded sun.misc.NativeSignalHandler from shared
objects file]
[Loaded sun.misc.OSEnvironment from shared objects file]
[Loaded sun.io.Win32ErrorMode from shared objects
file]
[Loaded java.lang.NullPointerException from shared
objects file]
[Loaded java.lang.ArithmeticException from shared
objects file]
[Loaded java.lang.Compiler from shared objects file]
[Loaded java.lang.Compiler$1 from shared objects
file]
[Loaded sun.misc.Launcher from shared objects file]
[Loaded java.net.URLStreamHandlerFactory from shared
objects file]
[Loaded sun.misc.Launcher$Factory from shared
objects file]
[Loaded java.security.SecureClassLoader from shared
objects file]
[Loaded java.net.URLClassLoader from shared objects
file]
[Loaded sun.misc.Launcher$ExtClassLoader from shared
objects file]
[Loaded sun.security.util.Debug from shared objects
file]
[Loaded java.lang.Package from shared objects file]
[Loaded java.net.URL from shared objects file]
[Loaded java.security.CodeSource from shared objects
file]
[Loaded java.lang.Void from shared objects file]
[Loaded java.security.cert.Certificate from shared
objects file]
[Loaded java.lang.ClassFormatError from shared
objects file]
[Loaded java.lang.IllegalArgumentException from
shared objects file]
[Loaded java.io.IOException from shared objects
file]
[Loaded sun.misc.URLClassPath from shared objects
file]
[Loaded java.lang.AssertionStatusDirectives from
shared objects file]
[Loaded sun.misc.JavaNetAccess from shared objects
file]
[Loaded java.net.URLClassLoader$7 from shared
objects file]
[Loaded java.security.PermissionCollection from
shared objects file]
[Loaded java.util.StringTokenizer from shared
objects file]
[Loaded java.security.PrivilegedExceptionAction from
shared objects file]
[Loaded sun.misc.Launcher$ExtClassLoader$1 from
shared objects file]
[Loaded sun.misc.MetaIndex from shared objects file]
[Loaded java.io.Reader from shared objects file]
[Loaded java.io.BufferedReader from shared objects
file]
[Loaded java.io.InputStreamReader from shared
objects file]
[Loaded java.io.FileReader from shared objects file]
[Loaded sun.nio.cs.StreamDecoder from shared objects
file]
[Loaded java.util.ArrayList from shared objects
file]
[Loaded java.lang.reflect.Array from shared objects
file]
[Loaded java.util.Locale from shared objects file]
[Loaded java.util.concurrent.ConcurrentMap from
shared objects file]
[Loaded java.util.concurrent.ConcurrentHashMap from
shared objects file]
[Loaded java.util.concurrent.locks.Lock from shared
objects file]
[Loaded java.util.concurrent.locks.ReentrantLock
from shared objects file]
[Loaded
java.util.concurrent.ConcurrentHashMap$Segment from shared objects file]
[Loaded
java.util.concurrent.locks.AbstractOwnableSynchronizer from shared objects
file]
[Loaded
java.util.concurrent.locks.AbstractQueuedSynchronizer from shared objects file]
[Loaded
java.util.concurrent.locks.ReentrantLock$Sync from shared objects file]
[Loaded
java.util.concurrent.locks.ReentrantLock$NonfairSync from shared objects file]
[Loaded
java.util.concurrent.locks.AbstractQueuedSynchronizer$Node from shared objects
file]
[Loaded
java.util.concurrent.ConcurrentHashMap$HashEntry from shared objects file]
[Loaded java.lang.CharacterDataLatin1 from shared
objects file]
[Loaded java.io.ObjectStreamClass from shared
objects file]
[Loaded sun.net.www.ParseUtil from shared objects
file]
[Loaded java.util.BitSet from shared objects file]
[Loaded java.net.Parts from shared objects file]
[Loaded java.net.URLStreamHandler from shared
objects file]
[Loaded sun.net.www.protocol.file.Handler from
shared objects file]
[Loaded java.util.HashSet from shared objects file]
[Loaded sun.net.www.protocol.jar.Handler from shared
objects file]
[Loaded sun.misc.Launcher$AppClassLoader from shared
objects file]
[Loaded sun.misc.Launcher$AppClassLoader$1 from
shared objects file]
[Loaded java.lang.SystemClassLoaderAction from
shared objects file]
[Loaded java.lang.StringCoding from shared objects
file]
[Loaded java.lang.ThreadLocal$ThreadLocalMap from
shared objects file]
[Loaded java.lang.ThreadLocal$ThreadLocalMap$Entry
from shared objects file]
[Loaded java.lang.StringCoding$StringDecoder from
shared objects file]
[Loaded java.net.URLClassLoader$1 from shared
objects file]
[Loaded sun.net.util.URLUtil from shared objects
file]
[Loaded sun.misc.URLClassPath$3 from shared objects
file]
[Loaded sun.misc.URLClassPath$Loader from shared
objects file]
[Loaded sun.misc.URLClassPath$JarLoader from shared
objects file]
[Loaded java.security.PrivilegedActionException from
shared objects file]
[Loaded sun.misc.URLClassPath$FileLoader from shared
objects file]
[Loaded sun.misc.Resource from shared objects file]
[Loaded sun.misc.URLClassPath$FileLoader$1 from
shared objects file]
[Loaded sun.nio.ByteBuffered from shared objects
file]
[Loaded java.security.Permissions from shared
objects file]
[Loaded java.net.URLConnection from shared objects
file]
[Loaded sun.net.www.URLConnection from shared objects
file]
[Loaded sun.net.www.protocol.file.FileURLConnection
from shared objects file]
[Loaded java.net.ContentHandler from shared objects
file]
[Loaded java.net.UnknownContentHandler from shared
objects file]
[Loaded sun.net.www.MessageHeader from shared
objects file]
[Loaded java.io.FilePermission from shared objects
file]
[Loaded java.io.FilePermission$1 from shared objects
file]
[Loaded java.security.Policy from shared objects
file]
[Loaded sun.security.provider.PolicyFile from shared
objects file]
[Loaded
java.security.Policy$UnsupportedEmptyCollection from shared objects file]
[Loaded java.io.FilePermissionCollection from shared
objects file]
[Loaded java.security.AllPermission from shared
objects file]
[Loaded java.security.UnresolvedPermission from
shared objects file]
[Loaded java.security.BasicPermissionCollection from
shared objects file]
[Loaded sun.misc.JavaSecurityProtectionDomainAccess
from C:\Program Files\Java\jre6\lib\rt.jar]
[Loaded java.security.ProtectionDomain$2 from
C:\Program Files\Java\jre6\lib\rt.jar]
[Loaded java.security.ProtectionDomain$Key from
C:\Program Files\Java\jre6\lib\rt.jar]
[Loaded java.security.Principal from shared objects
file]
[Loaded org.training.simple.HelloWorld from
file:/H:/Personal%20Project/JavaTraining/SetProject/bin/]
Hello World
[Loaded java.lang.Shutdown from shared objects file]
[Loaded java.lang.Shutdown$Lock from shared objects
file]
No comments:
Post a Comment