java学习心得(一) String的不可修改以及 == 和equal的区别
2017-02-17 00:15
281 查看
String中有个重要的知识点:String在堆中创建,且不可修改。
怎么理解呢?
举个栗子:
String str1 = "nihao";
String str2 = "nihao";
String str3 = "ni" + "hao";
对于这三个变量,如果用system.out.print(str1 == str2) 去打印,会发现值是true,而 == 在引用类型之间比较的是地址,说明这三个变量指向堆中的地址是一样的。
怎么理解呢?
举个栗子:
String str1 = "nihao";
String str2 = "nihao";
String str3 = "ni" + "hao";
对于这三个变量,如果用system.out.print(str1 == str2) 去打印,会发现值是true,而 == 在引用类型之间比较的是地址,说明这三个变量指向堆中的地址是一样的。
相关文章推荐
- Java中String不可变性以及通过反射进行修改
- 栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴)
- 由String看Java堆栈问题,包括==以及equal()。
- 栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴)
- 黑马程序员—2—Java基础:循环体的区别于联系和学习心得体会
- java String比较,“==”和“equal”区别
- 栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴)
- Java学习札记13:浅析Java中的String、StringBuffer和StringBuilder的区别
- 栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴)
- 栈(stack)与堆(heap)区别以及Java的string变量赋值的内部工作机制(精典转载贴)
- java堆 、栈学习(深刻理解String s=new String("xoxo")和String s=" xxoo"的区别)
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- java正则表达式学习总结,以及和javascript正则表达式的区别
- java中String.equals()和String.equalsIgnoreCase()的区别
- Java学习笔记-String和StringBuffer的区别
- Java中的String str="abc"; String str=new String("abc");和String str = new String();的区别以及==与equals()的不同。
- 【Java 学习笔记】 String.split使用心得
- 学习笔记---Equal()方法、ReferenceEqual()方法以及运算符==的区别
- Java String和Date的转换以及java.util.Date和java.sql.Date的区别和相互转化及取得年月日的方法
- Java中关于==和equal的区别以及equals()方法重写