【Java編程思想】讀書筆記

標(biāo)簽:【讀書筆記】


該讀書筆記的流程是:閱讀 > 勾劃知識(shí)點(diǎn) > 整理筆記

有時(shí)讀書真的是只是讀甘萧,沒過腦彩匕,所以整理筆記等于回看,把沒過腦的地方再過一遍堪伍,然后整理出筆記,記錄下知識(shí)點(diǎn)觅闽,加上自己的一些理解帝雇,加深印象

一、對(duì)象導(dǎo)論 【2018.1.14】

我們之所以將自然界分解蛉拙,組織成各種概念尸闸,并按其含義分類,主要是因?yàn)槲覀兪钦麄€(gè)口語交流社會(huì)共同遵守的協(xié)定的參與者,這個(gè)協(xié)定以語言的形式固定下來……除非贊成這個(gè)協(xié)定中規(guī)定的有關(guān)語言信息的組織和分類吮廉,否則我們根本無法交談睹栖。
—— Benjamin Lee Whorf (本杰明.沃爾夫,人類學(xué)家)

  • Java是一門面向?qū)ο蟮木幊陶Z言茧痕。面向?qū)ο蟪绦蛟O(shè)計(jì)(Object-oriented Programming野来,OOP)

  • 阿倫凱(Alan Kay)總結(jié)了面向?qū)ο笳Z言Smalltalk的五個(gè)特性,Smalltalk是Java所基于的語言之一

    • 萬物皆為對(duì)象
    • 程序是對(duì)象的集合踪旷,它們通過發(fā)送消息來告訴彼此所要做的
    • 每個(gè)對(duì)象都有自己的由其他對(duì)象所構(gòu)成的存儲(chǔ)
    • 每個(gè)對(duì)象都擁有其類型
    • 某一特定類型的所有對(duì)象都可以接收同樣的消息
      .
  • 對(duì)象具有狀態(tài)曼氛、行為和標(biāo)識(shí)

      分別對(duì)應(yīng) 內(nèi)部數(shù)據(jù)(成員變量)、方法令野、內(nèi)存中的引用地址
    
  • 類描述了具有相同特性(數(shù)據(jù)元素)和行為(功能)的對(duì)象集合舀患,實(shí)際是一種數(shù)據(jù)類型

  • 可以把對(duì)象理解為“服務(wù)提供者”

      程序是對(duì)象的集合,程序向用戶提供服務(wù)气破,其實(shí)就是調(diào)用一個(gè)個(gè)對(duì)象的提供的服務(wù)(方法)來實(shí)現(xiàn)
    
  • 新的類可以由任意數(shù)量聊浅、任意類型的其他對(duì)象,以任意可以實(shí)現(xiàn)新的類中想要的功能的方式所組成

      這種概念被稱為組合现使、聚合低匙,是一種 has-a (擁有) 關(guān)系
    
  • Java是單根繼承結(jié)構(gòu)

    • 保證所有對(duì)象都具備某些功能
    • 使垃圾回收實(shí)現(xiàn)變得容易
      .
  • 異常處理提供了一種從錯(cuò)誤狀況進(jìn)行可靠恢復(fù)的途徑

  • 并發(fā),就是同一時(shí)刻處理多個(gè)任務(wù)碳锈,隱患是:共享資源

  • 線程顽冶,是一種為單一處理器分配執(zhí)行時(shí)間的手段

  • 客戶/服務(wù)器系統(tǒng)的核心思想是:系統(tǒng)具有一個(gè)中央信息存儲(chǔ)池用來存儲(chǔ)數(shù)據(jù),她通常存在于數(shù)據(jù)庫中售碳,你可以按需要將它分發(fā)給某些人員或機(jī)器集群

本章內(nèi)容主要是帶領(lǐng)讀者先領(lǐng)略面向?qū)ο蟪绦蛟O(shè)計(jì)的全貌强重,講的是一些概念性的東西。現(xiàn)在有些明白為什么有些人說《Java編程思想》不太適合入門讀贸人,可能是因?yàn)榈谝徽碌脑虬杉渚埃瑳]有任何概念之前看這些,真的會(huì)有點(diǎn)暈

