String a = new String("aa"),代表在堆内存中,创建了一个字符串对象,变量a指向该对象,而该对象又指向在常量池中的字符串常量。
而String a = "aa"代表直接由变量a指向常量池中的字符串,省去了中间的堆内存中的对象,因为new对象时,都会在堆中创建对象。
这就像如果有:
String s1 = "hello"; 
String s2 = "hello";
那么
System.out.println(s1==s2);
结果为true,因为他们的地址值是一致的,都指向常量池中的字符串常量。

String s1 = new String("hello");
String s2 = new String("hello");
System.out.println(s1==s2);
结果则是false,因为他们都在堆中建立了对象,而对象之间的地址值不同

intern 这个方法返回的是 返回字符串对象的规范化表示形式,当调用 intern 方法时,如果池已经包含一个等于此 String 对象的字符串(该对象由 equals(Object) 方法确定),则返回池中的字符串。否则,将此 String 对象添加到池中,并且返回此 String 对象的引用。

public class test{

public static void main(String[] args) throws Exception {

String s1 = new String( "ab123" ) ;
String s2 = new String( "ab123" ) ;
System.out.println( s1 == s2 ); //false

String s3 = "ab123";
String s4 = "ab123";
System.out.println( s3 == s4 ); //true
System.out.println( s3 == s2 ); //false

String s5 = s1.intern() ;
String s6 = s3.intern() ;
System.out.println( s5 == s1 ) ; //false
System.out.println( s5 == s3 ) ; //true

System.out.println( s6 == s5 ) ; //true

}
}

最新文章

  1. javascript原型对象
  2. SQL Server Data Tools – Business Intelligence for Visual Studio 2012安装时提示“The CPU architecture....”的解决方法
  3. Entity Framework实例详解
  4. ASM文件系统
  5. HDU 1548 A strange lift (bfs / 最短路)
  6. 【M35】让自己习惯于标准C++语言
  7. poj 2117 Electricity
  8. charles支持https抓包
  9. git remote log error
  10. 配置SharePoint环境加域提示网络名不可用[已解决]
  11. [Swift]LeetCode938. 二叉搜索树的范围和 | Range Sum of BST
  12. android升级gradle到3.4.1
  13. Centos6.8安装nginx(一)
  14. linux下开启、关闭、重启mysql服务
  15. Robot Framework自动化测试---Selenium API
  16. 20155310 《Java程序设计》实验三(敏捷开发与XP实践)实验报告
  17. Spring @Autowired、@Resource、@Required、@Component、@Repository、@Service、@Controller注解的用法和作用
  18. 升级oracle 9i到10g
  19. 在vue中如何实现购物车checkbox的三级联动
  20. bzoj 4378: [POI2015]Logistyka ——树桩数组+离散化

热门文章

  1. iOS 之 Property List
  2. 解决windows 10 9926 中vmware安装的虚拟机无法桥接上网的问题
  3. 字符串的长度超过了为 maxJsonLength 属性设置的值
  4. libcurl模拟登录CSDN并自动评论资源以获取积分
  5. jdbcTemplate获取mysql的blob
  6. 无法删除MySql数据库,报错1010 error dropping
  7. Javascript/js的相等和不等运算符(= 、== 、===)
  8. Hadoop学习笔记-003-CentOS_6.5_64_设置ssh免密码登录
  9. ubuntu下编译java程序
  10. 第七届蓝桥杯javaB组真题解析-凑算式(第三题)