java中對象和引用的理解

來源:互聯網
上載者:User

最近利用下班的時候看了看的think in java感覺再看 和第一次看大不一樣

接下來說一下java中對象和引用的關係

1、java中一切都是對象

 在java中是什麼來操作者對象呢?答案是引用,這就好比C或者C++中的指標。

如果用擁有一個引用,那麼此時你必須讓其和一個對象關聯在一起,否則這個引用並不會像你想象的那樣任由你的控制,例如你建立了一個String的引用:

String  s ;

而此時並未與任何對象關聯,如果此時你去做一些操作,如調用String的一些方法,肯定是會出現問題,(一些基本類型除外,因為你在定義的時候,它們就會賦予初始值的),所以在使用錢必須和對象進行關聯:

String s = new String();或者 String s = “my name is ajun”;

像這樣就可以了。

2、怎麼和對象進行關聯

在java中通常會通過new來建立一個對象,來和引用進行關聯,如:

String s = new String("my name is ajun");

這樣不僅建立了一個對象和引用s進行關聯,同事也進行初始化,同時我們也可以建立屬於自己的物件類型。

3、儲存位置

①堆棧:一般儲存引用和基本類型變數,堆棧主要是通過堆棧指標上下移動來對記憶體進行分配和釋放。

基本類型變數並不適應於new進行建立,因為其所佔的記憶體較小。

②堆:用於儲存java對象,當程式執行new的時候,堆就會分配一個空間給這個對象,記住堆進行記憶體的分配和釋放是比堆棧進行儲存和釋放記憶體消耗更多的時間,這就是基本類型變數要存在堆棧中了,因為基本類型變數是用的最頻繁的,頻繁的儲存和釋放記憶體,在消耗更多的時候,效能可想而知的。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.