数据结构-堆栈内存
1.什么是堆内存?
2.什么是栈内存
3.区别
- 栈的速度要快
- 栈的数据可以共享,主要存基本数据类型
- 例如:int a=3; //在栈中创建变量a,然后给a赋值,先不会创建一个3而是先在栈中找有没有3 如果有直接指向,没有就加一个3进来。int b=3;b这个时候是直接指向3而不会创建。
4.案例
- String str1 = "abc"; String str2 = "abc"; System.out.printin(str1==str2); //true
- String str1 = "abc"; String str2 = "abc";str1 = "bcd";
- System.out.printin(str1 + "." + str2);//bcd,abc
- System.out.printn(str1==str2);//false 虽然最开始 str1和str2都指向同一个变量abc但str1引用变化后不会改变str2的
- String str1 = "abc"
- String str2 = "abc"
- str1 = "bcd"
- String str3 = str1:
- System.out.printin(str3); //bcd
- String str4 = "bcd";
- System.out.printin(str1 == str4);//true
- String str1 = new String("abc");
- String str2 = "abc";
- System.out.printn(str1==str2);//false new在堆内存中新开了一个对象
- String s1 = "ja";
- String s2 = "va";
- String s3 = "java";
- String s4=s1+s2;/java注意这个+号,java里面重载了+,其实调用了strngBuild,会new对象,
- System.out.printin(s3 == s4);//false
- System.out.printn(s3.equals(s4)); //true 只是比较值