
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);