String str = new String("siddim.com");
String s1 = new StringBuilder("sidd").append("im").toString(); System.out.println(s1.intern() == s1); String s2 = new StringBuilder("progr").append("am").toString(); System.out.println(s2.intern() == s2);
jstat -gcutil pid 统计gc信息统计。如下图
jstat -gc pid 可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity pid 可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。 其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid 年轻代对象的信息。
jstat -gcnewcapacity pid 年轻代对象的信息及其占用量。
jstat -gcold pid old代对象的信息。
jstat -gcoldcapacity pid old代对象的信息及其占用量。
参数 | 意义 |
---|---|
-Xms | 初始堆大小 |
-Xmx | 最大堆空间 |
-Xmn | 设置新生代大小 |
-XX:SurvivorRatio | 设置新生代eden空间和from/to空间的比例关系 |
-XX:PermSize | 方法区初始大小 |
-XX:MaxPermSize | 方法区最大大小 |
-XX:MetaspaceSize | 元空间GC阈值(JDK1.8) |
-XX:MaxMetaspaceSize | 最大元空间大小(JDK1.8) |
-Xss | 栈大小 |
-XX:MaxDirectMemorySize | 直接内存大小,默认为最大堆空间 |
//方式一 Class class1 = Class.forName("User"); User user1= (User) class1.newInstance(); System.out.println(user1); //方式二 Constructor constructor = class1.getConstructor(); User user2 = (User) constructor.newInstance(); System.out.println(user2);