java使用new物件和 的區別

2021-09-19 05:03:45 字數 385 閱讀 5711

前言:簡單說明一下new物件和=物件的區別

先說一下 :

string a = 'test';// 1

string b = new string("test"); 2

的區別吧

1這種方式jvm會先去共享的字串池中查詢,有沒有"test"這個詞,如果有直接返回它的引用;如果沒有,就會建立這個物件,再返回,。因此,「a」+「b"相當於存在3個物件,分別是"a」、「b」、「ab」。

而new string(「test」),則省去了查詢的過程,直接就建立乙個b的物件,並且返回引用

建立的物件也是如此,= 比較的是記憶體位址的位置,如果物件記憶體位址相等則 a=b 則成立,=是對記憶體位址的應用

new物件和clone 物件的區別

new 操作符的本意是分配記憶體。程式執行到 new 操作符時,首先去看 new 操作符後面的型別,因為知道了型別,才能知道要分配多大的記憶體空間。分配完記憶體之後,再呼叫建構函式,填充物件的各個域,這一步叫做物件的初始化,構造方法返回後,乙個物件建立完畢,可以把他的引用 位址 發布到外部,在外部就...

String直接賦值和new物件的區別

string直接賦值和new物件的區別 string s hello world string s new string hello world 首先string s hello world 是賦值語句,它會先在常量池查詢是否有這個值,如果有,就將這個位址賦值給s,如果沒有就在常量池開一塊空間給he...

C 用new和不用new建立類物件區別

起初剛學c 時,很不習慣用new,後來看老外的程式,發現幾乎都是使用new,想一想區別也不是太大,但是在大一點的專案設計中,有時候不使用new的確會帶來很多問題。當然這都是跟new的用法有關的。new建立類物件,使用完後需使用delete刪除,跟申請記憶體類似。所以,new有時候又不太適合,比如在頻...