java 的运行机制之classload

java在运行的时候并不会一下子把所有程序用到的class全部加载进来,而是通过ClassLoad来实现动态加载机制。

是对程序运行效率的一种优化,我这里贴出一个helloworld输出程序的实测输出数据,共400多行,有点长。。。

[Opened C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Object from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.Serializable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Comparable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.CharSequence from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.String from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.AnnotatedElement from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.GenericDeclaration from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Type from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Class from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Cloneable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassLoader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.System from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Throwable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Error from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ThreadDeath from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Exception from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.RuntimeException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.SecurityManager from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.ProtectionDomain from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.AccessControlContext from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.SecureClassLoader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ReflectiveOperationException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassNotFoundException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.LinkageError from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.NoClassDefFoundError from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassCastException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ArrayStoreException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.VirtualMachineError from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.OutOfMemoryError from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.StackOverflowError from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.IllegalMonitorStateException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.Reference from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.SoftReference from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.WeakReference from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.FinalReference from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.PhantomReference from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Cleaner from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.Finalizer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Runnable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Thread from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Thread$UncaughtExceptionHandler from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ThreadGroup from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Map from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Dictionary from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Hashtable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Properties from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.AccessibleObject from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Member from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Field from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Parameter from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Executable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Method from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Constructor from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.MagicAccessorImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.MethodAccessor from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.MethodAccessorImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.ConstructorAccessor from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.ConstructorAccessorImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.DelegatingClassLoader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.ConstantPool from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.FieldAccessor from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.FieldAccessorImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.UnsafeFieldAccessorImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.UnsafeStaticFieldAccessorImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.annotation.Annotation from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.CallerSensitive from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandle from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.DirectMethodHandle from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MemberName from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandleNatives from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.LambdaForm from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodType from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.BootstrapMethodError from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.CallSite from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.ConstantCallSite from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MutableCallSite from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.VolatileCallSite from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Appendable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.AbstractStringBuilder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.StringBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.StringBuilder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Unsafe from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.AutoCloseable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.Closeable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.InputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.ByteArrayInputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.File from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.net.URLClassLoader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.net.URL from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.jar.Manifest from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Launcher from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Launcher$AppClassLoader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Launcher$ExtClassLoader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.CodeSource from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.StackTraceElement from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.Buffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Boolean from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Character from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Number from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Float from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Double from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Byte from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Short from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Integer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Long from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.NullPointerException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ArithmeticException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.ObjectStreamField from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Comparator from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.String$CaseInsensitiveComparator from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.Guard from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.Permission from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.BasicPermission from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.RuntimePermission from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.AccessController from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.ReflectPermission from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.PrivilegedAction from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.ReflectionFactory$GetReflectionFactoryAction from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.cert.Certificate from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Iterable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.List from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.RandomAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.AbstractCollection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.AbstractList from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Vector from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Stack from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.ReflectionFactory from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.Reference$Lock from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.Reference$ReferenceHandler from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.ReferenceQueue from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.ReferenceQueue$Null from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.ReferenceQueue$Lock from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ref.Finalizer$FinalizerThread from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.VM from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Map$Entry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Hashtable$Entry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Math from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.Charset from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.spi.CharsetProvider from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.FastCharsetProvider from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.StandardCharsets from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.AbstractMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.util.PreHashedMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.StandardCharsets$Aliases from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.StandardCharsets$Classes from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.StandardCharsets$Cache from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ThreadLocal from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.atomic.AtomicInteger from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.IncompatibleClassChangeError from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.NoSuchMethodError from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.ArrayList from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Set from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.AbstractSet from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$EmptySet from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$EmptyList from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$EmptyMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$UnmodifiableCollection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$UnmodifiableList from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$UnmodifiableRandomAccessList from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.Reflection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.HashMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.HashMap$Node from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Class$3 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Class$ReflectionData from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Class$Atomic from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.generics.repository.AbstractRepository from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.generics.repository.GenericDeclRepository from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.generics.repository.ClassRepository from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Class$AnnotationData from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.annotation.AnnotationType from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.WeakHashMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassValue$ClassValueMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Modifier from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.LangReflectAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.ReflectAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Arrays from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.Charset$ExtendedProviderHolder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.Charset$ExtendedProviderHolder$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Opened C:\Program Files\Java\jre1.8.0_40\lib\charsets.jar]
[Loaded sun.nio.cs.AbstractCharsetProvider from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ext.ExtendedCharsets from C:\Program Files\Java\jre1.8.0_40\lib\charsets.jar]
[Loaded java.lang.Class$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.ReflectionFactory$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.NativeConstructorAccessorImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.DelegatingConstructorAccessorImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.SortedMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.NavigableMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.TreeMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.ASCIICaseInsensitiveComparator from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.TreeMap$Entry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.HistoricallyNamedCharset from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ext.GBK from C:\Program Files\Java\jre1.8.0_40\lib\charsets.jar]
[Loaded java.lang.StringCoding from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ThreadLocal$ThreadLocalMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ThreadLocal$ThreadLocalMap$Entry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.StringCoding$StringDecoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ext.DoubleByte from C:\Program Files\Java\jre1.8.0_40\lib\charsets.jar]
[Loaded sun.nio.cs.ext.DelegatableDecoder from C:\Program Files\Java\jre1.8.0_40\lib\charsets.jar]
[Loaded sun.nio.cs.ArrayDecoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.CharsetDecoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ext.DoubleByte$Decoder from C:\Program Files\Java\jre1.8.0_40\lib\charsets.jar]
[Loaded java.nio.charset.CodingErrorAction from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Hashtable$EntrySet from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$SynchronizedCollection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$SynchronizedSet from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Objects from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Enumeration from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Iterator from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Hashtable$Enumerator from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Runtime from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Version from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FileInputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FileDescriptor from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.JavaIOFileDescriptorAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FileDescriptor$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.SharedSecrets from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.Flushable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.OutputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FileOutputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FilterInputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.BufferedInputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.PrivilegedExceptionAction from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.reflect.misc.ReflectUtil from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FilterOutputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.PrintStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.BufferedOutputStream from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.Writer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.OutputStreamWriter from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.StreamEncoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.security.action.GetPropertyAction from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ArrayEncoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.CharsetEncoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ext.DoubleByte$Encoder from C:\Program Files\Java\jre1.8.0_40\lib\charsets.jar]
[Loaded java.nio.ByteBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.HeapByteBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.Bits from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.ByteOrder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.JavaNioAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.Bits$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Readable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.CharBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.HeapCharBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.CoderResult from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.CoderResult$Cache from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.CoderResult$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.charset.CoderResult$2 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.BufferedWriter from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.DefaultFileSystem from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FileSystem from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.WinNTFileSystem from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.ExpiringCache from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.LinkedHashMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.ExpiringCache$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Enum from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.File$PathStatus from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.file.Watchable from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.file.Path from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassLoader$NativeLibrary from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.StringCoding$StringEncoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassLoader$3 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.ExpiringCache$Entry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.LinkedHashMap$Entry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Terminator from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.SignalHandler from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Terminator$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Signal from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.NativeSignalHandler from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Integer$IntegerCache from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.OSEnvironment from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.io.Win32ErrorMode from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.JavaLangAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.System$2 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.IllegalArgumentException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Compiler from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Compiler$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.net.URLStreamHandlerFactory from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Launcher$Factory from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.security.util.Debug from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassLoader$ParallelLoaders from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.WeakHashMap$Entry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Collections$SetFromMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.WeakHashMap$KeySet from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.JavaNetAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.net.URLClassLoader$7 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.StringTokenizer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Launcher$ExtClassLoader$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.MetaIndex from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.Reader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.BufferedReader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.InputStreamReader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FileReader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.StreamDecoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.reflect.Array from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Locale from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.util.locale.LocaleObjectCache from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Locale$Cache from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.locks.Lock from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.locks.ReentrantLock from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$Segment from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$Node from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$CounterCell from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$CollectionView from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$KeySetView from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$ValuesView from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.concurrent.ConcurrentHashMap$EntrySetView from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.util.locale.BaseLocale from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.util.locale.BaseLocale$Cache from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.util.locale.BaseLocale$Key from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.util.locale.LocaleObjectCache$CacheEntry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.Locale$LocaleKey from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.util.locale.LocaleUtils from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.CharacterData from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.CharacterDataLatin1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.HashMap$TreeNode from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FileInputStream$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.net.www.ParseUtil from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.BitSet from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.net.Parts from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.net.URLStreamHandler from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.net.www.protocol.file.Handler from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.JavaSecurityAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.ProtectionDomain$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.JavaSecurityProtectionDomainAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.ProtectionDomain$3 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.ProtectionDomain$Key from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.Principal from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.HashSet from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.URLClassPath from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.net.www.protocol.jar.Handler from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Launcher$AppClassLoader$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.SystemClassLoaderAction from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.function.Function from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl$2 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl$3 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassValue from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandleImpl$4 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassValue$Entry from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassValue$Identity from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.ClassValue$Version from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MemberName$Factory from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandleStatics from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.invoke.MethodHandleStatics$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.PostVMInitHook from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.launcher.LauncherHelper from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.net.URLClassLoader$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.net.util.URLUtil from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.URLClassPath$3 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.URLClassPath$Loader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.URLClassPath$JarLoader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.zip.ZipConstants from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.zip.ZipFile from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.JavaUtilZipFileAccess from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.zip.ZipFile$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ThreadLocalCoders from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ThreadLocalCoders$Cache from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ThreadLocalCoders$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.ThreadLocalCoders$2 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.Unicode from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.UTF_8 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.cs.UTF_8$Decoder from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.URLClassPath$FileLoader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Resource from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.URLClassPath$FileLoader$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Package from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.ByteBuffered from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.PerfCounter from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Perf$GetPerfAction from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.Perf from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.misc.PerfCounter$CoreCounters from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.nio.ch.DirectBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.MappedByteBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.DirectByteBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.LongBuffer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.nio.DirectLongBufferU from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.PermissionCollection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.Permissions from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.net.URLConnection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.net.www.URLConnection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.net.www.protocol.file.FileURLConnection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded sun.net.www.MessageHeader from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FilePermission from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FilePermission$1 from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.FilePermissionCollection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.AllPermission from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.UnresolvedPermission from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.security.BasicPermissionCollection from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded com.sdnu.jimbo.learn.MyMainFunction from file:/F:/MyEclipseWorkSpace/LearnJava/bin/]
[Loaded sun.launcher.LauncherHelper$FXHelper from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Class$MethodArray from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.LayoutManager from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.util.EventListener from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.event.ActionListener from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.image.ImageObserver from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.MenuContainer from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.Component from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded javax.accessibility.Accessible from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.Button from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.event.WindowListener from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.TextComponent from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.awt.TextField from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded com.sdnu.jimbo.learn.extend.Animal from file:/F:/MyEclipseWorkSpace/LearnJava/bin/]
[Loaded com.sdnu.jimbo.learn.extend.Dog from file:/F:/MyEclipseWorkSpace/LearnJava/bin/]
[Loaded java.util.concurrent.ConcurrentHashMap$ForwardingNode from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.io.IOException from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Void from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
Hello world !
[Loaded java.lang.Shutdown from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]
[Loaded java.lang.Shutdown$Lock from C:\Program Files\Java\jre1.8.0_40\lib\rt.jar]

在第397行才加载出我的main函数所在的类,一开始是加载了object,然后又String,Exception等我们常用的一些类,当然那些load进来的都是JDK需要使用的。

那么我们怎么验证是否是一个一个加载的呢?

我们使用如下代码:

package com.sdnu.jimbo.learn;
public class MyMainFunction {

	public static void main(String [] agrs){
		new A();
		System.out.println("Hello world !");
		new B();
	}
}
class A{

}
class B{

}

输出结果如下:我只是截取了有用的地方

[Loaded com.sdnu.jimbo.learn.A from file:/F:/MyEclipseWorkSpace/LearnJava/bin/]
Hello world !
[Loaded com.sdnu.jimbo.learn.B from file:/F:/MyEclipseWorkSpace/LearnJava/bin/]

这样就一目了然了。

其实在java运行过程中有好多个ClassLoad 包括

bootstrap class loader:最先启动的classload 最核心的class都是被他load的 一般由c 汇编编写

这个类一般是没有名字的 打印不出来 一般出null值

其他的classload都是java写的,所以说其他的classload都是先要被bootstrap给load进来

extesion class loader: 加载java扩展类库的class

application class loader:加载我们自己写的类

除了这些,还有SecureClassLoader,URLClassLoader等等这些个class loader

可以通过下面这个方法来验证以上的方法,BootstrapClassLoad会出null值

System.out.println(String.class.getClassLoader().getClass().getName());

这几个classload在内存中的层次关系是这样的

		ClassLoader classLoader = MyMainFunction.class.getClassLoader();
		while(classLoader != null){
			System.out.println(classLoader.getClass().getName());
			classLoader = classLoader.getParent();
		}
输出结果:
sun.misc.Launcher$AppClassLoader
sun.misc.Launcher$ExtClassLoader

那么为什么要这样设计呢?

是这样的,在classload工作的时候,他首先检查一下他的parentclassload是否加载了这个class,如果没有他就来加载,否则就是不加载了,只需要加载一次就可以了。

这样做的更深层次的作用是限制权限

时间: 2024-11-09 02:38:41

java 的运行机制之classload的相关文章

Java的运行机制概括

这次随笔主要记录一下我对Java的平台无关性一些新的理解,以前只知道是Java是一门很容易跨平台的语言,正如 "Compile once, run anywhere" 这句话,也知道Java会先加载class字节码文件的机制,但对此是一知半解,所以我觉得有必要深入的总结一下它的加载机制. 你所了解的Java机制 编写源码 编译为字节码 通过JVM将字节码解释为机器码 这的确是Java代码的基本加载过程,因此有时候我们称"Java是解释执行的",但最近看了一篇相关文章

什么是JDK,JRE以及Java的运行机制和环境变量path,classpath的区别

1,JDK SUN公司提供了一套Java开发环境,简称JDK,它是整个Java的核心,其中包括Java编译器,Java运行工具,Java文档生成工具,Java打包工具等. 2,JRE SUN公司除了提供JDK,还提供了一种JRE工具,它是Java的运行环境,只需要运行事先编写好的程序,因此JRE工具中只包含Java运行工具,不包含Java编译工具. 3,为了方便使用,SUN公司在其JDK工具中自带了一个JRE工具,也就是说开发环境中包含了运行环境,这样一来,开发人员只需要在计算机上安装JDK,不

Java的运行机制

Java语言是当前流行的一种程序设计语言,因其安全性.平台无关性.性能优异等特点,受到广大编程爱好者的喜爱. 想学习Java语言的同学对于Java的运行机制的运行机制是必须要了解的. Java程序运行时,必须经过编译和运行两个步骤.首先将后缀名为Java的源文件进行编译,最终生成后缀名为.class的字节码文件.然后Java虚拟机将字节码文件进行解释执行,并将结果显示出来. 为了方便理解Java程序运行的过程,我们把具体步骤写下来. ①编写一个 Hello world.Java的文件. ②使用“

Java 程序运行机制

目录 Java 程序运行机制 运行过程 注释 JDK, JRE, JVM 第一个 JAVA 程序 java命名规范 入门小游戏 Java 程序运行机制 运行过程 源文件 (a.java) Java 编译器 字节码文件(a.class) 进入 JRE ,分别执行 类装载器-->字节码校验器-->解释器 系统平台,执行. 注释 JRE 中包含 JVM (JAVA虚拟机); 其中的字节码校验器也是 JAVA 安全性的一种体现. 也正是因为有 JVM 的存在, 使得 JAVA 具有挂平台的特性; JV

java语言运行机制及运行过程

java语言的特点 1.面向对象     1.1 两个基本概念:类.对象      1.2 三大特性:封装.继承.多态 2.健壮性     吸收了c/c++语言的优点,但是去掉了影响程序健壮性的部分(如指针.内存的申请与释放等),提供了一个相对安全的内存管理和访问机制 3.跨平台性     3.1 通过java语言编写的应用程序在不同的系统平台上都可以运行.           Write once,Run Anywhere      3.2 原理:只要在需要运行java应用程序的操作系统上,先

Java程序运行机制及运行过程

Java运行机制 Java虚拟机(Java Virtual Machine):Java虚拟机可以理解成一个以字节码为机器指令的CPU:对于不同的运行平台,有不同的虚拟机:Java虚拟机机制屏蔽了底层运行平台的差别,真正实现了“一次编译,随处运行”. Java垃圾回收(Garbage Collection):不用使用的内存空间应该回收:在C/C++等语言中,由程序员负责回收无用的内存:Java语言消除了程序员回收无用内存的职 责,它提供一种系统级线程跟踪存贮空间的分配情况,并在JVM空闲的时候,检

【转载】Java JVM 运行机制及基本原理

原博地址:https://zhuanlan.zhihu.com/p/25713880 JVM的基础概念 JVM的中文名称叫Java虚拟机,它是由软件技术模拟出计算机运行的一个虚拟的计算机. JVM也充当着一个翻译官的角色,我们编写出的Java程序,是不能够被操作系统所直接识别的,这时候JVM的作用就体现出来了,它负责把我们的程序翻译给系统"听",告诉它我们的程序需要做什么操作. 我们都知道Java的程序需要经过编译后,产生.Class文件,JVM才能识别并运行它,JVM针对每个操作系统

浅谈C++/JAVA/C#运行机制和执行效率

估计有很多同学都对C++/JAVA/C#这三大热门语言的运行机制和执行效率有或多或少的困惑,自己也有,但是经过前期的学习,了解了三者在这两方面的区别,就废话不说了,进入主题吧. 一.运行机制 1.JAVA-编译和解释型语言 一个JAVA文件,首先会由JAVA编译器(JAVAC)编译成class(字节码文件)文件,然后由Java虚拟机(JVM)去解释.不同的操作系统只要装有适合不同平台的JDK,JAVA文件都可以被解释运行.JAVA是一种编译和解释型语言.       字节码文件(class)之所

Java程序运行机制

高级语言的运行机制 计算机高级语言按程序的执行方式可以分为编译型和解释型两种. 编译型语言是指使用专门的编译器,针对特定平台,也就是操作系统将某种高级语言源代码一次性翻译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序 的格式,这个转换过程称为编译,编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行. 有些程序编译结束后,还可能需要对其他编译好的目标代码进行连接,即组装两个以上的目标代码模板生成最终的可执行性程序,通过这种方式实现低层次的代码复用. 因为编译型语言是