String s="a"+"b"+"c"究竟在内存创建了几个对象
来源:互联网 发布:淘宝拍照单反相机 知乎 编辑:程序博客网 时间:2024/05/22 19:53
知识点:编译器对字符串常量表达式进行优化
1.
String s1 = "abc";
String s2 = "a" + "b" + "c";
String s3 = "a" + "b" + "c" + ""; //这种我没试,应该也和前面两个一样的,你可以试试
String s4 = "a" + "b" + 'c';
前三种是一样的,因为编译器会对之后二种进行字符串常量表达式进行优化,变成第一种来操作:先查常量池,有就引用,没有就在常量池种创建再引用
第四种'c'是char类型,不是字符串常量,不能优化,这时用的是StringBuilder来append
2.
String s1 = "a";
String s2 = s1 + "b" + "c";
这种情况因为S1也是个字符串常量所以也会被优化成"abc"来处理
3.
String s1 = new String("a");
String s2 = s1 + "b" +"c";
这里S1是一个变量,因为它可以不是常量而是任何字符串,可能不在常量池中,所以不进行优化而是是用StringBuilder来append
1.
String s1 = "abc";
String s2 = "a" + "b" + "c";
String s3 = "a" + "b" + "c" + ""; //这种我没试,应该也和前面两个一样的,你可以试试
String s4 = "a" + "b" + 'c';
前三种是一样的,因为编译器会对之后二种进行字符串常量表达式进行优化,变成第一种来操作:先查常量池,有就引用,没有就在常量池种创建再引用
第四种'c'是char类型,不是字符串常量,不能优化,这时用的是StringBuilder来append
2.
String s1 = "a";
String s2 = s1 + "b" + "c";
这种情况因为S1也是个字符串常量所以也会被优化成"abc"来处理
3.
String s1 = new String("a");
String s2 = s1 + "b" +"c";
这里S1是一个变量,因为它可以不是常量而是任何字符串,可能不在常量池中,所以不进行优化而是是用StringBuilder来append
0 0
- String s="a"+"b"+"c"究竟在内存创建了几个对象
- String s = a+b+c+d+e;创建了几个对象的详细分析?
- String s="a"+"b"+"c"+"d";一共创建了几个对象
- String s = a+b+c+d+e;创建了几个对象的详细分析?
- 黑马程序员,黑马论坛-----String s="a"+"b"+"c"+"d"创建了几个对象
- String s = a+b+c+d+e;创建了几个对象的详细分析?
- String s = a+b+c+d+e;创建了几个对象的详细分析?
- String s = a+b+c+d+e;创建了几个对象的详细分析?
- String s = "a" +"b" + "c" + "d";这条语句创建了几个对象?
- String s = a+b+c+d+e;创建了几个对象的详细分析?
- IBM Java面试题,String s = "a" + "b" + "c" + "d" + "e"; 问此语句共创建了几个对象
- String s=new String("xyz")及String s="a"+"b"+"c"+"d";创建几个String对象的问题
- Java中String s = new String("123")究竟创建了几个对象
- String str = "a"+"b"+"c"+"d";一共创建了几个对象?
- 共创建了多少个对象:String s="a"+"b"+"c"+"d";
- String s = "a"+"b"+"c"+"d"共创建了多少个对象?
- 这条语句一共创建了多少个对象 String s = "a"+"b"+"c"+"d";
- String a=new String("a") 创建了几个对象
- iOS 深拷贝和浅拷贝
- 【FAQ】如何查看 git tag 的提交时间?
- Asp.net网站中 通过FileUpload 后台处理程序上传文件
- IOS之NSFileManager 和NSFileHandle
- Java volatile transient关键字
- String s="a"+"b"+"c"究竟在内存创建了几个对象
- python zipfile模块测试
- c#自定义简单web服务器
- HTML常用标签
- Linux笔记(12)——快捷键与命令的别名
- Spring中的applicationContext.xml与SpringMVC的xxx-servlet.xml的区别
- 多线程GCD(二)
- shell script中奇怪的符号之${0##*/}
- 1031. Hello World for U (20)