String对象的创建
来源:互联网 发布:沪深300指数月度数据 编辑:程序博客网 时间:2024/05/29 15:09
1.字面量创建
String str = "123";
创建了一个对象。
String s1 = "123";String s2 = "123";String s3 = "12" + "3";
总共创建了一个对象。字面量创建会先在字符串池中查看是否有通过String equals("123")方法返回true的对象,即值为"123"的对象。如果有则不会创建新的对象。
s1因为第一次创建,在字符串池中没有匹配的对象,故创建一个对象,然后s1变量引用指向该对象;s2因为字符串池中已有“123”对象,故而不创建对象,只是s2引用指向已创建的“123”对象;s3因为都是字面量,所以在编译期会优化,相当于"123",故而不创建新对象。
2.new 创建
String str = new String("123");
总共创建了两个对象。new创建符会强制在堆中创建一个新的对象,同时“123”会在字符串池中创建一个对象。故而创建了两个对象。
3.例子
String s2 = new String("123") + new String("123");
以上代码创建了4个对象。首先在字符串池中创建了值为“123”的对象,然后两个new String在堆中创建了两个新的对象,接着因为String为不变对象,所以两个new出来的String对象连接要创建一个新的对象实现String对象连接。故创建了4个对象。
0 0
- String对象的创建
- String对象的创建
- String对象的创建
- String对象的创建
- 创建String对象的问题
- 探讨String对象的创建
- 测试String对象的创建
- String对象的创建个数
- JAVA String对象的创建
- String创建对象的研究
- String 创建对象的问题
- 关于string创建几个对象的问题
- 关于String创建对象的问题
- JAVA创建String对象的问题
- 真的创建了两个String对象?
- 创建string对象过程的内存分配
- String创建几个对象的问题
- java创建String对象的问题
- java 环形数组缓冲区
- LeetCode-Reverse Integer
- Context——Context详解
- VS 2013中添加zlib源文件实现压缩与解压的工程配置过程
- Centos7 安装pyenv及相关包
- String对象的创建
- bzoj 3754 Tree之最小方差树
- ARM寄存器介绍
- Python每天一题 0000
- PAT B1016: 部分A+B
- Terracotta Java分布式任务调度平台 - Quartz
- codeforces 675D Tree Construction (map)
- Linux 历史上 25 个里程碑事件回顾
- Mongodb连接java