【JAVA零基礎入門系列】(已完結)導航目錄
- Day1 開發環境搭建
- Day2 Java內建開發環境IDEA
- Day3 Java基本資料類型
- Day4 變量與常量
- Day5 Java中的運算符
- Day6 Java字元串
- Day7 Java輸入與輸出
- Day8 Java的控制流程
- Day9 Java中的那個大數值
- Day10 Java中的數組
- Day11 Java中的類和對象
- Day12 Java類的簡單應用
- Day13 Java類的繼承與多态
- Day14 Java對象的克隆
- Day15 對象的比較
前兩篇已經将開發環境搭建完成,如果你已經按之前的教程按部就班的完成了部署,那麼世界上最優秀的程式設計語言之一和世界上最優秀的IDE之一已經出現在你的電腦上(此處應有掌聲),如果你還沒入門,或者正在台階上踱步,可能你還不能了解這個“最優秀”的含義,沒有關系,這頓美味需要我們來細嚼慢咽才能品嘗到它的獨特之處。
接下來,就讓我們一起來正式揭開Java的面紗。
Java是一門簡單、面向對象、高性能、安全性高、健壯性強、移植性好的語言(一本正經的胡說八道中)。Java的文法跟C++很像,如果有過C++學習經驗的人,學習Java上手會容易很多,Java一開始很多特性都跟C++相同,比如基本的程式結構、類、文法規則等等,但是删除了其中很多複雜的東西,比如頭檔案,結構,聯合,操作符重載、虛基類等等,看到這裡,學過C++的你可能會覺得很高興,終于不用跟那些奇奇怪怪的東西打交道了。别高興的太早,因為,還有讓你更高興的(手動滑稽),那最頭疼的指針操作部分,也去掉了,可以說是一個純淨簡化版的C++,但也添加了很多自己的特性,沒有了多重繼承,取而代之的是接口和内部類,由于不允許直接操作指針,是以就不會因為對指針的一頓瞎操作而出現神奇的bug,當然,也少了很多尋找bug的樂趣(尴尬),Java在安全性能上是可以信任的,因為永遠不會存取一個壞的指針,而造成記憶體配置設定的錯誤,也不存在記憶體洩漏問題。所有那些因為指針引起的安全隐患,都不存在的。
也許說了這麼多,對于新手的你,看的雲裡霧裡,不知所雲,沒關系,你隻需要知道,Java上手并不難,隻比繞操場跑上十來圈難那麼一點點,但如果你隻是想來散散步的話,那你可能沒有機會享受到汗流浃背後的滿足感了。
言歸正傳,Java可以寫桌面、可以寫Android、可以寫伺服器、可以寫企業級業務、可以寫網際網路業務。如果你以後想在安卓開發、伺服器開發、網站背景開發和維護上有所發展,那Java将是你不錯的選擇。如果隻是想來膜拜一下這門常年位居程式設計開發語言排行榜榜首的語言,那也可以來看看,俗話說的好,技多不壓身嘛,以後見了不會程式設計的朋友,還可以裝個X說我也是學過Java的人(憋笑)。
簡單介紹了Java的功能後,能堅持看到這說明你已經有點小心動,想要繼續學下去,那就跟我一起來進行系統的學習吧。
要學習Java,自然要從基本的資料類型說起,那麼,什麼是資料類型?顧名思義嘛,就是不同的資料有不同的類型,就像人按性别分男女,按年齡分老中少,按性情分攻受(咳咳,這裡隻是為了舉個栗子),在java裡,基本的資料類型有四種,整數型,浮點型,布爾型和字元型。下面來一一介紹。
整型,自然就是用來存放整數的, 比如說:1,2,3,4,100,等等,一般的整數都可以用int型來存放和操作,整型還可以根據取值範圍需求不同再細分成int型,short型,long型,byte型,這幾個兄弟排個序,從大到小分别是long、int、short、byte。long型最大,占用8個位元組(在java中,讨論最小的存儲單元是bit,也就是位,byte是位元組,跟位的換算是:1byte=8bit,1kb=1024bytes=2^10bytes),作為整型中的老大,占用8*8=64位,是以除去第一位用于儲存符号位,其它63位可以用來表示數值大小,是以它的表示範圍為:-2^63 — 2^63-1。大概是百億億的級别,是以要是用來存放你的銀行卡餘額的話,還是不要勞煩long型了(滑稽)。作為最常用的整數型老二,int型可謂是人盡皆知,幾乎成了整型的代表人物,它隻占用4個位元組,取值範圍為-2^31 — 2^31-1,比21億稍微多一點。而老三short,顧名思義,比較“短”,不能跟18cm的long型相提并論,隻占用2個位元組,表示範圍為-2^15 -- 2^15-1,也就是-32768 -- 32767,做小範圍的加減乘除的話是夠用的。最後介紹的老四,byte型,隻占用一個位元組,可謂是相當拮據,表示範圍為 -128-127。是以存餘額的話,byte,short型太短,long型太長,是以用int型最經濟實惠。
初學程式設計的人可能會問了,好好的整數型,還分那麼細幹嘛。這你就不懂了吧,舉個栗子,因為用于存放資料的記憶體空間是以位為基本機關,可以了解為很多很多相同的小盒子,相同的資料類型需要用同樣大小的空間,不然程式就不知道資料的開始和結束位置,用資料頭部來存放大小長度資訊顯然有些浪費空間,那麼現在的問題是,一個整數,用多大的空間合适?你可能會覺得,都用同樣大小的空間不就好了,那都用8個位元組來存儲,用來存放大數值的時候很好用,但是用來存放你的年齡的時候,仿佛浪費的空間就有點多了,就好比現在你有一個籃球,一個網球,一個足球,一個乒乓球,都需要用同樣大小的盒子來單獨存放,那規格自然隻能按最大的來算,當你往那個大盒子裡放一個乒乓球的時候,不覺得很浪費空間嗎。是以為了避免這樣不必要的浪費,設計多種整數型是有必要的。當然,也沒有必要對于記憶體太過斤斤計較,如果不是在搞算法研究,不是對時間跟空間效率要求很苛刻的條件下,基本上都用int型就好了。畢竟一般情況,運作效果比運作效率更重要。
接下來說浮點類型,為什麼叫浮點類型,自然是用來表示浮點數的(廢話),那什麼是浮點數,這。說來又要有一段文章了。在計算機中,表示小數有兩種方法,一種叫定點,一種叫浮點。

