1. java 建立String對象
Java運行環境有一個字元串池,由String類維護。執行語句String s="abc"時,首先查看字元串池中是否存在字元串"abc",如果存在則直接將"abc"賦給s,如果不存在則先在字元串池中新建一個字元串
"abc",然後再將其賦給s。
執行語句String s=new String("abc")時,不管字元串池中是否存在字
符串"abc",直接新建一個字元串"abc"(注意:新建的字元串"abc"不是在字元串池中),然後將其付給s。
前一語句的效率高,後一語句的效率低,因為新建字元串佔用內存空間。
2. Java中的String類
Java運行環境有一個類似字元串池的東東。
1.
執行語句String
str="str"時,首先查看字元串池中是否存在字元串"abc",如果存在則直接將"abc"的引用給str,如果不存在則先在字元串池中新建一個字元串"abc",然後再將其引用給給str。
2.
執行語句String
str
=
new
String(
"str");
首先在String池內找,找到?不創建String對象,否則創建,
這樣就一個String對象;然後遇到new運算符號,又在內存上創建String對象,並將其返回給str,又一個對象
所以總共是2個
例:
String
s1="str";
String
s2="str";
String
s3=new
String("str");
String
s4=new
String("str");
system.out.println(s1==s2);
//
true
system.out.println(s1==s3);
//
false
system.out.println(s3==s4);
//
false