JAVA类的加载(2) ——按需加载(延迟加载)
1、例1:
1 /*
2 按需加载:当你不去实例化Cat时,Cat相关类都不会被加载,即按需加载(需要时加载)
3 1、先加载父类
4 2、初始化类
5 3、类只加载一次(暂且这么认为)——缓存
6
7 加载方法:1、隐式加载 2、显式加载
8 */
9 public class Example {
10 public static void main(String[] args) throws ClassNotFoundException {
11 System.out.println("\n准备实例化Cat");
12 Cat cat = new Cat(); //隐式加载,这里先加载父类
13 System.out.println("Cat实例化完成");
14
15 System.out.println("\n准备加载MyTest类");
16 System.out.println("第一次调用Class.forname()");
17 Class.forName("MyTest"); //显式加载类,用Class.forName("com.taobao.ju.MyTest");
18 System.out.println("第二次调用Class.forname()"); //缓存机制:一旦一个类被载入JVM中,同一个类就不会再被载入了。
19 Class.forName("MyTest");
20
21 System.out.println("\n准备加载MyTest2类"); //Class.forName()加载类同时 强制初始化类(初始化静态部分)
22 Class.forName("MyTest2");
23
24 System.out.println("\n准备加载MyTest3类");
25 ClassLoader c1 = ClassLoader.getSystemClassLoader();
26 c1.loadClass("MyTest3"); //ClassLoader.loadClass() 该语句仅是加载MyTest3类,并不执行该类的初始化
27 System.out.println("第二次调用ClassLoader.loadClass()");
28 c1.loadClass("MyTest3");
29
30 System.out.println("\n程序结束\n");
31 }
32 }
33
34 class Animal {
35 static {
36 System.out.println("I am an animal");
37 }
38 }
39
40 class Cat extends Animal {
41 static {
42 System.out.println("I am a cat");
43 }
44 }
45
46 class MyTest {
47
48 }
49
50 class MyTest2 {
51 static {
52 System.out.println("MyTest2的静态部分初始化");
53 }
54 }
55
56 class MyTest3 {
57 static {
58 System.out.println("MyTest3的静态初始化");
59 }
60 }
执行时在eclipse里面加上参数-verbose,能够显示详细的加载信息
结果如下:开始会先加载rt.jar,程序结束后加载java.lang.Shutdown等
1 [Opened C:\jdk1.6.0\jre\lib\rt.jar]
2 [Loaded java.lang.Object from C:\jdk1.6.0\jre\lib\rt.jar]
3 [Loaded java.io.Serializable from C:\jdk1.6.0\jre\lib\rt.jar]
4 [Loaded java.lang.Comparable from C:\jdk1.6.0\jre\lib\rt.jar]
5 [Loaded java.lang.CharSequence from C:\jdk1.6.0\jre\lib\rt.jar]
6 [Loaded java.lang.String from C:\jdk1.6.0\jre\lib\rt.jar]
7 [Loaded java.lang.reflect.GenericDeclaration from C:\jdk1.6.0\jre\lib\rt.jar]
8 [Loaded java.lang.reflect.Type from C:\jdk1.6.0\jre\lib\rt.jar]
9 [Loaded java.lang.reflect.AnnotatedElement from C:\jdk1.6.0\jre\lib\rt.jar]
10 [Loaded java.lang.Class from C:\jdk1.6.0\jre\lib\rt.jar]
11 [Loaded java.lang.Cloneable from C:\jdk1.6.0\jre\lib\rt.jar]
12 [Loaded java.lang.ClassLoader from C:\jdk1.6.0\jre\lib\rt.jar]
13 [Loaded java.lang.System from C:\jdk1.6.0\jre\lib\rt.jar]
14 [Loaded java.lang.Throwable from C:\jdk1.6.0\jre\lib\rt.jar]
15 [Loaded java.lang.Error from C:\jdk1.6.0\jre\lib\rt.jar]
16 [Loaded java.lang.ThreadDeath from C:\jdk1.6.0\jre\lib\rt.jar]
17 [Loaded java.lang.Exception from C:\jdk1.6.0\jre\lib\rt.jar]
18 [Loaded java.lang.RuntimeException from C:\jdk1.6.0\jre\lib\rt.jar]
19 [Loaded java.security.ProtectionDomain from C:\jdk1.6.0\jre\lib\rt.jar]
20 [Loaded java.security.AccessControlContext from C:\jdk1.6.0\jre\lib\rt.jar]
21 [Loaded java.lang.ClassNotFoundException from C:\jdk1.6.0\jre\lib\rt.jar]
22 [Loaded java.lang.LinkageError from C:\jdk1.6.0\jre\lib\rt.jar]
23 [Loaded java.lang.NoClassDefFoundError from C:\jdk1.6.0\jre\lib\rt.jar]
24 [Loaded java.lang.ClassCastException from C:\jdk1.6.0\jre\lib\rt.jar]
25 [Loaded java.lang.ArrayStoreException from C:\jdk1.6.0\jre\lib\rt.jar]
26 [Loaded java.lang.VirtualMachineError from C:\jdk1.6.0\jre\lib\rt.jar]
27 [Loaded java.lang.OutOfMemoryError from C:\jdk1.6.0\jre\lib\rt.jar]
28 [Loaded java.lang.StackOverflowError from C:\jdk1.6.0\jre\lib\rt.jar]
29 [Loaded java.lang.IllegalMonitorStateException from C:\jdk1.6.0\jre\lib\rt.jar]
30 [Loaded java.lang.ref.Reference from C:\jdk1.6.0\jre\lib\rt.jar]
31 [Loaded java.lang.ref.SoftReference from C:\jdk1.6.0\jre\lib\rt.jar]
32 [Loaded java.lang.ref.WeakReference from C:\jdk1.6.0\jre\lib\rt.jar]
33 [Loaded java.lang.ref.FinalReference from C:\jdk1.6.0\jre\lib\rt.jar]
34 [Loaded java.lang.ref.PhantomReference from C:\jdk1.6.0\jre\lib\rt.jar]
35 [Loaded java.lang.ref.Finalizer from C:\jdk1.6.0\jre\lib\rt.jar]
36 [Loaded java.lang.Runnable from C:\jdk1.6.0\jre\lib\rt.jar]
37 [Loaded java.lang.Thread from C:\jdk1.6.0\jre\lib\rt.jar]
38 [Loaded java.lang.Thread$UncaughtExceptionHandler from C:\jdk1.6.0\jre\lib\rt.jar]
39 [Loaded java.lang.ThreadGroup from C:\jdk1.6.0\jre\lib\rt.jar]
40 [Loaded java.util.Map from C:\jdk1.6.0\jre\lib\rt.jar]
41 [Loaded java.util.Dictionary from C:\jdk1.6.0\jre\lib\rt.jar]
42 [Loaded java.util.Hashtable from C:\jdk1.6.0\jre\lib\rt.jar]
43 [Loaded java.util.Properties from C:\jdk1.6.0\jre\lib\rt.jar]
44 [Loaded java.lang.reflect.AccessibleObject from C:\jdk1.6.0\jre\lib\rt.jar]
45 [Loaded java.lang.reflect.Member from C:\jdk1.6.0\jre\lib\rt.jar]
46 [Loaded java.lang.reflect.Field from C:\jdk1.6.0\jre\lib\rt.jar]
47 [Loaded java.lang.reflect.Method from C:\jdk1.6.0\jre\lib\rt.jar]
48 [Loaded java.lang.reflect.Constructor from C:\jdk1.6.0\jre\lib\rt.jar]
49 [Loaded sun.reflect.MagicAccessorImpl from C:\jdk1.6.0\jre\lib\rt.jar]
50 [Loaded sun.reflect.MethodAccessor from C:\jdk1.6.0\jre\lib\rt.jar]
51 [Loaded sun.reflect.MethodAccessorImpl from C:\jdk1.6.0\jre\lib\rt.jar]
52 [Loaded sun.reflect.ConstructorAccessor from C:\jdk1.6.0\jre\lib\rt.jar]
53 [Loaded sun.reflect.ConstructorAccessorImpl from C:\jdk1.6.0\jre\lib\rt.jar]
54 [Loaded sun.reflect.DelegatingClassLoader from C:\jdk1.6.0\jre\lib\rt.jar]
55 [Loaded sun.reflect.ConstantPool from C:\jdk1.6.0\jre\lib\rt.jar]
56 [Loaded sun.reflect.FieldAccessor from C:\jdk1.6.0\jre\lib\rt.jar]
57 [Loaded sun.reflect.FieldAccessorImpl from C:\jdk1.6.0\jre\lib\rt.jar]
58 [Loaded sun.reflect.UnsafeFieldAccessorImpl from C:\jdk1.6.0\jre\lib\rt.jar]
59 [Loaded sun.reflect.UnsafeStaticFieldAccessorImpl from C:\jdk1.6.0\jre\lib\rt.jar]
60 [Loaded java.lang.Appendable from C:\jdk1.6.0\jre\lib\rt.jar]
61 [Loaded java.lang.AbstractStringBuilder from C:\jdk1.6.0\jre\lib\rt.jar]
62 [Loaded java.lang.StringBuffer from C:\jdk1.6.0\jre\lib\rt.jar]
63 [Loaded java.lang.StringBuilder from C:\jdk1.6.0\jre\lib\rt.jar]
64 [Loaded java.lang.StackTraceElement from C:\jdk1.6.0\jre\lib\rt.jar]
65 [Loaded java.nio.Buffer from C:\jdk1.6.0\jre\lib\rt.jar]
66 [Loaded sun.misc.AtomicLong from C:\jdk1.6.0\jre\lib\rt.jar]
67 [Loaded sun.misc.AtomicLongCSImpl from C:\jdk1.6.0\jre\lib\rt.jar]
68 [Loaded sun.misc.PostVMInitHook from C:\jdk1.6.0\jre\lib\rt.jar]
69 [Loaded java.lang.Boolean from C:\jdk1.6.0\jre\lib\rt.jar]
70 [Loaded java.lang.Character from C:\jdk1.6.0\jre\lib\rt.jar]
71 [Loaded java.lang.Number from C:\jdk1.6.0\jre\lib\rt.jar]
72 [Loaded java.lang.Float from C:\jdk1.6.0\jre\lib\rt.jar]
73 [Loaded java.lang.Double from C:\jdk1.6.0\jre\lib\rt.jar]
74 [Loaded java.lang.Byte from C:\jdk1.6.0\jre\lib\rt.jar]
75 [Loaded java.lang.Short from C:\jdk1.6.0\jre\lib\rt.jar]
76 [Loaded java.lang.Integer from C:\jdk1.6.0\jre\lib\rt.jar]
77 [Loaded java.lang.Long from C:\jdk1.6.0\jre\lib\rt.jar]
78 [Loaded java.lang.NullPointerException from C:\jdk1.6.0\jre\lib\rt.jar]
79 [Loaded java.lang.ArithmeticException from C:\jdk1.6.0\jre\lib\rt.jar]
80 [Loaded java.io.ObjectStreamField from C:\jdk1.6.0\jre\lib\rt.jar]
81 [Loaded java.util.Comparator from C:\jdk1.6.0\jre\lib\rt.jar]
82 [Loaded java.lang.String$CaseInsensitiveComparator from C:\jdk1.6.0\jre\lib\rt.jar]
83 [Loaded java.security.Guard from C:\jdk1.6.0\jre\lib\rt.jar]
84 [Loaded java.security.Permission from C:\jdk1.6.0\jre\lib\rt.jar]
85 [Loaded java.security.BasicPermission from C:\jdk1.6.0\jre\lib\rt.jar]
86 [Loaded java.lang.RuntimePermission from C:\jdk1.6.0\jre\lib\rt.jar]
87 [Loaded java.util.AbstractMap from C:\jdk1.6.0\jre\lib\rt.jar]
88 [Loaded sun.misc.SoftCache from C:\jdk1.6.0\jre\lib\rt.jar]
89 [Loaded java.lang.ref.ReferenceQueue from C:\jdk1.6.0\jre\lib\rt.jar]
90 [Loaded java.lang.ref.ReferenceQueue$Null from C:\jdk1.6.0\jre\lib\rt.jar]
91 [Loaded java.lang.ref.ReferenceQueue$Lock from C:\jdk1.6.0\jre\lib\rt.jar]
92 [Loaded java.util.HashMap from C:\jdk1.6.0\jre\lib\rt.jar]
93 [Loaded java.util.Map$Entry from C:\jdk1.6.0\jre\lib\rt.jar]
94 [Loaded java.util.HashMap$Entry from C:\jdk1.6.0\jre\lib\rt.jar]
95 [Loaded java.security.AccessController from C:\jdk1.6.0\jre\lib\rt.jar]
96 [Loaded sun.misc.JavaSecurityAccess from C:\jdk1.6.0\jre\lib\rt.jar]
97 [Loaded java.security.AccessControlContext$1 from C:\jdk1.6.0\jre\lib\rt.jar]
98 [Loaded sun.misc.SharedSecrets from C:\jdk1.6.0\jre\lib\rt.jar]
99 [Loaded sun.misc.Unsafe from C:\jdk1.6.0\jre\lib\rt.jar]
100 [Loaded java.lang.IncompatibleClassChangeError from C:\jdk1.6.0\jre\lib\rt.jar]
101 [Loaded java.lang.NoSuchMethodError from C:\jdk1.6.0\jre\lib\rt.jar]
102 [Loaded sun.reflect.Reflection from C:\jdk1.6.0\jre\lib\rt.jar]
103 [Loaded java.util.Collections from C:\jdk1.6.0\jre\lib\rt.jar]
104 [Loaded java.lang.Iterable from C:\jdk1.6.0\jre\lib\rt.jar]
105 [Loaded java.util.Collection from C:\jdk1.6.0\jre\lib\rt.jar]
106 [Loaded java.util.Set from C:\jdk1.6.0\jre\lib\rt.jar]
107 [Loaded java.util.AbstractCollection from C:\jdk1.6.0\jre\lib\rt.jar]
108 [Loaded java.util.AbstractSet from C:\jdk1.6.0\jre\lib\rt.jar]
109 [Loaded java.util.Collections$EmptySet from C:\jdk1.6.0\jre\lib\rt.jar]
110 [Loaded java.util.RandomAccess from C:\jdk1.6.0\jre\lib\rt.jar]
111 [Loaded java.util.List from C:\jdk1.6.0\jre\lib\rt.jar]
112 [Loaded java.util.AbstractList from C:\jdk1.6.0\jre\lib\rt.jar]
113 [Loaded java.util.Collections$EmptyList from C:\jdk1.6.0\jre\lib\rt.jar]
114 [Loaded java.util.Collections$EmptyMap from C:\jdk1.6.0\jre\lib\rt.jar]
115 [Loaded java.util.Collections$ReverseComparator from C:\jdk1.6.0\jre\lib\rt.jar]
116 [Loaded java.util.Collections$SynchronizedMap from C:\jdk1.6.0\jre\lib\rt.jar]
117 [Loaded java.lang.reflect.ReflectPermission from C:\jdk1.6.0\jre\lib\rt.jar]
118 [Loaded java.security.PrivilegedAction from C:\jdk1.6.0\jre\lib\rt.jar]
119 [Loaded sun.reflect.ReflectionFactory$GetReflectionFactoryAction from C:\jdk1.6.0\jre\lib\rt.jar]
120 [Loaded java.util.Vector from C:\jdk1.6.0\jre\lib\rt.jar]
121 [Loaded java.util.Stack from C:\jdk1.6.0\jre\lib\rt.jar]
122 [Loaded sun.reflect.ReflectionFactory from C:\jdk1.6.0\jre\lib\rt.jar]
123 [Loaded java.lang.ref.Reference$Lock from C:\jdk1.6.0\jre\lib\rt.jar]
124 [Loaded java.lang.ref.Reference$ReferenceHandler from C:\jdk1.6.0\jre\lib\rt.jar]
125 [Loaded java.lang.ref.Finalizer$FinalizerThread from C:\jdk1.6.0\jre\lib\rt.jar]
126 [Loaded java.util.Enumeration from C:\jdk1.6.0\jre\lib\rt.jar]
127 [Loaded java.util.Hashtable$EmptyEnumerator from C:\jdk1.6.0\jre\lib\rt.jar]
128 [Loaded java.util.Iterator from C:\jdk1.6.0\jre\lib\rt.jar]
129 [Loaded java.util.Hashtable$EmptyIterator from C:\jdk1.6.0\jre\lib\rt.jar]
130 [Loaded java.util.Hashtable$Entry from C:\jdk1.6.0\jre\lib\rt.jar]
131 [Loaded java.nio.charset.Charset from C:\jdk1.6.0\jre\lib\rt.jar]
132 [Loaded java.nio.charset.spi.CharsetProvider from C:\jdk1.6.0\jre\lib\rt.jar]
133 [Loaded sun.nio.cs.FastCharsetProvider from C:\jdk1.6.0\jre\lib\rt.jar]
134 [Loaded sun.nio.cs.StandardCharsets from C:\jdk1.6.0\jre\lib\rt.jar]
135 [Loaded sun.util.PreHashedMap from C:\jdk1.6.0\jre\lib\rt.jar]
136 [Loaded sun.nio.cs.StandardCharsets$Aliases from C:\jdk1.6.0\jre\lib\rt.jar]
137 [Loaded sun.nio.cs.StandardCharsets$Classes from C:\jdk1.6.0\jre\lib\rt.jar]
138 [Loaded sun.nio.cs.StandardCharsets$Cache from C:\jdk1.6.0\jre\lib\rt.jar]
139 [Loaded java.lang.ThreadLocal from C:\jdk1.6.0\jre\lib\rt.jar]
140 [Loaded java.util.concurrent.atomic.AtomicInteger from C:\jdk1.6.0\jre\lib\rt.jar]
141 [Loaded java.lang.Class$3 from C:\jdk1.6.0\jre\lib\rt.jar]
142 [Loaded java.lang.reflect.Modifier from C:\jdk1.6.0\jre\lib\rt.jar]
143 [Loaded sun.reflect.LangReflectAccess from C:\jdk1.6.0\jre\lib\rt.jar]
144 [Loaded java.lang.reflect.ReflectAccess from C:\jdk1.6.0\jre\lib\rt.jar]
145 [Loaded java.lang.StringValue from C:\jdk1.6.0\jre\lib\rt.jar]
146 [Loaded java.util.Arrays from C:\jdk1.6.0\jre\lib\rt.jar]
147 [Loaded java.lang.Math from C:\jdk1.6.0\jre\lib\rt.jar]
148 [Loaded java.nio.charset.Charset$3 from C:\jdk1.6.0\jre\lib\rt.jar]
149 [Opened C:\jdk1.6.0\jre\lib\charsets.jar]
150 [Loaded sun.nio.cs.AbstractCharsetProvider from C:\jdk1.6.0\jre\lib\rt.jar]
151 [Loaded sun.nio.cs.ext.ExtendedCharsets from C:\jdk1.6.0\jre\lib\charsets.jar]
152 [Loaded java.lang.Class$1 from C:\jdk1.6.0\jre\lib\rt.jar]
153 [Loaded sun.reflect.ReflectionFactory$1 from C:\jdk1.6.0\jre\lib\rt.jar]
154 [Loaded sun.reflect.NativeConstructorAccessorImpl from C:\jdk1.6.0\jre\lib\rt.jar]
155 [Loaded sun.reflect.DelegatingConstructorAccessorImpl from C:\jdk1.6.0\jre\lib\rt.jar]
156 [Loaded java.util.SortedMap from C:\jdk1.6.0\jre\lib\rt.jar]
157 [Loaded java.util.NavigableMap from C:\jdk1.6.0\jre\lib\rt.jar]
158 [Loaded java.util.TreeMap from C:\jdk1.6.0\jre\lib\rt.jar]
159 [Loaded sun.misc.ASCIICaseInsensitiveComparator from C:\jdk1.6.0\jre\lib\rt.jar]
160 [Loaded java.util.TreeMap$Entry from C:\jdk1.6.0\jre\lib\rt.jar]
161 [Loaded sun.misc.VM from C:\jdk1.6.0\jre\lib\rt.jar]
162 [Loaded sun.nio.cs.ext.GBK from C:\jdk1.6.0\jre\lib\charsets.jar]
163 [Loaded java.lang.StringCoding from C:\jdk1.6.0\jre\lib\rt.jar]
164 [Loaded java.lang.ThreadLocal$ThreadLocalMap from C:\jdk1.6.0\jre\lib\rt.jar]
165 [Loaded java.lang.ThreadLocal$ThreadLocalMap$Entry from C:\jdk1.6.0\jre\lib\rt.jar]
166 [Loaded java.lang.StringCoding$StringDecoder from C:\jdk1.6.0\jre\lib\rt.jar]
167 [Loaded java.nio.charset.CharsetDecoder from C:\jdk1.6.0\jre\lib\rt.jar]
168 [Loaded sun.nio.cs.ext.DoubleByteDecoder from C:\jdk1.6.0\jre\lib\charsets.jar]
169 [Loaded sun.nio.cs.ext.GBK$Decoder from C:\jdk1.6.0\jre\lib\charsets.jar]
170 [Loaded java.nio.charset.CodingErrorAction from C:\jdk1.6.0\jre\lib\rt.jar]
171 [Loaded java.nio.ByteBuffer from C:\jdk1.6.0\jre\lib\rt.jar]
172 [Loaded java.nio.HeapByteBuffer from C:\jdk1.6.0\jre\lib\rt.jar]
173 [Loaded java.nio.Bits from C:\jdk1.6.0\jre\lib\rt.jar]
174 [Loaded sun.misc.JavaNioAccess from C:\jdk1.6.0\jre\lib\rt.jar]
175 [Loaded java.nio.Bits$1 from C:\jdk1.6.0\jre\lib\rt.jar]
176 [Loaded java.nio.ByteOrder from C:\jdk1.6.0\jre\lib\rt.jar]
177 [Loaded java.lang.Readable from C:\jdk1.6.0\jre\lib\rt.jar]
178 [Loaded java.nio.CharBuffer from C:\jdk1.6.0\jre\lib\rt.jar]
179 [Loaded java.nio.HeapCharBuffer from C:\jdk1.6.0\jre\lib\rt.jar]
180 [Loaded java.nio.charset.CoderResult from C:\jdk1.6.0\jre\lib\rt.jar]
181 [Loaded java.nio.charset.CoderResult$Cache from C:\jdk1.6.0\jre\lib\rt.jar]
182 [Loaded java.nio.charset.CoderResult$1 from C:\jdk1.6.0\jre\lib\rt.jar]
183 [Loaded java.nio.charset.CoderResult$2 from C:\jdk1.6.0\jre\lib\rt.jar]
184 [Loaded sun.misc.Version from C:\jdk1.6.0\jre\lib\rt.jar]
185 [Loaded sun.misc.JavaLangAccess from C:\jdk1.6.0\jre\lib\rt.jar]
186 [Loaded java.lang.System$2 from C:\jdk1.6.0\jre\lib\rt.jar]
187 [Loaded java.lang.Runtime from C:\jdk1.6.0\jre\lib\rt.jar]
188 [Loaded java.io.File from C:\jdk1.6.0\jre\lib\rt.jar]
189 [Loaded java.io.FileSystem from C:\jdk1.6.0\jre\lib\rt.jar]
190 [Loaded java.io.Win32FileSystem from C:\jdk1.6.0\jre\lib\rt.jar]
191 [Loaded java.io.WinNTFileSystem from C:\jdk1.6.0\jre\lib\rt.jar]
192 [Loaded java.io.ExpiringCache from C:\jdk1.6.0\jre\lib\rt.jar]
193 [Loaded java.util.LinkedHashMap from C:\jdk1.6.0\jre\lib\rt.jar]
194 [Loaded java.io.ExpiringCache$1 from C:\jdk1.6.0\jre\lib\rt.jar]
195 [Loaded java.util.LinkedHashMap$Entry from C:\jdk1.6.0\jre\lib\rt.jar]
196 [Loaded sun.security.action.GetPropertyAction from C:\jdk1.6.0\jre\lib\rt.jar]
197 [Loaded sun.jkernel.DownloadManager from C:\jdk1.6.0\jre\lib\rt.jar]
198 [Loaded sun.jkernel.DownloadManager$1 from C:\jdk1.6.0\jre\lib\rt.jar]
199 [Loaded sun.jkernel.DownloadManager$2 from C:\jdk1.6.0\jre\lib\rt.jar]
200 [Loaded java.lang.ClassLoader$3 from C:\jdk1.6.0\jre\lib\rt.jar]
201 [Loaded java.io.ExpiringCache$Entry from C:\jdk1.6.0\jre\lib\rt.jar]
202 [Loaded java.lang.ClassLoader$NativeLibrary from C:\jdk1.6.0\jre\lib\rt.jar]
203 [Loaded java.lang.StringCoding$StringEncoder from C:\jdk1.6.0\jre\lib\rt.jar]
204 [Loaded java.nio.charset.CharsetEncoder from C:\jdk1.6.0\jre\lib\rt.jar]
205 [Loaded sun.nio.cs.ext.DoubleByteEncoder from C:\jdk1.6.0\jre\lib\charsets.jar]
206 [Loaded sun.nio.cs.ext.GBK$Encoder from C:\jdk1.6.0\jre\lib\charsets.jar]
207 [Loaded sun.nio.cs.Surrogate$Parser from C:\jdk1.6.0\jre\lib\rt.jar]
208 [Loaded sun.nio.cs.Surrogate from C:\jdk1.6.0\jre\lib\rt.jar]
209 [Loaded java.io.Closeable from C:\jdk1.6.0\jre\lib\rt.jar]
210 [Loaded java.io.InputStream from C:\jdk1.6.0\jre\lib\rt.jar]
211 [Loaded java.io.FileInputStream from C:\jdk1.6.0\jre\lib\rt.jar]
212 [Loaded java.io.FileDescriptor from C:\jdk1.6.0\jre\lib\rt.jar]
213 [Loaded java.io.Flushable from C:\jdk1.6.0\jre\lib\rt.jar]
214 [Loaded java.io.OutputStream from C:\jdk1.6.0\jre\lib\rt.jar]
215 [Loaded java.io.FileOutputStream from C:\jdk1.6.0\jre\lib\rt.jar]
216 [Loaded java.io.FilterInputStream from C:\jdk1.6.0\jre\lib\rt.jar]
217 [Loaded java.io.BufferedInputStream from C:\jdk1.6.0\jre\lib\rt.jar]
218 [Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater from C:\jdk1.6.0\jre\lib\rt.jar]
219 [Loaded java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl from C:\jdk1.6.0\jre\lib\rt.jar]
220 [Loaded sun.reflect.misc.ReflectUtil from C:\jdk1.6.0\jre\lib\rt.jar]
221 [Loaded java.io.FilterOutputStream from C:\jdk1.6.0\jre\lib\rt.jar]
222 [Loaded java.io.PrintStream from C:\jdk1.6.0\jre\lib\rt.jar]
223 [Loaded java.io.BufferedOutputStream from C:\jdk1.6.0\jre\lib\rt.jar]
224 [Loaded java.io.Writer from C:\jdk1.6.0\jre\lib\rt.jar]
225 [Loaded java.io.OutputStreamWriter from C:\jdk1.6.0\jre\lib\rt.jar]
226 [Loaded sun.nio.cs.StreamEncoder from C:\jdk1.6.0\jre\lib\rt.jar]
227 [Loaded java.io.BufferedWriter from C:\jdk1.6.0\jre\lib\rt.jar]
228 [Loaded java.lang.Terminator from C:\jdk1.6.0\jre\lib\rt.jar]
229 [Loaded sun.misc.SignalHandler from C:\jdk1.6.0\jre\lib\rt.jar]
230 [Loaded java.lang.Terminator$1 from C:\jdk1.6.0\jre\lib\rt.jar]
231 [Loaded sun.misc.Signal from C:\jdk1.6.0\jre\lib\rt.jar]
232 [Loaded sun.misc.NativeSignalHandler from C:\jdk1.6.0\jre\lib\rt.jar]
233 [Loaded sun.misc.OSEnvironment from C:\jdk1.6.0\jre\lib\rt.jar]
234 [Loaded sun.io.Win32ErrorMode from C:\jdk1.6.0\jre\lib\rt.jar]
235 [Loaded java.lang.Compiler from C:\jdk1.6.0\jre\lib\rt.jar]
236 [Loaded java.lang.Compiler$1 from C:\jdk1.6.0\jre\lib\rt.jar]
237 [Loaded sun.misc.Launcher from C:\jdk1.6.0\jre\lib\rt.jar]
238 [Loaded java.net.URLStreamHandlerFactory from C:\jdk1.6.0\jre\lib\rt.jar]
239 [Loaded sun.misc.Launcher$Factory from C:\jdk1.6.0\jre\lib\rt.jar]
240 [Loaded java.security.SecureClassLoader from C:\jdk1.6.0\jre\lib\rt.jar]
241 [Loaded java.net.URLClassLoader from C:\jdk1.6.0\jre\lib\rt.jar]
242 [Loaded sun.misc.Launcher$ExtClassLoader from C:\jdk1.6.0\jre\lib\rt.jar]
243 [Loaded sun.security.util.Debug from C:\jdk1.6.0\jre\lib\rt.jar]
244 [Loaded java.lang.Package from C:\jdk1.6.0\jre\lib\rt.jar]
245 [Loaded java.net.URL from C:\jdk1.6.0\jre\lib\rt.jar]
246 [Loaded java.security.CodeSource from C:\jdk1.6.0\jre\lib\rt.jar]
247 [Loaded java.lang.Void from C:\jdk1.6.0\jre\lib\rt.jar]
248 [Loaded java.security.cert.Certificate from C:\jdk1.6.0\jre\lib\rt.jar]
249 [Loaded java.lang.ClassFormatError from C:\jdk1.6.0\jre\lib\rt.jar]
250 [Loaded java.lang.IllegalArgumentException from C:\jdk1.6.0\jre\lib\rt.jar]
251 [Loaded java.io.IOException from C:\jdk1.6.0\jre\lib\rt.jar]
252 [Loaded sun.misc.URLClassPath from C:\jdk1.6.0\jre\lib\rt.jar]
253 [Loaded java.lang.AssertionStatusDirectives from C:\jdk1.6.0\jre\lib\rt.jar]
254 [Loaded sun.misc.JavaNetAccess from C:\jdk1.6.0\jre\lib\rt.jar]
255 [Loaded java.net.URLClassLoader$7 from C:\jdk1.6.0\jre\lib\rt.jar]
256 [Loaded java.security.PermissionCollection from C:\jdk1.6.0\jre\lib\rt.jar]
257 [Loaded java.util.StringTokenizer from C:\jdk1.6.0\jre\lib\rt.jar]
258 [Loaded java.security.PrivilegedExceptionAction from C:\jdk1.6.0\jre\lib\rt.jar]
259 [Loaded sun.misc.Launcher$ExtClassLoader$1 from C:\jdk1.6.0\jre\lib\rt.jar]
260 [Loaded sun.misc.MetaIndex from C:\jdk1.6.0\jre\lib\rt.jar]
261 [Loaded java.io.Reader from C:\jdk1.6.0\jre\lib\rt.jar]
262 [Loaded java.io.BufferedReader from C:\jdk1.6.0\jre\lib\rt.jar]
263 [Loaded java.io.InputStreamReader from C:\jdk1.6.0\jre\lib\rt.jar]
264 [Loaded java.io.FileReader from C:\jdk1.6.0\jre\lib\rt.jar]
265 [Loaded sun.nio.cs.StreamDecoder from C:\jdk1.6.0\jre\lib\rt.jar]
266 [Loaded java.util.ArrayList from C:\jdk1.6.0\jre\lib\rt.jar]
267 [Loaded java.lang.reflect.Array from C:\jdk1.6.0\jre\lib\rt.jar]
268 [Loaded java.util.Locale from C:\jdk1.6.0\jre\lib\rt.jar]
269 [Loaded java.util.concurrent.ConcurrentMap from C:\jdk1.6.0\jre\lib\rt.jar]
270 [Loaded java.util.concurrent.ConcurrentHashMap from C:\jdk1.6.0\jre\lib\rt.jar]
271 [Loaded java.util.concurrent.locks.Lock from C:\jdk1.6.0\jre\lib\rt.jar]
272 [Loaded java.util.concurrent.locks.ReentrantLock from C:\jdk1.6.0\jre\lib\rt.jar]
273 [Loaded java.util.concurrent.ConcurrentHashMap$Segment from C:\jdk1.6.0\jre\lib\rt.jar]
274 [Loaded java.util.concurrent.locks.AbstractOwnableSynchronizer from C:\jdk1.6.0\jre\lib\rt.jar]
275 [Loaded java.util.concurrent.locks.AbstractQueuedSynchronizer from C:\jdk1.6.0\jre\lib\rt.jar]
276 [Loaded java.util.concurrent.locks.ReentrantLock$Sync from C:\jdk1.6.0\jre\lib\rt.jar]
277 [Loaded java.util.concurrent.locks.ReentrantLock$NonfairSync from C:\jdk1.6.0\jre\lib\rt.jar]
278 [Loaded java.util.concurrent.locks.AbstractQueuedSynchronizer$Node from C:\jdk1.6.0\jre\lib\rt.jar]
279 [Loaded java.util.concurrent.ConcurrentHashMap$HashEntry from C:\jdk1.6.0\jre\lib\rt.jar]
280 [Loaded java.lang.CharacterDataLatin1 from C:\jdk1.6.0\jre\lib\rt.jar]
281 [Loaded java.io.ObjectStreamClass from C:\jdk1.6.0\jre\lib\rt.jar]
282 [Loaded sun.net.www.ParseUtil from C:\jdk1.6.0\jre\lib\rt.jar]
283 [Loaded java.util.BitSet from C:\jdk1.6.0\jre\lib\rt.jar]
284 [Loaded java.net.Parts from C:\jdk1.6.0\jre\lib\rt.jar]
285 [Loaded java.net.URLStreamHandler from C:\jdk1.6.0\jre\lib\rt.jar]
286 [Loaded sun.net.www.protocol.file.Handler from C:\jdk1.6.0\jre\lib\rt.jar]
287 [Loaded java.util.HashSet from C:\jdk1.6.0\jre\lib\rt.jar]
288 [Loaded sun.net.www.protocol.jar.Handler from C:\jdk1.6.0\jre\lib\rt.jar]
289 [Loaded sun.misc.Launcher$AppClassLoader from C:\jdk1.6.0\jre\lib\rt.jar]
290 [Loaded sun.misc.Launcher$AppClassLoader$1 from C:\jdk1.6.0\jre\lib\rt.jar]
291 [Loaded java.lang.SystemClassLoaderAction from C:\jdk1.6.0\jre\lib\rt.jar]
292 [Loaded java.net.URLClassLoader$1 from C:\jdk1.6.0\jre\lib\rt.jar]
293 [Loaded sun.net.util.URLUtil from C:\jdk1.6.0\jre\lib\rt.jar]
294 [Loaded sun.misc.URLClassPath$3 from C:\jdk1.6.0\jre\lib\rt.jar]
295 [Loaded sun.misc.URLClassPath$Loader from C:\jdk1.6.0\jre\lib\rt.jar]
296 [Loaded sun.misc.URLClassPath$JarLoader from C:\jdk1.6.0\jre\lib\rt.jar]
297 [Loaded sun.misc.URLClassPath$JarLoader$1 from C:\jdk1.6.0\jre\lib\rt.jar]
298 [Loaded sun.misc.FileURLMapper from C:\jdk1.6.0\jre\lib\rt.jar]
299 [Loaded java.util.zip.ZipConstants from C:\jdk1.6.0\jre\lib\rt.jar]
300 [Loaded java.util.zip.ZipFile from C:\jdk1.6.0\jre\lib\rt.jar]
301 [Loaded java.util.jar.JarFile from C:\jdk1.6.0\jre\lib\rt.jar]
302 [Loaded sun.misc.JavaUtilJarAccess from C:\jdk1.6.0\jre\lib\rt.jar]
303 [Loaded java.util.jar.JavaUtilJarAccessImpl from C:\jdk1.6.0\jre\lib\rt.jar]
304 [Loaded sun.misc.JarIndex from C:\jdk1.6.0\jre\lib\rt.jar]
305 [Loaded sun.misc.ExtensionDependency from C:\jdk1.6.0\jre\lib\rt.jar]
306 [Loaded java.util.zip.ZipEntry from C:\jdk1.6.0\jre\lib\rt.jar]
307 [Loaded java.util.jar.JarEntry from C:\jdk1.6.0\jre\lib\rt.jar]
308 [Loaded java.util.jar.JarFile$JarFileEntry from C:\jdk1.6.0\jre\lib\rt.jar]
309 [Loaded java.io.DataInput from C:\jdk1.6.0\jre\lib\rt.jar]
310 [Loaded java.io.DataInputStream from C:\jdk1.6.0\jre\lib\rt.jar]
311 [Loaded java.util.zip.ZipFile$ZipFileInputStream from C:\jdk1.6.0\jre\lib\rt.jar]
312 [Loaded java.util.zip.InflaterInputStream from C:\jdk1.6.0\jre\lib\rt.jar]
313 [Loaded java.util.zip.ZipFile$1 from C:\jdk1.6.0\jre\lib\rt.jar]
314 [Loaded java.util.zip.Inflater from C:\jdk1.6.0\jre\lib\rt.jar]
315 [Loaded java.util.zip.ZStreamRef from C:\jdk1.6.0\jre\lib\rt.jar]
316 [Loaded java.security.PrivilegedActionException from C:\jdk1.6.0\jre\lib\rt.jar]
317 [Loaded sun.misc.URLClassPath$FileLoader from C:\jdk1.6.0\jre\lib\rt.jar]
318 [Loaded sun.misc.Resource from C:\jdk1.6.0\jre\lib\rt.jar]
319 [Loaded sun.misc.URLClassPath$FileLoader$1 from C:\jdk1.6.0\jre\lib\rt.jar]
320 [Loaded sun.nio.ByteBuffered from C:\jdk1.6.0\jre\lib\rt.jar]
321 [Loaded java.security.Permissions from C:\jdk1.6.0\jre\lib\rt.jar]
322 [Loaded java.net.URLConnection from C:\jdk1.6.0\jre\lib\rt.jar]
323 [Loaded sun.net.www.URLConnection from C:\jdk1.6.0\jre\lib\rt.jar]
324 [Loaded sun.net.www.protocol.file.FileURLConnection from C:\jdk1.6.0\jre\lib\rt.jar]
325 [Loaded java.net.ContentHandler from C:\jdk1.6.0\jre\lib\rt.jar]
326 [Loaded java.net.UnknownContentHandler from C:\jdk1.6.0\jre\lib\rt.jar]
327 [Loaded sun.net.www.MessageHeader from C:\jdk1.6.0\jre\lib\rt.jar]
328 [Loaded java.io.FilePermission from C:\jdk1.6.0\jre\lib\rt.jar]
329 [Loaded java.io.FilePermission$1 from C:\jdk1.6.0\jre\lib\rt.jar]
330 [Loaded java.security.Policy from C:\jdk1.6.0\jre\lib\rt.jar]
331 [Loaded sun.security.provider.PolicyFile from C:\jdk1.6.0\jre\lib\rt.jar]
332 [Loaded java.security.Policy$UnsupportedEmptyCollection from C:\jdk1.6.0\jre\lib\rt.jar]
333 [Loaded java.io.FilePermissionCollection from C:\jdk1.6.0\jre\lib\rt.jar]
334 [Loaded java.security.AllPermission from C:\jdk1.6.0\jre\lib\rt.jar]
335 [Loaded java.security.UnresolvedPermission from C:\jdk1.6.0\jre\lib\rt.jar]
336 [Loaded java.security.BasicPermissionCollection from C:\jdk1.6.0\jre\lib\rt.jar]
337 [Loaded sun.misc.JavaSecurityProtectionDomainAccess from C:\jdk1.6.0\jre\lib\rt.jar]
338 [Loaded java.security.ProtectionDomain$2 from C:\jdk1.6.0\jre\lib\rt.jar]
339 [Loaded java.security.ProtectionDomain$Key from C:\jdk1.6.0\jre\lib\rt.jar]
340 [Loaded java.security.Principal from C:\jdk1.6.0\jre\lib\rt.jar]
341 [Loaded Example from file:/D:/Users/wuxiong.wx/workspace/Test/LoadClass/Example/bin/]
342
343 准备实例化Cat
344 [Loaded Animal from file:/D:/Users/wuxiong.wx/workspace/Test/LoadClass/Example/bin/]
345 [Loaded Cat from file:/D:/Users/wuxiong.wx/workspace/Test/LoadClass/Example/bin/]
346 I am an animal
347 I am a cat
348 Cat实例化完成
349
350 准备加载MyTest类
351 第一次调用Class.forname()
352 [Loaded MyTest from file:/D:/Users/wuxiong.wx/workspace/Test/LoadClass/Example/bin/]
353 第二次调用Class.forname()
354
355 准备加载MyTest2类
356 [Loaded MyTest2 from file:/D:/Users/wuxiong.wx/workspace/Test/LoadClass/Example/bin/]
357 MyTest2的静态部分初始化
358
359 准备加载MyTest3类
360 [Loaded MyTest3 from file:/D:/Users/wuxiong.wx/workspace/Test/LoadClass/Example/bin/]
361 第二次调用ClassLoader.loadClass()
362
363 程序结束
364
365 [Loaded java.lang.Shutdown from C:\jdk1.6.0\jre\lib\rt.jar]
366 [Loaded java.lang.Shutdown$Lock from C:\jdk1.6.0\jre\lib\rt.jar]
2、例2:显示加载类
Class ClassLoader
- java.lang.Object
- java.lang.ClassLoader
- Direct Known Subclasses:
- SecureClassLoader
public abstract class ClassLoader
extends ObjectA class loader is an object that is responsible for loading classes. The class ClassLoader is an abstract class. Given the binary name of a class, a class loader should attempt to locate or generate data that constitutes a definition for the class. A typical strategy is to transform the name into a file name and then read a "class file" of that name from a file system.
loadClass
public Class<?> loadClass(String name)
throws ClassNotFoundExceptionLoads the class with the specified binary name. This method searches for classes in the same manner as theloadClass(String, boolean)method. It is invoked by the Java virtual machine to resolve class references. Invoking this method is equivalent to invokingloadClass(name, false).- Parameters:
name- The binary name of the class- Returns:
- The resulting Class object
- Throws:
ClassNotFoundException- If the class was not found
Class Class<T>
- java.lang.Object
- java.lang.Class<T>
- Type Parameters:
T- the type of the class modeled by thisClassobject. For example, the type ofString.classisClass<String>. UseClass<?>if the class being modeled is unknown.
- All Implemented Interfaces:
- Serializable, AnnotatedElement, GenericDeclaration, Type
public final class Class<T>
extends Object
implements Serializable, GenericDeclaration, Type, AnnotatedElementInstances of the classClassrepresent classes and interfaces in a running Java application. An enum is a kind of class and an annotation is a kind of interface. Every array also belongs to a class that is reflected as aClassobject that is shared by all arrays with the same element type and number of dimensions. The primitive Java types (boolean,byte,char,short,int,long,float, anddouble), and the keywordvoidare also represented asClassobjects.Classhas no public constructor. InsteadClassobjects are constructed automatically by the Java Virtual Machine as classes are loaded and by calls to thedefineClassmethod in the class loader.The following example uses a
Classobject to print the class name of an object:void printClassName(Object obj) {
System.out.println("The class of " + obj +
" is " + obj.getClass().getName());
}It is also possible to get the
Classobject for a named type (or for void) using a class literal. See Section 15.8.2 of The Java Language Specification. For example:System.out.println("The name of class Foo is: "+Foo.class.getName());- Since:
- JDK1.0
- See Also:
ClassLoader.defineClass(byte[], int, int), Serialized Form
forName
public static Class<?> forName(String className)
throws ClassNotFoundExceptionReturns theClassobject associated with the class or interface with the given string name. Invoking this method is equivalent to:Class.forName(className, true, currentLoader)where
currentLoaderdenotes the defining class loader of the current class.For example, the following code fragment returns the runtime
Classdescriptor for the class namedjava.lang.Thread:Class t = Class.forName("java.lang.Thread")A call to
forName("X")causes the class namedXto be initialized.- Parameters:
className- the fully qualified name of the desired class.- Returns:
- the
Classobject for the class with the specified name. - Throws:
LinkageError- if the linkage failsExceptionInInitializerError- if the initialization provoked by this method failsClassNotFoundException- if the class cannot be located
JAVA类的加载(2) ——按需加载(延迟加载)的更多相关文章
- vue中的懒加载和按需加载
懒加载 (1)定义:懒加载也叫延迟加载,即在需要的时候进行加载,随用随载. (2)异步加载的三种表示方法: 1. resolve => require([URL], resolve),支持性好 ...
- Vue 路由&组件懒加载(按需加载)
当打包构建应用时,Javascript 包会变得非常大,影响页面加载速度.使用Vue路由懒加载和组件懒加载可以提升页面加载速度,减少白屏时间,提升用户体验. 用法有如下三种:(路由懒加载与组件懒加载用 ...
- js异步加载和按需加载
function loadScript(url,callback){ var script = document.creatElement("script"); script.ty ...
- .Net 程序集按需加载机制
在开始本文之前先提两个疑问: 1.一个.Net程序依赖很多的dll,那个他们是在应用程序启动的时候全部把所依赖的动态库全部都加载到应用程序域中的呢还是有选择的加载呢? 2.当应用程序已经启动后我们动态 ...
- 转:按需加载html 图片 css js
按需加载是前端性能优化中的一项重要措施,按需加载是如何定义的呢?顾名思义,指的是当用户触发了动作时才加载对应的功能.触发的动作,是要看具体的业务场景而言,包括但不限于以下几个情况:鼠标点击.输入文字. ...
- vue-cli按需加载,懒加载组件
vue来做一个单页面应用,当我们的项目越来越大,组件越来越多的时候,首次启动项目户特别慢,就算做一个加载框,蒙层之类的,体验也不会好,这个时候就需要按需加载 1.什么叫按需加载 所谓按需加载,顾名思义 ...
- webapck 按需加载及版本控制问题
在启用webpack的懒加载(按需加载)后,我们会遇到要解决缓存的问题. 解决缓存问题有几种方法: 第一种就是加个hash值.便每次修改后所编译后的文件名都不一样.这样能达到预期解决缓存的效果.具体设 ...
- vue3.0使用ant-design-vue进行按需加载原来这么简单
下载 ui库 yarn add ant-design-vue 默认是全局引入,打包后体积很大, 非常影响首屏加载速度, 按需加载 下载按需加载的插件;推荐使用cnpm cnpm install bab ...
- 【转】Spring学习---Bean配置的三种方式(XML、注解、Java类)介绍与对比
[原文]https://www.toutiao.com/i6594205115605844493/ Spring学习Bean配置的三种方式(XML.注解.Java类)介绍与对比 本文将详细介绍Spri ...
- jvm系列(一):java类的加载机制
java类的加载机制 1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装 ...
随机推荐
- SQL Server 配置允许远程连接
前言 需要别人远程你的数据库,首先需要的是在一个局域网内,或者连接的是同一个路由器,接下来就是具体步骤: 1.首先是要检查SQLServer数据库服务器中是否允许远程链接.其具体操作为: 1. 打开数 ...
- Java 调用gdal API(二)——栅格裁剪
gdal可以说是GIS数据处理比较好的工具之一,虽然也提供了Java API,但是官方文档确实太过简单,用起来确实太难受,每次都需要去参考对应的C++api,然后在对应使用. 因此小编决定从这篇文章开 ...
- 懒人的百宝箱「GitHub 热点速览」
本周 GitHub Trending 除了 lazydocker 之外,还有多个 lazy 项目上线,比如大家熟悉的 lazyvim,可见,这个世界对懒人还是很友好的.除此之外,主打一个密码免输入,绕 ...
- 【go语言】2.4.3 Go Modules
Go Modules 是 Go 语言的官方依赖管理工具,自 Go 1.11 版本开始引入.它解决了 Go 语言在依赖管理上的一些问题,如版本控制.依赖隔离等. 初始化一个新的模块 你可以使用 go m ...
- Android 架构模式如何选择
作者:vivo 互联网客户端团队-Xu Jie Android架构模式飞速演进,目前已经有MVC.MVP.MVVM.MVI.到底哪一个才是自己业务场景最需要的,不深入理解的话是无法进行选择的.这篇文章 ...
- cesium加载gif图片(cesium篇.43)
https://blog.csdn.net/QQ98281642/article/details/120214325
- 【技术积累】Linux中的命令行【理论篇】【六】
as命令 命令介绍 在Linux中,as命令是一个汇编器,用于将汇编语言源代码转换为可执行的目标文件.它是GNU Binutils软件包的一部分,提供了一系列用于处理二进制文件的工具. 命令说明 as ...
- SpringBoot 笔记
SpringBoot 笔记 一.Spring Boot 入门 1.Spring Boot 简介 2.微服务 2014,martin fowler 微服务:架构风格(服务微化) 一个应用应该是一组小型服 ...
- LeetCode 周赛上分之旅 #44 同余前缀和问题与经典倍增 LCA 算法
️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越 ...
- 如何平息WPS for linux启动后,笔记本风扇的怒吼
create:2022-09-06 20:02:45 WPS启动后,点击菜单栏右上角[未同步]按钮,不登录,直接关掉.几秒后,笔记本风扇嗷嗷叫.桌面conky显示wpscloudsvr进程CPU占用8 ...