以32位程式為例,定點的意思是,小數點固定在 32 位中的某個位置,前面的是整數,後面的是小數。小數點具體固定在哪裡,可以自己在程式中指定。例如上面的例子,小數點在 23 bit 處。無論你是124.25,是0.5, 還是100, 小數點都在 23 bit 的位置固定不變。
浮點數是相對定點數而言的,浮點數的表示方法為:
最高的 1 位是符号位 s,接着的 8 位是指數E,剩下的 23 位為有效數字 M。例如:
5 DEC = 101 BIN = 1.01 x 2^2
100 DEC = 01100100 BIN = 1.100100 x 2^6
0.125 DEC = 0.001 BIN = 1 x 2^-3
現在,小數點的位置就漂浮不定了。如果想了解關于浮點數的存儲問題,可以看看這篇文章,https://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html
,當然,新手的話建議先别看了,免得被吓跑了,你隻需要知道,浮點型就是用來存取帶小數點的數就可以了。
浮點數也分成兩個類型,float和double,float占用四個位元組,取值範圍為-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38;double占用八個位元組,取值範圍為-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308。
float:2^23 = 8388608,一共七位,這意味着最多能有7位有效數字,但絕對能保證的為6位,也即float的精度為6~7位有效數字;
double:2^52 = 4503599627370496,一共16位,同理,double的精度為15~16位。
你如果對于這兩個類型傻傻分不清楚,那就隻用double類型就好了,java裡最常用的浮點類型就是double類型。
扯的有點多了,布爾型都等不及了,别擔心,布爾型(boolean)是最簡單的,隻有真(true)跟假(false)兩種狀态。
最後就是字元型(char),用于存放字元的資料類型,占用2個位元組,采用unicode編碼,它的前128位元組編碼與ASCII相容字元的存儲範圍在\u0000~\uFFFF,在定義字元型的資料時候要注意加' ',比如 '1'表示字元'1'而不是數值1。
好了,基本資料類型就介紹這麼多了,總的來說,整型用來存放整數,浮點型用來存放小數,布爾型用來存放真假,主要用于邏輯判斷,字元型用來存放單個字元,比如:'a','b','c'等等。Java中整數預設為int型,小數預設為double型。
最後再說一點,不同資料類型之間也是可以互相轉換的。Java中也是有着弱肉強食的規則,誰占地多誰就大,一個整數型int跟一個浮點型double一起運算時,會自動轉化為double型,這樣就能無精度損失的進行數值運算了。下面是資料類型之間的合法轉換:
那我非要進行“非法轉換”怎麼辦,一個占用8位元組的double型非要轉換成占用4位元組的int型該怎麼辦,那就隻能用強制類型轉換了,但這樣可能會造成精度的丢失。具體情況暫時不多做介紹了,不然又要說半天才能說的完了。
好了,今天的内容到此結束,基本資料類型都看了個遍,如果還是有些不明白,也沒有關系,一回生二回熟嘛。來日方長,日後再說吧。(溜了溜了)
真正重要的東西,用眼睛是看不見的。