Think in Java(Java編程思想)入門到放棄---Chapter2 萬物皆對(duì)象

一切都是對(duì)象

2.1引用操縱對(duì)象

在Java中萬物皆對(duì)象,通常我們是使用操縱標(biāo)識(shí)符(引用)來操作對(duì)象。類似于遙控器(引用)可以控制電視機(jī)(對(duì)象)猴娩,我們可以再隨時(shí)隨地通過遙控器去控制電視機(jī)墩朦,而不用每次直接去控制電視機(jī)。

此外绊谭,即使沒有電視機(jī)政恍,遙控器也可以獨(dú)立存在,不依附于電視機(jī)(對(duì)象)达传。

2.2必須由你創(chuàng)建所有對(duì)象

一旦創(chuàng)建了引用篙耗,我們便希望引用于對(duì)象能進(jìn)行關(guān)聯(lián)。通常是使用new方法實(shí)現(xiàn)

    String a = new String("abc");
2.2.1引用和對(duì)象如何存儲(chǔ)宪赶、內(nèi)存如何分配
存儲(chǔ)器名稱 位置 特點(diǎn) 說明
寄存器 處理器內(nèi)部 最快存儲(chǔ)器宗弯,用戶無法控制 暫存指令、數(shù)據(jù)和地址
堆棧 通用RAM(隨機(jī)訪問存儲(chǔ)器) 速度僅次于寄存器 暫存對(duì)象的引用搂妻。先進(jìn)后出蒙保,存儲(chǔ)可以通過堆棧指針分配新內(nèi)存(向上移動(dòng))、釋放內(nèi)存(向下移動(dòng))
通用RAM(隨機(jī)訪問存儲(chǔ)器) 通用的內(nèi)存池欲主,靈活性高 new代碼的時(shí)候會(huì)在堆里進(jìn)行存儲(chǔ)分配邓厕,同時(shí)會(huì)引起分配和回收比堆棧時(shí)間更長(zhǎng)
常量存儲(chǔ)器 程序代碼內(nèi)部 永遠(yuǎn)不會(huì)改變 可以被放在只讀存儲(chǔ)器中
非RAM存儲(chǔ) 以流的形式存在 可以持久化到磁盤上

2.2.2基本數(shù)據(jù)類型

基本類型 大小 最小值 最大值 包裝類
Boolean - - - Boolean
byte 16 bit Unicode 0 Unicode2的16次方-1 Byte
char 8 bits -128 127 Char
short 16 bits - 2的15次方 2的15次方-1 Short
int 32 bits -2的31次方 2的31次方-1 Integer
long 64 bits -2的63次方 2的63次方-1 Long
float 32 bits IEEE754 IEEE754 float
double 64 bits IEEE754 IEEE754 Double

高精度數(shù)字類型

  • BigInteger 支持任意精度的整數(shù)逝嚎。準(zhǔn)確的表示任何大小的整數(shù)值。
  • BigDecimal 支持任意精度的數(shù)字详恼,包含小數(shù)點(diǎn)补君。

2.2.3Java中的數(shù)組

Java確保數(shù)組的初始化,而且不能再他的范圍外被訪問昧互。范圍檢查會(huì)增加少量數(shù)組的內(nèi)存并且運(yùn)行時(shí)會(huì)檢查數(shù)組的下標(biāo)挽铁。

數(shù)組初始化時(shí)會(huì)創(chuàng)建引用數(shù)組,引用數(shù)組下的引用都會(huì)有一個(gè)默認(rèn)值null硅堆。當(dāng)JVM獲取到null屿储,就知道這個(gè)引用還未連接對(duì)象,在使用任何連接前渐逃,都必須為引用指定一個(gè)對(duì)象够掠。因此在使用為null值的引用時(shí)會(huì)引起程序報(bào)錯(cuò)。

2.3永遠(yuǎn)不要銷毀對(duì)象

2.3.1作用域

作用域決定了其內(nèi)部定義變量的可見性和生命周期茄菊。

2.3.2對(duì)象的作用域

Java對(duì)象不具備和基本類型一樣的生命周期疯潭,new創(chuàng)建數(shù)據(jù)作用域結(jié)束引用會(huì)結(jié)束,但是對(duì)象不隨作用域結(jié)束

{
    String s = new String("abc");
}

引用s在作用域結(jié)束而結(jié)束面殖,但是s指向的String對(duì)象依然存在于內(nèi)存空間(堆)中竖哩。Java通過垃圾回收器,監(jiān)聽new創(chuàng)建對(duì)象脊僚,并辨別出不會(huì)在被引用對(duì)象相叁,隨后釋放對(duì)象的內(nèi)存空間,以供其他對(duì)象使用辽幌。