二艺智、一切都是對(duì)象 【2018.1.14】

如果我們說另一種不同的語言倘要,那么我們就會(huì)發(fā)覺一個(gè)有些不同的世界。
—— Luduing Wittgerstein (路德維狭撸·維特根斯坦碗誉,奧地利哲學(xué)家)

  • 盡管Java是基于C++的召嘶,但是相比之下父晶,Java是一種更“純粹”的面向?qū)ο蟪绦蛟O(shè)計(jì)語言

  • Java中通過引用操作對(duì)象

  • 我們通過 new 關(guān)鍵字來創(chuàng)建Java對(duì)象。不過弄跌,字符串可以用帶引號(hào)的文本初始化甲喝,這是Java的一個(gè)特性

      String s = new String("hello java");
      String ss = "hello java";
    
  • java中對(duì)象存儲(chǔ)位置

    • 寄存器

        處理器內(nèi)部,最快的存儲(chǔ)區(qū)铛只,但不能直接控制
      
    • 堆棧

        RAM隨機(jī)訪問存儲(chǔ)器中埠胖,對(duì)象引用都存放于其中糠溜。創(chuàng)建程序時(shí),Java系統(tǒng)必須知道存放在堆棧內(nèi)所有項(xiàng)的生命周期直撤,以便上下移動(dòng)堆棧指針非竿。向上移動(dòng),釋放內(nèi)存谋竖;向下移動(dòng)红柱,分配新內(nèi)存
      
    •   也位于RAM區(qū),用于存放Java對(duì)象蓖乘。堆不同于堆棧的好處是:編譯器不需要知道存儲(chǔ)的數(shù)據(jù)在堆里存活多長時(shí)間
      
    • 常量存儲(chǔ)

        直接放在程序代碼內(nèi)部锤悄,這樣是安全的,永遠(yuǎn)不會(huì)被改變
      
    • 非RAM存儲(chǔ)

        存儲(chǔ)于程序之外嘉抒,有流對(duì)象和持久化對(duì)象
      
  • 8種基本類型是不需要通過 new 創(chuàng)建的

基本類型 大小 包裝器類型
boolean - Boolean
char 2 byte Character
byte 1 byte Byte
short 2 byte Short
int 4 byte Integer
long 8 byte Long
float 4 byte Float
double 8 byte Double

boolean所占存儲(chǔ)空間沒有明確指定

換算關(guān)系
8 bit(位) = 1 byte(字節(jié))
1024 byte = 1 KB
1024 KB = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB
  • 成員變量會(huì)得到初始化有默認(rèn)值零聚,局部變量需要自己初始化,在使用前賦值

  • Java中的方法是通過對(duì)象調(diào)用些侍,但是static方法隶症,并不依賴于對(duì)象,它是針對(duì)類調(diào)用的

  • 程序包名岗宣,小寫反轉(zhuǎn)域名

  • static關(guān)鍵字

      1. 只想為某特定域(字段)分配單一存儲(chǔ)空間沿腰,而不用去考慮究竟創(chuàng)建多少對(duì)象,甚至不創(chuàng)建對(duì)象
      2. 希望某個(gè)方法不與包含它的類關(guān)聯(lián)
      static修飾的字段狈定、方法颂龙,不能直接訪問非static字段、方法纽什,因?yàn)榇肭叮莝tatic字段和方法必須先與對(duì)象關(guān)聯(lián)
    
  • 注釋

    • 單行注釋

        // 以雙斜杠開頭,這就是單行注釋
      
    • 多行注釋

        以 /* 開頭芦缰,以 */ 結(jié)束企巢,不過我們習(xí)慣每行前面都加上 *
        /*
         * 這是多行注釋
         */
      
    • 注釋文檔

        以 /** 開頭,以 */ 結(jié)束
        相關(guān)的有一套語法让蕾,可以為類浪规、字段、方法添加探孝。為private 和 默認(rèn)修飾的成員添加注釋文檔笋婿,會(huì)被忽略
      

