标签:style blog http java color 使用
http://www.cnblogs.com/devinzhang/archive/2012/01/25/2329463.html
Java中内存分析:
1)
String a = "abc";①
String b = "abc";②
String c = new String("xyz");①
String d = new String("xyz");②
String s1 = new String("xyz"); //创建二个对象(常量池和栈中),一个引用
String s2 = new String("xyz"); //创建一个对象(栈中),并且以后每执行一次创建一个对象,一个引用
String s3 = "xyz"; //创建一个对象(常量池中),一个引用
String s4 = "xyz"; //不创建对象(共享上次常量池中的数据),只是创建一个新的引用
public class TestStr {
public static void main(String[] args) {
// 以下两条语句创建了1个对象。"凤山"存储在字符串常量池中
String str1 = "凤山";
String str2 = "凤山";
System.out.println(str1==str2);//true
//以下两条语句创建了3个对象。"天峨",存储在字符串常量池中,两个new String()对象存储在堆内存中
String str3 = new String("天峨");
String str4 = new String("天峨");
System.out.println(str3==str4);//false
//以下两条语句创建了1个对象。9是存储在栈内存中
int i = 9;
int j = 9;
System.out.println(i==j);//true
//由于没有了装箱,以下两条语句创建了2个对象。两个1对象存储在堆内存中
Integer l1 = new Integer(1);
Integer k1 = new Integer(1);
System.out.println(l1==k1);//false
//以下两条语句创建了1个对象。1对象存储在栈内存中。自动装箱时对于值从127之间的值,使用一个实例。
Integer l = 20;//装箱
Integer k = 20;//装箱
System.out.println(l==k);//true
//以下两条语句创建了2个对象。i1,i2变量存储在栈内存中,两个256对象存储在堆内存中
Integer i1 = 256;
Integer i2 = 256;
System.out.println(i1==i2);//false
}
}
Java之内存分析和String对象,布布扣,bubuko.com
标签:style blog http java color 使用
原文地址:http://www.cnblogs.com/qufanblog/p/3849570.html