java语言基础(54)——变量字符串拼接和常量字符串拼接的区别
2017-05-28 20:32
507 查看
以下测试基于:
(1)== 在比较引用类型的数据时,比较的是其地址值
(2)字符串常量在内存中,只会存在一份。
class StringDemo
{
public static void main(String[] args){
String s1 = "hello";
String s2 = "world";
String s3 = "helloworld";
System.out.println(s3==s1+s2); //false
System.out.println(s3=="hello"+"world");//true
}
}
由以上代码输出结果我们可以看到,变量字符串拼接和常量字符串拼接结果是不一样的。那是因为变量字符串拼接是先开辟空间,然后再拼接。这样的话,s3 与 s1+s2 的地址值是不一样的。
而常量字符串拼接是先拼接完再与其它变量比较。所以s3与"hello"+"world"比较就相当于与"helloworld"比较,其地址值自然相等。
(1)== 在比较引用类型的数据时,比较的是其地址值
(2)字符串常量在内存中,只会存在一份。
class StringDemo
{
public static void main(String[] args){
String s1 = "hello";
String s2 = "world";
String s3 = "helloworld";
System.out.println(s3==s1+s2); //false
System.out.println(s3=="hello"+"world");//true
}
}
由以上代码输出结果我们可以看到,变量字符串拼接和常量字符串拼接结果是不一样的。那是因为变量字符串拼接是先开辟空间,然后再拼接。这样的话,s3 与 s1+s2 的地址值是不一样的。
而常量字符串拼接是先拼接完再与其它变量比较。所以s3与"hello"+"world"比较就相当于与"helloworld"比较,其地址值自然相等。
相关文章推荐
- Java语言基础面试题之变量相加和常量相加的区别
- java语言基础(9)——变量相加和常量相加的区别
- Go语言学习二:Go基础(变量、常量、数值类型、字符串、错误类型)
- 黑马程序员——Java语言基础(一)---关键字、标识符、注释、常量、变量、运算符
- 黑马程序员----Java语言基础1(关键字、标识符、注释、常量和变量、运算符)
- java编程基础2(java语言组成部分、常量和变量、比较运算符、)
- 黑马程序员——java语言基础常量、变量、运算符
- Java语言基础(关键字、标识符、注释、常量与变量、进制、数据类型、类型转换、代码示例)
- 黑马程序员——Java语言基础:常量、变量、运算符
- Java语言基础(关键字、标识符、注释、常量、变量、运算符)
- 黑马程序员——Java语言基础(一)---关键字、标识符、注释、常量、变量、运算符
- [Java入门笔记] Java语言基础(二):常量、变量与数据类型
- 黑马程序员——Java语言基础——关键字、表示符、常量、变量及数据的类型、运算符
- 黑马程序员--02.Java语言基础--01.【关键字】【标示符】【常量】【变量】【运算符】
- java语言基础——4常量与变量
- Java语言基础组成——关键字,标识符,注释,常量和变量,运算符
- Java语言基础组成之:关键字、标识符、注释、常量和变量、运算符
- 黑马程序员—【Java基础篇】之语言基础———关键字、标识符、注释、常量和变量及运算符
- 黑马程序员_JAVA语言基础组成_常量、变量
- Go语言基础:变量,常量,Boolean,字符串,iota枚举