JAVA中string的赋值_Java中关于String赋值的两种形式

说明:

String在java中是使用频率很高的一个类,之前使用的时候并没有过多的在意,只知道有两种赋值方式,一种是采用字面值方式(String string1 = “string”;),一种是使用new关键字(String string2 = new String(“string”);)。如果使用string1==string2比较的话,你会发现结果为false,说明两者的地址并不一致,虽然我知道两个String比较的话为了避免出错要用string1.equals(string2),但是不知道为什么这么约定,直到今天才渐渐明白……

正是由于String是比较常用的类,不管是用户输入的字符串还是一些文本信息,都要使用String类。java为了提高效率,便于高效的管理这些String对象,设计了String池(String pool)用于存放String对象,下面我们来分析一下两种创建String对象的机制。

第一种方式:

String string1 = “string”;,这种采用字面值创建String对象的方法,首先检查 String Pool 中是否存在“string”这个对象:

1、如果存在,则不创建任何对象,直接将 String Pool 中的这个 string 对象的地址返回来,赋值给 string1 这个引用,这样 string1 就指向 String Pool 中的 “string” 这个对象;

2、如果 String Pool 中不存在 “string”这个对象,那么就先在 String Pool 中创建一个 “string” 对象,然后将 String Poo

你可能感兴趣的:(JAVA中string的赋值)