基础jmap -histo PID日志分析
- 待补充
- java version - jdk1.8
其中需要关注的几个类对象
- [C is a char[] — 跟jdk 1.8 String相关
(final) char[]-jdk8 -> byte[]-jdk9 - [S is a short[]
- [I is a int[]
- [B is a byte[]
- [I is a int[]
- java.lang.Class — Class类对象
- com.sun.proxy.$Proxy0 — Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) 动态生成代理类
[C
也会直接展示为char[]
[Ljava.lang.String
表示String数组对象,也会直接展示为java.lang.String[]
- 当程序在运行过程中遇到new关键字创建一个数组时,由JVM直接创建数组类,再由类加载器创建数组中的元素类。
普通类的加载由类加载器完成。既可以使用系统提供的类加载器,也可以使用用户自定义的类加载器。- java.lang.Class对象的存放JVM规范并没有给出限制,不同的虚拟机根据自己的需求存放这个对象。HotSpot将Class对象存放在方法区?
相关文档:
基础总结(非常全面的Java知识点总结)
Spring基础总结–主要参考Spring in action的总结blog
类加载的过程
num #instances #bytes class name
----------------------------------------------
1: 479 15288424 [I
2: 2281 228936 [C
3: 302 83640 [B
4: 521 59432 java.lang.Class
5: 1758 42192 java.lang.String
6: 591 30616 [Ljava.lang.Object;
7: 341 10912 java.util.HashMap$Node
8: 388 9312 java.util.LinkedList$Node
9: 115 8280 java.lang.reflect.Field
10: 26 7456 [Ljava.util.HashMap$Node;
11: 195 6240 java.util.LinkedList
12: 205 4920 java.lang.StringBuilder
13: 258 4128 java.lang.Integer
14: 102 4080 java.lang.ref.SoftReference
15: 156 3744 sun.misc.ProxyGenerator$ConstantPool$IndirectEntry
16: 114 3648 java.util.Hashtable$Entry
17: 8 3008 java.lang.Thread
18: 90 2880 java.util.concurrent.ConcurrentHashMap$Node
19: 75 2568 [Ljava.lang.String;
20: 70 2240 java.io.File
21: 32 2048 java.net.URL
22: 38 1824 sun.util.locale.LocaleObjectCache$CacheEntry
23: 12 1760 [Ljava.util.Hashtable$Entry;
24: 20 1760 java.lang.reflect.Method
25: 27 1712 [S
26: 104 1664 java.lang.Short
27: 68 1280 [Ljava.lang.Class;
28: 16 1280 java.lang.reflect.Constructor
29: 74 1184 java.lang.Object
30: 24 1152 java.util.HashMap
31: 20 1120 java.lang.Class$ReflectionData
32: 2 1064 [Ljava.lang.invoke.MethodHandle;
33: 10 1056 [Ljava.util.concurrent.ConcurrentHashMap$Node;
34: 1 1040 [Ljava.lang.Integer;
35: 26 1040 java.io.ObjectStreamField
36: 51 816 sun.misc.ProxyGenerator$ConstantPool$ValueEntry
37: 20 800 sun.util.locale.BaseLocale$Key
38: 19 760 java.util.LinkedHashMap$Entry
39: 21 672 java.util.ArrayList$Itr
40: 16 640 java.lang.ref.Finalizer
41: 11 616 sun.misc.URLClassPath$JarLoader
42: 19 608 java.util.Locale
43: 19 608 sun.util.locale.BaseLocale
44: 24 576 java.util.ArrayList
45: 9 576 java.util.concurrent.ConcurrentHashMap
46: 9 560 [Ljava.lang.reflect.Field;
47: 23 552 java.net.Parts
48: 23 552 sun.security.action.GetPropertyAction
49: 15 536 [Ljava.lang.reflect.Method;
50: 12 480 java.security.AccessControlContext
51: 20 480 java.util.Locale$LocaleKey
52: 19 456 java.io.ExpiringCache$Entry
53: 18 432 java.lang.StringBuffer
54: 5 400 [Ljava.util.WeakHashMap$Entry;
55: 1 384 java.lang.ref.Finalizer$FinalizerThread
56: 6 384 java.nio.DirectByteBuffer
57: 1 376 java.lang.ref.Reference$ReferenceHandler
58: 6 336 java.nio.DirectLongBufferU
59: 14 336 sun.misc.ProxyGenerator$ExceptionTableEntry
60: 10 320 java.lang.OutOfMemoryError
61: 10 320 java.lang.ref.ReferenceQueue
62: 10 288 [Ljava.io.ObjectStreamField;
63: 9 288 java.io.FileDescriptor
64: 6 288 java.nio.HeapCharBuffer
65: 6 288 sun.misc.ProxyGenerator$MethodInfo
66: 12 288 sun.misc.URLClassPath$3
67: 7 280 java.util.WeakHashMap$Entry
68: 5 280 sun.nio.cs.UTF_8$Encoder
69: 8 256 java.io.DataOutputStream
70: 8 256 java.util.Vector
71: 8 256 sun.misc.ProxyGenerator$PrimitiveTypeInfo
72: 10 240 java.lang.Class$MethodArray
73: 5 240 java.util.WeakHashMap
74: 9 216 sun.misc.MetaIndex
75: 5 200 sun.nio.cs.UTF_8$Decoder
76: 8 192 [Ljava.lang.reflect.Constructor;
77: 6 192 java.io.FileInputStream
78: 12 192 java.lang.ref.ReferenceQueue$Lock
79: 8 192 java.net.URLClassLoader$1
80: 4 192 java.nio.HeapByteBuffer
81: 6 192 java.security.CodeSource
82: 4 192 java.util.Hashtable
83: 2 192 java.util.jar.JarFile$JarFileEntry
84: 8 192 sun.reflect.NativeConstructorAccessorImpl
85: 7 168 java.io.ByteArrayOutputStream
86: 7 168 java.lang.Class$1
87: 4 160 java.lang.ClassNotFoundException
88: 2 160 java.util.zip.ZipEntry
89: 4 160 sun.misc.ProxyGenerator$ProxyMethod
90: 6 144 sun.misc.PerfCounter
91: 2 128 java.io.ExpiringCache$1
92: 2 128 java.util.jar.JarFile
93: 4 128 sun.misc.ProxyGenerator$FieldInfo
94: 4 128 sun.misc.URLClassPath$FileLoader$1
95: 8 128 sun.reflect.DelegatingConstructorAccessorImpl
96: 3 120 java.security.ProtectionDomain
97: 3 120 java.util.HashMap$ValueIterator
98: 2 112 java.util.zip.ZipFile$ZipFileInputStream
99: 1 104 sun.net.www.protocol.file.FileURLConnection
100: 2 96 java.io.BufferedReader
101: 3 96 java.io.FileOutputStream
102: 2 96 java.lang.ThreadGroup
103: 6 96 java.util.HashSet
104: 2 96 java.util.Properties
105: 3 96 java.util.Stack
106: 2 96 java.util.StringTokenizer
107: 4 96 java.util.concurrent.atomic.AtomicLong
108: 1 96 sun.misc.Launcher$AppClassLoader
109: 2 96 sun.misc.URLClassPath
110: 2 96 sun.nio.cs.StreamDecoder
111: 2 96 sun.nio.cs.StreamEncoder
112: 4 96 sun.usagetracker.UsageTrackerClient$1
113: 2 88 [Ljava.net.URL;
114: 1 88 sun.misc.Launcher$ExtClassLoader
115: 1 80 [Ljava.lang.ThreadLocal$ThreadLocalMap$Entry;
116: 2 80 java.io.BufferedWriter
117: 2 80 java.io.ExpiringCache
118: 5 80 java.io.FileInputStream$1
119: 5 80 java.lang.Class$3
120: 3 72 java.lang.RuntimePermission
121: 3 72 java.util.Collections$SynchronizedSet
122: 3 72 sun.misc.Signal
123: 2 64 [J
124: 2 64 [Ljava.lang.Thread;
125: 2 64 java.io.FilePermission
126: 2 64 java.io.PrintStream
127: 2 64 java.lang.ClassValue$Entry
128: 2 64 java.lang.NoSuchMethodError
129: 2 64 java.lang.ThreadLocal$ThreadLocalMap$Entry
130: 2 64 java.lang.VirtualMachineError
131: 2 64 java.lang.ref.ReferenceQueue$Null
132: 2 64 java.util.concurrent.ConcurrentHashMap$ForwardingNode
133: 2 64 java.util.zip.ZipCoder
134: 1 56 java.util.zip.ZipFile$ZipFileInflaterInputStream
135: 2 48 [Ljava.io.File;
136: 3 48 [Ljava.security.Principal;
137: 2 48 java.io.BufferedOutputStream
138: 2 48 java.io.File$PathStatus
139: 2 48 java.io.OutputStreamWriter
140: 3 48 java.lang.ThreadLocal
141: 2 48 java.nio.charset.CoderResult
142: 3 48 java.nio.charset.CodingErrorAction
143: 3 48 java.security.ProtectionDomain$Key
144: 2 48 java.util.ArrayDeque
145: 1 48 java.util.Hashtable$Enumerator
146: 1 48 java.util.zip.Inflater
147: 2 48 sun.misc.FileURLMapper
148: 2 48 sun.misc.NativeSignalHandler
149: 1 48 sun.misc.ProxyGenerator
150: 3 48 sun.reflect.ReflectionFactory$GetReflectionFactoryAction
151: 1 40 java.io.BufferedInputStream
152: 1 40 java.lang.ClassLoader$NativeLibrary
153: 1 40 java.util.IdentityHashMap
154: 1 40 sun.nio.cs.StandardCharsets$Aliases
155: 1 40 sun.nio.cs.StandardCharsets$Cache
156: 1 40 sun.nio.cs.StandardCharsets$Classes
157: 1 32 [Ljava.lang.OutOfMemoryError;
158: 2 32 [Ljava.lang.StackTraceElement;
159: 1 32 [Ljava.lang.ThreadGroup;
160: 2 32 java.io.FilePermission$1
161: 1 32 java.io.UnixFileSystem
162: 1 32 java.lang.ArithmeticException
163: 2 32 java.lang.Boolean
164: 1 32 java.lang.NullPointerException
165: 1 32 java.lang.StringCoding$StringDecoder
166: 1 32 java.lang.StringCoding$StringEncoder
167: 1 32 java.lang.reflect.Proxy$Key1
168: 1 32 java.lang.reflect.WeakCache
169: 1 32 java.lang.reflect.WeakCache$CacheKey
170: 1 32 java.lang.reflect.WeakCache$CacheValue
171: 1 32 java.lang.reflect.WeakCache$Factory
172: 2 32 java.nio.ByteOrder
173: 1 32 java.security.BasicPermissionCollection
174: 1 32 java.security.Permissions
175: 2 32 java.util.concurrent.atomic.AtomicInteger
176: 1 32 java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl
177: 2 32 sun.misc.URLClassPath$JarLoader$1
178: 2 32 sun.net.www.protocol.jar.Handler
179: 1 32 sun.nio.cs.StandardCharsets
180: 2 32 sun.reflect.ReflectionFactory$1
181: 2 32 sun.usagetracker.UsageTrackerClient$3
182: 1 24 [Ljava.io.File$PathStatus;
183: 1 24 [Ljava.lang.ClassValue$Entry;
184: 1 24 [Lsun.launcher.LauncherHelper;
185: 1 24 java.io.FilePermissionCollection
186: 1 24 java.io.FileReader
187: 1 24 java.io.InputStreamReader
188: 1 24 java.lang.ClassValue$Version
189: 1 24 java.lang.ThreadLocal$ThreadLocalMap
190: 1 24 java.lang.invoke.MethodHandleImpl$4
191: 1 24 java.lang.reflect.ReflectPermission
192: 1 24 java.util.BitSet
193: 1 24 java.util.Collections$EmptyMap
194: 1 24 java.util.Collections$SetFromMap
195: 1 24 java.util.Collections$UnmodifiableRandomAccessList
196: 1 24 java.util.Locale$Cache
197: 1 24 java.util.concurrent.atomic.AtomicReferenceFieldUpdater$AtomicReferenceFieldUpdaterImpl$1
198: 1 24 java.util.zip.ZStreamRef
199: 1 24 sun.launcher.LauncherHelper
200: 1 24 sun.misc.JarIndex
201: 1 24 sun.misc.Launcher$AppClassLoader$1
202: 1 24 sun.misc.ProxyGenerator$ConstantPool
203: 1 24 sun.misc.URLClassPath$FileLoader
204: 1 24 sun.net.www.MessageHeader
205: 1 24 sun.nio.cs.ISO_8859_1
206: 1 24 sun.nio.cs.US_ASCII
207: 1 24 sun.nio.cs.UTF_16
208: 1 24 sun.nio.cs.UTF_16BE
209: 1 24 sun.nio.cs.UTF_16LE
210: 1 24 sun.nio.cs.UTF_8
211: 1 24 sun.usagetracker.UsageTrackerClient$4
212: 1 24 sun.util.locale.BaseLocale$Cache
213: 1 16 [D
214: 1 16 [F
215: 1 16 [Ljava.lang.Throwable;
216: 1 16 [Ljava.security.cert.Certificate;
217: 1 16 [Z
218: 1 16 DynamicProxy
219: 1 16 Singer
220: 1 16 com.sun.proxy.$Proxy0
221: 1 16 java.io.FileDescriptor$1
222: 1 16 java.io.FileOutputStream$1
223: 1 16 java.lang.CharacterDataLatin1
224: 1 16 java.lang.ClassLoader$3
225: 1 16 java.lang.ClassValue$Identity
226: 1 16 java.lang.Compiler$1
227: 1 16 java.lang.Runtime
228: 1 16 java.lang.String$CaseInsensitiveComparator
229: 1 16 java.lang.System$2
230: 1 16 java.lang.SystemClassLoaderAction
231: 1 16 java.lang.Terminator$1
232: 1 16 java.lang.invoke.MemberName$Factory
233: 1 16 java.lang.invoke.MethodHandleImpl$1
234: 1 16 java.lang.invoke.MethodHandleImpl$2
235: 1 16 java.lang.invoke.MethodHandleImpl$3
236: 1 16 java.lang.invoke.MethodHandleStatics$1
237: 1 16 java.lang.ref.Reference$1
238: 1 16 java.lang.ref.Reference$Lock
239: 1 16 java.lang.reflect.Proxy$KeyFactory
240: 1 16 java.lang.reflect.Proxy$ProxyClassFactory
241: 1 16 java.lang.reflect.ReflectAccess
242: 1 16 java.net.URLClassLoader$7
243: 1 16 java.nio.Bits$1
244: 1 16 java.nio.charset.CoderResult$1
245: 1 16 java.nio.charset.CoderResult$2
246: 1 16 java.security.ProtectionDomain$2
247: 1 16 java.security.ProtectionDomain$JavaSecurityAccessImpl
248: 1 16 java.util.Collections$EmptyList
249: 1 16 java.util.Collections$EmptySet
250: 1 16 java.util.HashMap$Values
251: 1 16 java.util.Hashtable$EntrySet
252: 1 16 java.util.WeakHashMap$KeySet
253: 1 16 java.util.concurrent.atomic.AtomicBoolean
254: 1 16 java.util.jar.JavaUtilJarAccessImpl
255: 1 16 java.util.zip.ZipFile$1
256: 1 16 sun.misc.Launcher
257: 1 16 sun.misc.Launcher$ExtClassLoader$1
258: 1 16 sun.misc.Launcher$Factory
259: 1 16 sun.misc.Perf
260: 1 16 sun.misc.Perf$GetPerfAction
261: 1 16 sun.misc.Unsafe
262: 1 16 sun.net.www.protocol.file.Handler
263: 1 16 sun.reflect.ReflectionFactory
264: 1 16 sun.security.action.GetBooleanAction
265: 1 16 sun.usagetracker.UsageTrackerClient
Total 9418 15854864