String内存的分配问题

来源:互联网 发布:iina for mac下载 编辑:程序博客网 时间:2024/05/23 21:07


关于String就不做介绍,直接上代码。

String a="a";String b="b";String ab="ab";String ab2=a+b;String ab3="a"+"b";System.out.println(a=="a");//trueSystem.out.println(ab=="ab");//trueSystem.out.println(ab==ab2);//falseSystem.out.println(ab==ab3);//true


Q: 为什么ab==ab2结果是false?

A:因为ab2是变量a和b相加之后赋值给ab2,所以在编译的时候不能确定ab2的内容,而ab3的是“a”和”b“相加之后赋值给ab3的,所以在编译的时候就知道ab3的值。

因此ab==ab2是false而ab==ab3是true。

原创粉丝点击