本章主要介紹一些Java入門的小知識(shí),學(xué)完本章顿颅,在配置完jdk之后缸濒,我們已經(jīng)可以編寫出一個(gè)Hello Java程序了

三、操作符【2018.1.21】

在最底層,java的數(shù)據(jù)是通過使用操作符來操作的庇配。

  • 幾乎所有的操作符都只能操作“基本類型”斩跌。例外的操作符是“=”、“==”和“!=”捞慌,這幾個(gè)操作符能操作所有的對(duì)象耀鸦。另外,String類支持“+”和“+=”

  • java中“=”為賦值操作符啸澡,意思是“取右邊的值”揭糕,把它復(fù)制給左邊

  • “++”,“--”為自動(dòng)遞增锻霎、自動(dòng)遞減著角,又分為“前綴遞增”、“前綴遞減”和“后綴遞增”旋恼、“后綴遞減”吏口。前綴如++a,--a會(huì)先執(zhí)行運(yùn)算,再生成值冰更;后綴如a--,a++會(huì)先生成值产徊,再執(zhí)行運(yùn)算

  • 比較是否相等,基本類型使用“==”蜀细,對(duì)象使用equals()方法

  • “短路”現(xiàn)象舟铜,即一旦能夠明確無誤的確定整個(gè)表達(dá)式的值,就不再計(jì)算表達(dá)式余下部分奠衔。 “||”谆刨,短路或;“&&”短路與

  • 三元操作符 boolean-exp ? value0 : value1; 它與 if-else語句的不同之處是归斤,三元操作符一定會(huì)返回一個(gè)值

  • java允許我們把任何基本數(shù)據(jù)類型轉(zhuǎn)換成別的基本數(shù)據(jù)類型痊夭,但布爾型除外,后者根本不允許進(jìn)行任何類型的轉(zhuǎn)換處理

  • 窄化轉(zhuǎn)化脏里,就是將能容納更多信息的數(shù)據(jù)類型轉(zhuǎn)換成無法容納那么多信息的類型她我,可能會(huì)面臨信息丟失的危險(xiǎn),并且我們要顯示地進(jìn)行類型轉(zhuǎn)換迫横。

      就是向下轉(zhuǎn)型番舆,比如double轉(zhuǎn)換為int
    
  • 將float和double轉(zhuǎn)型為int時(shí),總是會(huì)對(duì)該數(shù)字執(zhí)行結(jié)尾矾踱。如果想得到四舍五入的結(jié)果恨狈,就需要使用java.lang.Math中的round()方法

      如 double a = 0.4;   int b = (int)a;     b == 0;
    
  • 通常,表達(dá)式中出現(xiàn)的最大的數(shù)據(jù)類型決定了表達(dá)式最終結(jié)果的數(shù)據(jù)類型介返。(自動(dòng)類型提升)

  • Java的運(yùn)算符拴事,分為四類:算數(shù)運(yùn)算符、關(guān)系運(yùn)算符圣蝎、邏輯運(yùn)算符刃宵、位運(yùn)算符。

      算數(shù)運(yùn)算符(9):+  -  *  /  %  ++  --
      
      關(guān)系運(yùn)算符(6):==  !=  >  >=  <  <=
      
      邏輯運(yùn)算符(6):&&  ||  !  ^  &  |
      
      位運(yùn)算符(7):&  |  ~  ^  >>  <<  >>>
    

本章主要是介紹java中的一些操作符徘公,都是些需要硬記的知識(shí)牲证,不過常用的也就算數(shù)運(yùn)算符和關(guān)系運(yùn)算符以及 && ||

四、控制執(zhí)行流程 【2018.1.21】

