Java - 一切都是對象

1 用引用操作對象

在 Java 語言中我們知道一切都是對象,但操作的標(biāo)識符其實(shí)是一個“引用”,一個引用并不一定需要和一個對象關(guān)聯(lián)。

String str ;

這時 str 就是一個引用而不是一個對象。當(dāng)我們對一個為初始化的引用進(jìn)行操作時便會遇到運(yùn)行時異常。

2 對象的創(chuàng)建

???? 存儲到什么地方

當(dāng)程序運(yùn)行時,對象所存放的位置:

  • 寄存器:這是最快的存儲區(qū),它位于處理器內(nèi)部,但是存儲器的數(shù)量是極其有限的,所以存儲器是按需分配,我們不可以進(jìn)行操作。
  • 堆棧:僅次于寄存器,位于通用 RAM(隨機(jī)訪問存儲器),通過堆棧指針可以從存儲器中分配/釋放內(nèi)存,java 系統(tǒng)必須知道存儲在堆棧內(nèi)所有項(xiàng)的確切的生命周期,以便于上下移動指針,這一約束限制了程序的靈活性,所以對象一般不會被存儲著堆棧中,堆棧一般存儲對象的引用。
  • 堆:一種通用的內(nèi)存池(位于RAM),用于存放 java 對象,在堆中分配有很大的靈活性,因?yàn)椴恍枰来鎯υ诙阎械臄?shù)據(jù)的生命周期,但分配/清理可以消耗的時間要長于堆棧。
  • 常量存儲:常量值通常被存儲在程序代碼內(nèi)部,因?yàn)槠溆肋h(yuǎn)都不會被改變。
  • 非 RAM 存儲

???? 基本類型

基本類型 默認(rèn)值 大小
boolean false -
char null 16b
byte (byte)0 8b
short (short)0 16b
int 0 32b
long 0L 64b
float 0f 32b
double 0.0d 64b
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 盡管以C++為基礎(chǔ),但是Java是一種更加純粹的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。 1.1用引用(句柄)操縱對象 盡管將一切...
    JuSong閱讀 287評論 0 1
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時芥藍(lán)閱讀 42,372評論 11 349
  • 前言 不知道大家有沒有這樣一種感覺,程序員的數(shù)量井噴了。可能是因?yàn)榛ヂ?lián)網(wǎng)火了,也可能是各家培訓(xùn)機(jī)構(gòu)為我們拉來了大量...
    活這么大就沒飽過閱讀 2,748評論 6 25
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,767評論 18 399
  • 在函數(shù)中定義的一些基本類型的變量和對象的引用變量都在函數(shù)的棧內(nèi)存中分配。 當(dāng)在一段代碼塊定義一個變量時,Java就...
    木有魚丸啦閱讀 566評論 0 0