
這周我開始了JAVA的學習。說實話剛開始的時候我心里還挺沒底的畢竟 Java 這玩意兒聽起來就挺高大上什么虛擬機、垃圾回收、面向對象一堆名詞砸過來感覺像是要學一門天書。不過因為之前學過 C 語言所以上手的時候其實沒那么慌——像變量、數(shù)據(jù)類型、運算符這些概念在 C 里都見過只是換了個寫法而已。而且說實話C 語言當年也沒少折磨我什么數(shù)組、內存管理那叫一個頭大現(xiàn)在回頭看那些痛苦反而成了學 Java 的底氣。不過 Java 畢竟是面向對象的語言很多細節(jié)和 C 還是不太一樣比如類型轉換的規(guī)則、字符串的拼接方式還有底層那些原碼反碼補碼的運算都得重新捋一遍。有時候寫著寫著也會卡殼查半天資料才發(fā)現(xiàn)原來是個小細節(jié)沒注意到那種感覺真是“酸爽”。下面這份筆記就是我最近整理出來的 Java 基礎核心知識從字面量、變量到原碼反碼補碼再到運算符和 Scanner 錄入希望能幫到和我一樣正在入門路上的小伙伴。大家一起加油慢慢來總會啃下來的一、基礎語法字面量與變量這一節(jié)算是 Java 里最基礎的東西了說白了就是先搞清楚“數(shù)據(jù)長什么樣、怎么存起來”。1. 字面量Literals字面量這個詞聽起來挺唬人其實說白了就是程序里直接寫出來的那些數(shù)據(jù)值比如你寫個 18寫個 中國這些都是字面量。不同類型的字面量寫法上還有點講究咱們看下面這張表就清楚了字面量類型說明舉例整數(shù)類型直接寫18, -88小數(shù)類型直接寫加上小數(shù)點1.93, -5.21字符串類型用雙引號引起來中國字符類型用單引號引起來內容只能有一個男, A, 0布爾類型表示真假true, false空類型一個特殊的值空值null這里有個小坑得提醒一下字符串和字符看著像其實完全不是一回事。字符串用雙引號里面可以裝一長串字符用單引號里面只能放一個多一個都不行寫錯了編譯器直接給你報錯別問我怎么知道的。2. 變量Variables變量這東西你可以把它想象成一個帶名字的小盒子里面可以放數(shù)據(jù)。為啥要有變量因為很多時候數(shù)據(jù)是會變的你總不能每次都重新寫一遍吧那多麻煩。定義格式數(shù)據(jù)類型 變量名 數(shù)據(jù)值;使用場景當某個數(shù)據(jù)經(jīng)常發(fā)生改變時將其定義為變量。注意事項變量中只能存一個值變量名不能重復。變量使用前一定要賦值初始化。一條語句可以定義多個變量如 int a 1, b 2;。注意變量名別亂起最好起個能看懂的名字不然過兩天你自己回頭看代碼都得猜半天這變量是干嘛的。二、數(shù)據(jù)類型與標識符1. 計算機存儲規(guī)則在計算機中任意數(shù)據(jù)都是以二進制的形式來存儲的。字節(jié)Byte是計算機最小的存儲單元1個字節(jié) 8個bit位bits。在 Java 中int 類型占 4個字節(jié) / 32個bit位。2. 基本數(shù)據(jù)類型四類八種整數(shù)byte1字節(jié)short2字節(jié)int4字節(jié)long8字節(jié)小數(shù)float4字節(jié)double8字節(jié)字符char2字節(jié)布爾boolean1字節(jié)取值范圍大小關系double float long int short byte后綴說明定義 long 類型需加 L 后綴定義 float 類型需加 F 后綴。3. 標識符標識符就是代碼中所有我們自己起名的名字如類名、變量名。硬性要求由數(shù)字、字母、下劃線 _、美元符 $ 組成不能以數(shù)字開頭不能是 Java 關鍵字。三、計算機底層數(shù)據(jù)表示原碼、反碼與補碼在 Java及現(xiàn)代計算機中整數(shù)的運算在底層都是以補碼的形式進行的。理解這三者是理解計算機處理負數(shù)運算的關鍵。1. 原碼最直觀的二進制形式。最高位是符號位0正1負。弊端負數(shù)計算時結果會出錯運算方向與正確方向相反。2. 反碼為了解決原碼不能計算負數(shù)的問題。正數(shù)反碼不變負數(shù)反碼在原碼基礎上符號位不變數(shù)值位取反0變11變0。弊端負數(shù)運算時如果結果跨越了 0結果會與實際不符。3. 補碼徹底解決跨 0 運算出錯的問題。計算機底層存儲和運算統(tǒng)一使用補碼。正數(shù)補碼與原碼相同負數(shù)補碼 反碼 1。四、運算符與類型轉換1. 類型轉換隱式轉換小 - 大不同類型數(shù)據(jù)計算時Java 自動轉換。如有 byte/short 先提升為 int再將取值范圍小的提升為大的。強制轉換大 - 小需要顯式寫代碼弊端有可能導致精度丟失。2. 字符與字符串運算ASCII 碼字符參與算術運算時會先根據(jù) ASCII 碼表轉化為對應的整數(shù)如 A 是 65a 是 97。字符串運算字符串只有 操作。任意數(shù)據(jù) 字符串都是拼接操作并產(chǎn)生一個新的字符串。例如10 8 歲 1 2 的結果是 18歲12。3. 常見運算符算術運算符, -, *, /, %取余。賦值運算符, , - 等。三元運算符關系表達式 ? 表達式1 : 表達式2;。表達式成立執(zhí)行1不成立執(zhí)行2。優(yōu)先級括號 () 最高其次是 !、正負號再次是 * / %然后是加減最后是關系、邏輯運算符等。五、鍵盤錄入Scanner使用 Scanner 類可以接收鍵盤輸入的數(shù)據(jù)import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner sc new Scanner(System.in); // 1. 創(chuàng)建對象 // 2. 接收數(shù)據(jù) // int num sc.nextInt(); // 接收整數(shù) // double d sc.nextDouble(); // 接收小數(shù) String str sc.next(); // 接收字符串 } }*下周學習目標邏輯與結構從下周開始我將告別單一的語法零件開始學習如何讓程序思考和動起來。目標一流程控制語句掌握 if、switch 判斷語句和 for、while 循環(huán)語句。學會使用 break 和 continue 控制流程。目標二數(shù)組掌握數(shù)組的初始化、遍歷和常見操作。理解數(shù)組的內存原理學會處理越界、空指針等異常。目標三方法理解方法的作用掌握方法的定義與調用。掌握帶參數(shù)、帶返回值的方法。學習注意下周內容邏輯性強多畫流程圖多敲代碼。遇到報錯不要慌學會看控制臺的報錯信息。祝大家學習順利