Java数据类型以及存储

String str1 = new String("abc"); //数据存储在堆中
		String str2 = new String("abc"); //数据存储在堆中
		
		System.out.println(str1 == str2);//比较引用地址是否相等 false
		System.out.println(str1.equals(str2));//比较值是否相等 true

		String str3 = "abc"; //数据存储在栈中
		String str4 = "abc"; //数据存储在栈中
		
		System.out.println(str3 == str4);//比较引用地址是否相等 true
		System.out.println(str3.equals(str4)); //比较值是否相等 true
		
		System.out.println(str3 == str2); //比较地址是否相等 false
		System.out.println(str3.equals(str1)); //比较值是否相等 true
		int                             a    =      3;
		//(变量类型)自动变量     引用     字面值
		//                             (栈)         (栈)

		String                          b    =    "abc";
		//(变量类型)类变量       引用     字面值
		//                             (栈)         (栈)

		String                         c    =    new String("abc");
		//(变量类型)类变量       引用     类对象
		//                            (栈)         (堆)

1.	寄存器(Register):在处理器中,由编译器分配。
2.栈(Stack):存储原始(primitive)数据类型和对象的引用
3.堆(Heap):存储对象
4.静态存储区(Static Storage):存储整个运行期都可以访问的数据成员和方法
5.固定存储(Constant):存储常量
6.非内存的存储:

你可能感兴趣的:(java,C++,c,C#)