字符串字符串长度的正确表示 规则
1.只要使用 new 方法,便需要创建新的对象,创建两个对象,一个在堆中,一个在常量池中(若常量池中已存在该对象,则不再创建),这是两个不同的对象,指向堆中的和指向常量池中的不同.
String str2 = new String("cc");
当new String("cc")后,堆中创建了"cc",也会在常量池创建"cc",创建了2个字符串对象!
2.直接使用双引号声明出来的 String 对象会直接存储在常量池中。
3.如果不是用双引号声明的 String 对象,可以使用 String 提供的 intern 方法。String.intern() 是一个 Native 方法,它的作用(在JDK1.6和1.7操作不同)是:如果运行时常量池中已经包含一个等于此 String 对象内容的字符串,则返回常量池中该字符串的引用;如果没有,在jdk1.6中,将此String对象添加到常量池中,然后返回这个String对象的引用(此时引用的串在常量池)。在jdk1.7中,放入一个引用,指向堆中的String对象的地址,返回这个引用地址(此时引用的串在堆)
4.常量字符串的“+”操作,编译阶段直接会合成为一个字符串。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论