2.4創(chuàng)建新的數(shù)據(jù)類型:類

java通過class來標(biāo)識(shí)類

2.4.1字段和方法

在類中可以設(shè)置兩種類型元素:

  • 字段:數(shù)據(jù)對(duì)象增淹。可以是數(shù)據(jù)類型對(duì)象乌企、基本類型
  • 方法:成員函數(shù)

2.5方法虑润、參數(shù)和返回值

方法的基本組成為:名稱、參數(shù)加酵、返回值拳喻、方法體

    ReturnType methodName(/*Argument List*/){
        /* Method body*/
    }

2.6構(gòu)建一個(gè)Java程序

2.6.1名字可見性

通過反轉(zhuǎn)域名來解決名稱沖突的問題例如:mindView.net
可以用過 net.mindview 來創(chuàng)建目錄存放該項(xiàng)目相關(guān)文件

2.6.2運(yùn)用其他構(gòu)件

通過import解決同名的類引用問題,通過import可以明確告知編譯器當(dāng)前類需要引用的類是哪一個(gè)猪腕。

2.6.3static關(guān)鍵字

為了滿足:

  • 能夠滿足為特定域分配單一存儲(chǔ)空間冗澈,而不用考慮需要?jiǎng)?chuàng)建多少對(duì)象
  • 獨(dú)立于類的方法,不受類的生命周期影響码撰。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末渗柿,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌朵栖,老刑警劉巖颊亮,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異陨溅,居然都是意外死亡终惑,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門门扇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雹有,“玉大人,你說我怎么就攤上這事臼寄“赞龋” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵吉拳,是天一觀的道長(zhǎng)质帅。 經(jīng)常有香客問我,道長(zhǎng)留攒,這世上最難降的妖魔是什么煤惩? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮炼邀,結(jié)果婚禮上魄揉,老公的妹妹穿的比我還像新娘。我一直安慰自己拭宁,他們只是感情好洛退,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著杰标,像睡著了一般不狮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上在旱,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音推掸,去河邊找鬼桶蝎。 笑死,一個(gè)胖子當(dāng)著我的面吹牛谅畅,可吹牛的內(nèi)容都是我干的登渣。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼毡泻,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼胜茧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤呻顽,失蹤者是張志新(化名)和其女友劉穎雹顺,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體廊遍,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡嬉愧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了喉前。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片没酣。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖卵迂,靈堂內(nèi)的尸體忽然破棺而出裕便,到底是詐尸還是另有隱情,我是刑警寧澤见咒,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布偿衰,位于F島的核電站,受9級(jí)特大地震影響论颅,放射性物質(zhì)發(fā)生泄漏哎垦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一恃疯、第九天 我趴在偏房一處隱蔽的房頂上張望漏设。 院中可真熱鬧,春花似錦今妄、人聲如沸郑口。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽犬性。三九已至,卻和暖如春腾仅,著一層夾襖步出監(jiān)牢的瞬間乒裆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工推励, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留鹤耍,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓验辞,卻偏偏與公主長(zhǎng)得像稿黄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子跌造,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,094評(píng)論 1 32
  • 第一章 對(duì)象導(dǎo)論 對(duì)象具有狀態(tài)杆怕、行為和標(biāo)識(shí)。這意味著每一個(gè)對(duì)象都可以擁有內(nèi)部數(shù)據(jù)和方法,并且每一個(gè)對(duì)象都可以唯一地...
    niaoge2016閱讀 819評(píng)論 0 0
  • 深入理解Class對(duì)象 RRTI的概念以及Class對(duì)象作用 認(rèn)識(shí)Class對(duì)象之前陵珍,先來了解一個(gè)概念寝杖,RTTI(...
    架構(gòu)師springboot閱讀 1,557評(píng)論 0 3
  • 一、運(yùn)行時(shí)數(shù)據(jù)區(qū)域 Java虛擬機(jī)管理的內(nèi)存包括幾個(gè)運(yùn)行時(shí)數(shù)據(jù)內(nèi)存:方法區(qū)撑教、虛擬機(jī)棧朝墩、本地方法棧、堆伟姐、程序計(jì)數(shù)器收苏,...
    加油小杜閱讀 1,515評(píng)論 1 15
  • 整理來自互聯(lián)網(wǎng) 1,JDK:Java Development Kit愤兵,java的開發(fā)和運(yùn)行環(huán)境鹿霸,java的開發(fā)工具...
    Ncompass閱讀 1,537評(píng)論 0 6