Java中字符串字面量是否自动生成一个String对象?
来源:互联网 发布:mysql存储小说内容 编辑:程序博客网 时间:2024/06/06 12:34
在开发过程中,经常会需要直接写出一个字符串变量,也就是双引号包括的字符数据,这样一种字面量写法的字符串,是否已经创建了一个String对象呢?如果没有,那么数据存放在哪里呢?如果有,并没有new语句啊,是怎么创建的呢?
看下面代码:
String str1=“abc”;//创建abc字符串对象
String atr2=new String("abc");//用new语句,创建abc字符串对象
以上代码中,用俩种方式创建了字符串变量str1和str2,它们有什么区别呢?其实,Java虚拟机(JVM)在执行这段代码的时候,遇到双引号操作符,它会自动创建一个String对象。该String对象所代表的就是abc,然后再返回该对象的一个引用。
对于str1字符串来说,它的创建过程同上所说。在创建该对象之前,JVM会在String对象池中去搜索该字符对象是否已经被创建,如果已经被创建,则直接返回一个引用,否则先创建在返回引用。
而str2字符串变量,它的创建过程就要多一个步骤。除了类似于str1字符串对象创建过程以外,它还会额外的创建一个新的String对象,也就是new关键字的作用,并且返回一个引用给str2.
尽管str1和str2的值是相同的,但是他们的引用是不同的,也就是说一下代码的返回值为false。
str1=str2;//结果为false
0 0
- Java中字符串字面量是否自动生成一个String对象?
- java字符串字面量是否生成String对象
- JavaScript中对象字面量
- javascript中对象字面量与数组字面量
- javascript中对象字面量的理解
- javascript中对象字面量的理解
- 字符串字面量
- 字符串字面量
- 1. 字符串字面量
- 原始字符串字面量
- 字符串字面量
- 有关java中字面量的问题
- javascript对象字面量
- json对象字面量
- JavaScript对象字面量
- JS字面量对象
- js对象字面量
- JavaScript对象字面量
- 二维数组中的查找
- 第七章:复用类(继承和组合)向上转型Override代理、构造器和清理
- 测试
- linux复制指定目录下的全部文件到另一个目录中
- Machine Learning学习笔记(1)
- Java中字符串字面量是否自动生成一个String对象?
- C语言 字符串
- 起点
- POJ-1222 EXTENDED LIGHTS OUT【暴力枚举】
- POJ 3783 Balls(dp)
- 【疯狂Java】Java基础2
- JAVA基础再回首(十二)——Character类、Math类、Random类、System类
- Android 开源项目DiskLruCache解析使用
- 01背包 hdu 2564(饭卡)