💡涉及的知識點速通
- 🛫 關于輸入輸出你都知道啥?
- 🛫 關于控制路程都需要注意啥?
- 🛫 關于數組的問題你能答對幾道?
- 🪂 數組初始化的小細節你都知道嗎?
- 🪂 這些Arrays的常見API你都掌握了嗎?
- 🛫 類?對象?他們的關系又是什么?
- 🛫 類與類之間的關系都有什么?
??各位小伙伴們大家好,歡迎來到這個小扎扎的《Java核心技術 卷Ⅰ》筆記專欄,在這個系列專欄中我將記錄淺學這本書所得收獲,鑒于 看到就是學到、學到就是賺到 精神,這波簡直就是血賺
🛫 關于輸入輸出你都知道啥?
輸入
??若是想要通過控制臺進行輸入操作的話,首先需要創建一個標準輸入流對象,然后才能使用相應的方法進行鍵入值的讀取,根據方法的不同讀取的數據類型也不一樣。使用new方法實例化scanner對象的時候,參數System.in是調用System類的靜態常量in,這個靜態常量的類型就是一個InputStream??使用scanner鍵入值需要注意:next方法獲取單個單詞的時候如果有不止一個單詞的話,下一次執行讀取方法的時候會繼續讀取,直到單詞全都讀取完成。讀取數值的時候如果鍵入的類型不對的話會拋出異常,如果讀取浮點數但是鍵入一個整數的話會自動轉換
輸出
??文件的輸出很簡單,直接使用System類的靜態常量out(PrintStream類型)調用打印方法即可。但是除了普通的輸出之外,簡單的格式化輸出也需要掌握,比如格式化輸出的兩種方式,out的printf方法和String的format方法
🛫 關于控制路程都需要注意啥?
??在學習控制流程之前,我們需要了解一下塊的概念。塊就是將若干條Java語句使用一對大括號括起來,又叫復合語句。需要注意的是:塊確定了變量的作用范圍,塊之間可以嵌套,而且嵌套的幾個塊中不能聲明同名的變量while循環和do-while循環的區別
??while循環執行循環體之前就判斷是否應該執行循環體,而do-while循環在執行循環體之后才進行判斷,所以說while的循環體可能一次都不執行,但是do-while至少執行一次
for循環
??關于for循環相信大家都已將不陌生了,接下來說的就是一些大家可能忽略的點。for循環內部定義變量的作用范圍只在for循環里,當循環結束時變量也就失去了作用。循環條件盡量不要使浮點數,否則的話由于舍入誤差的存在極有可能永遠無法達到精確地最終值,也就是說會陷入死循環switch語句
??switch語句中有很多需要大家注意的點。首先,switch語句中的case標簽值不能重復。其次,choice選項和case標簽的類型只能是char、byte、short、int的常量表達式或者包裝類,枚舉常量(標簽中不用指定枚舉名,可從choice選項推知),String字符串,切記choice選項不可以是一個條件判斷語句
??最后,如果沒有break;語句的話會觸發多個case分支又被稱為是switch的穿透性,也就是說如果case分支語句沒有break語句的話,會從與choice相匹配的那個case分支開始,執行之后所有的case分支語句,直至遇到break語句或者執行完整個switch語句。但是switch的穿透性也并不一定就是壞事,我們可以利用其穿透性完成一些代碼的簡化??流程中斷語句break: 結束當前所在循環、條件語句或者switch所在分支的執行。continue: 結束本次循環,繼續下一次循環(只能在循環語句中使用)
🛫 關于數組的問題你能答對幾道?
🪂 數組初始化的小細節你都知道嗎?
一維數組的初始化
??數組就是用來存儲相同類型的一個序列,所以在聲明的時候需要使用數據類型對元素類型進行規范,而且一旦數組創建之后就固定了元素的類型與個數,一旦超出數組的長度就會拋出ArrayIndexOutOfBoundsException異常??以上四種初始化方式,第二種不能指定數組長度否則會報錯;第三種不能直接將一個大括號中的所有元素賦值給一個已經聲明過的數組變量,需要new之后再賦值;第四種聲明的的時候必須指定數組長度(可以為0),且聲明之后只能按照索引一個一個的進行初始化,未初始化之前使用數組類型對應的默認值
多維數組(以二維數組為例)
??由此可見,二維數組的初始化方式與一維數組基本一致,其實就是一維數組存儲一維數組,一般都是借助行和列的概念理解數組的兩個維度。使用第四種方式對二維數組進行初始化的時候,必須指定二維數組的行數(列數可以不指定)。還有一點就是[]的位置不固定,可以是int[ ] a[ ]、int a[ ][ ],但一般都用int [ ] [ ] a的形式
🪂 這些Arrays的常見API你都掌握了嗎?
🛫 類?對象?他們的關系又是什么?
??類是一種抽象概念是構造對象的模塊和藍圖,類是具有相同特性和行為的對象的抽象化。正如我們之前所知的,標準Java庫中提供了很多的類供我們使用,但要是想要實現自定義的功能,我們還是需要創建一些自己的類以便描述自己的應用程序業務。
??眾所周知,Java是一門面向對象程序設計語言(Object Oriented Programming OPP ),在Java中萬物都是對象,對象是一個具體的概念,擁有特定的行為和狀態,且對象的行為和狀態之間會產生相互影響。
??類是一種抽象化概念,對象是一種具體的概念。對象可以通過類的實例化方式構造出來,類是對一種具有相同特性和行為對象的抽象化體現
🛫 類與類之間的關系都有什么?
??依賴、關聯、聚合、組合的形式上來看都是一個類的對象使用到了另一個類的對象,他們之間的區別旨在語義之間的差別,具體場景使用到的關系不同,在目前的學習階段上無需把關系整的十分明白,只是在使用的時候加以理解即可。
??依賴 (uses-a):一個類的方法調用另一個類的對象、屬性或方法
??關聯:一個類的字段是另一個類的對象,關聯表示類之間的“持久”關系,這種關系一般表示一種重要的業務之間的關系,需要保存的,或者說需要“持久化”的,或者說需要保存到數據庫中的。另外,依賴表示類之間的是一種“臨時、短暫”關系,這種關系是不需要保存的.
??聚合(has-a):聚合是關聯關系的一種,形式上也是一個類的字段是另一個類的對象,但是它與關聯的區別在于關聯關系所涉及的兩個對象是處在同一個層次上的。比如人和自行車就是一種關聯關系,而不是聚合關系,因為人不是由自行車組成的。
??聚合關系涉及的兩個對象處于不平等的層次上,一個代表整體,一個代表部分。比如電腦和它的顯示器、鍵盤、主板以及內存就是聚集關系,
因為主板是電腦的組成部分。
??組合 (contains-a):組合也是關聯關系的一種,對象A包含對象B,對象B離開對象A沒有實際意義。是一種更強的關聯關系。
??繼承(is-a):繼承又稱為是泛化,extends一個類