就像有知覺的生物一樣关面,程序必須在執(zhí)行過程中控制它的世界坦袍,并做出選擇。在Java中等太,你要使用執(zhí)行控制語句來做出選擇

  • java中流程控制涉及的關(guān)鍵字:if-else捂齐、while、do-while缩抡、for奠宜、return、break瞻想、switch

  • while和do-while的唯一區(qū)別是:do-while中的語句至少會(huì)執(zhí)行一次压真,即便表達(dá)式第一次計(jì)算為false

  • java里唯一用到逗號(hào)操作符的地方是for循環(huán)的控制表達(dá)式

      for(int i = 1,j = i + 10; i < 5; i++ ,j = i + 2){}
    
  • for語句中可以定義多個(gè)變量,但是它們必須具有相同的類型

  • return關(guān)鍵字的兩個(gè)作用蘑险,返回值和退出方法

  • break用于強(qiáng)行退出循環(huán)滴肿,不執(zhí)行循環(huán)中剩余的語句。continue則是停止當(dāng)前的迭代佃迄,然后退回循環(huán)起始泼差,開始下一次迭代

  • 標(biāo)簽,是后面跟有冒號(hào)的標(biāo)識(shí)符呵俏,像這樣 lable: 用于跳出多層循環(huán)

  • 帶有標(biāo)簽的break會(huì)中斷并跳出標(biāo)簽所指的循環(huán)拴驮;帶有標(biāo)簽的continue會(huì)停止當(dāng)前迭代,到達(dá)標(biāo)簽的位置柴信,并重新進(jìn)入緊接在那個(gè)標(biāo)簽后面的循環(huán)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末套啤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子随常,更是在濱河造成了極大的恐慌潜沦,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件绪氛,死亡現(xiàn)場離奇詭異唆鸡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)枣察,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門争占,熙熙樓的掌柜王于貴愁眉苦臉地迎上來燃逻,“玉大人,你說我怎么就攤上這事臂痕〔螅” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵握童,是天一觀的道長姆怪。 經(jīng)常有香客問我,道長澡绩,這世上最難降的妖魔是什么稽揭? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮肥卡,結(jié)果婚禮上溪掀,老公的妹妹穿的比我還像新娘。我一直安慰自己步鉴,他們只是感情好膨桥,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著唠叛,像睡著了一般只嚣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艺沼,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天册舞,我揣著相機(jī)與錄音,去河邊找鬼障般。 笑死调鲸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挽荡。 我是一名探鬼主播藐石,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼定拟!你這毒婦竟也來了于微?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤青自,失蹤者是張志新(化名)和其女友劉穎株依,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體延窜,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恋腕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了逆瑞。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片荠藤。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡伙单,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哈肖,到底是詐尸還是另有隱情吻育,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布牡彻,位于F島的核電站扫沼,受9級(jí)特大地震影響出爹,放射性物質(zhì)發(fā)生泄漏庄吼。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一严就、第九天 我趴在偏房一處隱蔽的房頂上張望总寻。 院中可真熱鬧,春花似錦梢为、人聲如沸渐行。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽祟印。三九已至,卻和暖如春粟害,著一層夾襖步出監(jiān)牢的瞬間蕴忆,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工悲幅, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留套鹅,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓汰具,卻偏偏與公主長得像卓鹿,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子留荔,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

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

  • 多態(tài) 任何域的訪問操作都將有編譯器解析吟孙,如果某個(gè)方法是靜態(tài)的,它的行為就不具有多態(tài)性 java默認(rèn)對(duì)象的銷毀順序與...
    yueyue_projects閱讀 942評(píng)論 0 1
  • 前言 看了這本書兩遍聚蝶,第一遍是很大略的看了一下拔疚,里面的代碼都沒怎么仔細(xì)研究,粗略的看既荚。而第二遍屬于比較細(xì)致的看了稚失,...
    任慫閱讀 2,645評(píng)論 0 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)恰聘,斷路器句各,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法吸占,類相關(guān)的語法,內(nèi)部類的語法凿宾,繼承相關(guān)的語法矾屯,異常的語法,線程的語...
    子非魚_t_閱讀 31,625評(píng)論 18 399
  • 就算你對(duì)我的情意避而遠(yuǎn)之初厚,我也會(huì)用綿 長的愛意跟在你身后件蚕,或許我的人生在遇 見你之后就只剩下追隨與陪伴了吧
    錢千歲閱讀 162評(píng)論 0 0