前兩篇已經(jīng)將開發(fā)環(huán)境搭建完成,如果你已經(jīng)按之前的教程按部就班的完成了部署,,那么世界上最優(yōu)秀的編程語言之一和世界上最優(yōu)秀的IDE之一已經(jīng)出現(xiàn)在你的電腦上(此處應(yīng)有掌聲),,如果你還沒入門,或者正在臺階上踱步,,可能你還不能理解這個“最優(yōu)秀”的含義,,沒有關(guān)系,這頓美味需要我們來細(xì)嚼慢咽才能品嘗到它的獨特之處,。 接下來,,就讓我們一起來正式揭開Java的面紗。 Java是一門簡單,、面向?qū)ο?、高性能,、安全性高、健壯性?qiáng),、移植性好的語言(一本正經(jīng)的胡說八道中),。Java的語法跟C++很像,如果有過C++學(xué)習(xí)經(jīng)驗的人,,學(xué)習(xí)Java上手會容易很多,,Java一開始很多特性都跟C++相同,比如基本的程序結(jié)構(gòu),、類、語法規(guī)則等等,,但是刪除了其中很多復(fù)雜的東西,,比如頭文件,結(jié)構(gòu),,聯(lián)合,,操作符重載、虛基類等等,,看到這里,,學(xué)過C++的你可能會覺得很高興,終于不用跟那些奇奇怪怪的東西打交道了,。別高興的太早,,因為,還有讓你更高興的(手動滑稽),,那最頭疼的指針操作部分,,也去掉了,可以說是一個純凈簡化版的C++,,但也添加了很多自己的特性,,沒有了多重繼承,取而代之的是接口和內(nèi)部類,,由于不允許直接操作指針,,所以就不會因為對指針的一頓瞎操作而出現(xiàn)神奇的bug,當(dāng)然,,也少了很多尋找bug的樂趣(尷尬),,Java在安全性能上是可以信任的,因為永遠(yuǎn)不會存取一個壞的指針,,而造成內(nèi)存分配的錯誤,,也不存在內(nèi)存泄漏問題。所有那些因為指針引起的安全隱患,,都不存在的,。 也許說了這么多,,對于新手的你,看的云里霧里,,不知所云,,沒關(guān)系,你只需要知道,,Java上手并不難,,只比繞操場跑上十來圈難那么一點點,但如果你只是想來散散步的話,,那你可能沒有機(jī)會享受到汗流浹背后的滿足感了,。 言歸正傳,Java可以寫桌面,、可以寫Android,、可以寫服務(wù)器、可以寫企業(yè)級業(yè)務(wù),、可以寫互聯(lián)網(wǎng)業(yè)務(wù),。如果你以后想在安卓開發(fā)、服務(wù)器開發(fā),、網(wǎng)站后臺開發(fā)和維護(hù)上有所發(fā)展,,那Java將是你不錯的選擇。如果只是想來膜拜一下這門常年位居編程開發(fā)語言排行榜榜首的語言,,那也可以來看看,,俗話說的好,技多不壓身嘛,,以后見了不會編程的朋友,,還可以裝個X說我也是學(xué)過Java的人(憋笑)。 簡單介紹了Java的功能后,,能堅持看到這說明你已經(jīng)有點小心動,,想要繼續(xù)學(xué)下去,那就跟我一起來進(jìn)行系統(tǒng)的學(xué)習(xí)吧,。 要學(xué)習(xí)Java,,自然要從基本的數(shù)據(jù)類型說起,那么,,什么是數(shù)據(jù)類型,?顧名思義嘛,就是不同的數(shù)據(jù)有不同的類型,,就像人按性別分男女,,按年齡分老中少,按性情分攻受(咳咳,這里只是為了舉個栗子),,在java里,,基本的數(shù)據(jù)類型有四種,整數(shù)型,,浮點型,,布爾型和字符型。下面來一一介紹,。 整型,,自然就是用來存放整數(shù)的, 比如說:1,2,3,4,100,,等等,,一般的整數(shù)都可以用int型來存放和操作,整型還可以根據(jù)取值范圍需求不同再細(xì)分成int型,,short型,,long型,byte型,,這幾個兄弟排個序,從大到小分別是long,、int,、short、byte,。long型最大,,占用8個字節(jié)(在java中,討論最小的存儲單元是bit,,也就是位,,byte是字節(jié),跟位的換算是:1byte=8bit,,1kb=1024bytes=2^10bytes),,作為整型中的老大,占用8*8=64位,,所以除去第一位用于儲存符號位,,其它63位可以用來表示數(shù)值大小,所以它的表示范圍為:-2^63 — 2^63-1,。大概是百億億的級別,,所以要是用來存放你的銀行卡余額的話,還是不要勞煩long型了(滑稽),。作為最常用的整數(shù)型老二,,int型可謂是人盡皆知,幾乎成了整型的代表人物,它只占用4個字節(jié),,取值范圍為-2^31 — 2^31-1,,比21億稍微多一點。而老三short,,顧名思義,,比較“短”,不能跟18cm的long型相提并論,,只占用2個字節(jié),,表示范圍為-2^15 -- 2^15-1,也就是-32768 -- 32767,,做小范圍的加減乘除的話是夠用的,。最后介紹的老四,byte型,,只占用一個字節(jié),,可謂是相當(dāng)拮據(jù),表示范圍為 -128-127,。所以存余額的話,,byte,short型太短,,long型太長,,所以用int型最經(jīng)濟(jì)實惠。 初學(xué)編程的人可能會問了,,好好的整數(shù)型,,還分那么細(xì)干嘛。這你就不懂了吧,,舉個栗子,,因為用于存放數(shù)據(jù)的內(nèi)存空間是以位為基本單位,可以理解為很多很多相同的小盒子,,相同的數(shù)據(jù)類型需要用同樣大小的空間,,不然程序就不知道數(shù)據(jù)的開始和結(jié)束位置,用數(shù)據(jù)頭部來存放大小長度信息顯然有些浪費空間,,那么現(xiàn)在的問題是,,一個整數(shù),用多大的空間合適,?你可能會覺得,,都用同樣大小的空間不就好了,那都用8個字節(jié)來存儲,,用來存放大數(shù)值的時候很好用,,但是用來存放你的年齡的時候,仿佛浪費的空間就有點多了,就好比現(xiàn)在你有一個籃球,,一個網(wǎng)球,,一個足球,一個乒乓球,,都需要用同樣大小的盒子來單獨存放,,那規(guī)格自然只能按最大的來算,當(dāng)你往那個大盒子里放一個乒乓球的時候,,不覺得很浪費空間嗎,。所以為了避免這樣不必要的浪費,設(shè)計多種整數(shù)型是有必要的,。當(dāng)然,,也沒有必要對于內(nèi)存太過斤斤計較,如果不是在搞算法研究,,不是對時間跟空間效率要求很苛刻的條件下,,基本上都用int型就好了。畢竟一般情況,,運行效果比運行效率更重要,。 接下來說浮點類型,為什么叫浮點類型,,自然是用來表示浮點數(shù)的(廢話),,那什么是浮點數(shù),這,。說來又要有一段文章了。在計算機(jī)中,,表示小數(shù)有兩種方法,,一種叫定點,一種叫浮點,。 以32位程序為例,,定點的意思是,小數(shù)點固定在 32 位中的某個位置,,前面的是整數(shù),,后面的是小數(shù)。小數(shù)點具體固定在哪里,,可以自己在程序中指定,。例如上面的例子,小數(shù)點在 23 bit 處,。無論你是124.25,,是0.5, 還是100, 小數(shù)點都在 23 bit 的位置固定不變,。 浮點數(shù)是相對定點數(shù)而言的,,浮點數(shù)的表示方法為:最高的 1 位是符號位 s,接著的 8 位是指數(shù)E,,剩下的 23 位為有效數(shù)字 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 浮點數(shù)也分成兩個類型,float和double,,float占用四個字節(jié),,取值范圍為-2^128 ~ +2^128,也即-3.40E+38 ~ +3.40E+38,;double占用八個字節(jié),,取值范圍為-2^1024 ~ +2^1024,也即-1.79E+308 ~ +1.79E+308,。 float:2^23 = 8388608,,一共七位,這意味著最多能有7位有效數(shù)字,,但絕對能保證的為6位,,也即float的精度為6~7位有效數(shù)字; double:2^52 = 4503599627370496,,一共16位,,同理,double的精度為15~16位,。 你如果對于這兩個類型傻傻分不清楚,,那就只用double類型就好了,java里最常用的浮點類型就是double類型,。 扯的有點多了,,布爾型都等不及了,別擔(dān)心,,布爾型(boolean)是最簡單的,,只有真(true)跟假(false)兩種狀態(tài)。 最后就是字符型(char),,用于存放字符的數(shù)據(jù)類型,,占用2個字節(jié),采用unicode編碼,,它的前128字節(jié)編碼與ASCII兼容字符的存儲范圍在~\uFFFF,,在定義字符型的數(shù)據(jù)時候要注意加' ',比如 '1'表示字符'1'而不是數(shù)值1,。 好了,,基本數(shù)據(jù)類型就介紹這么多了,,總的來說,整型用來存放整數(shù),,浮點型用來存放小數(shù),,布爾型用來存放真假,主要用于邏輯判斷,,字符型用來存放單個字符,,比如:'a','b','c'等等。Java中整數(shù)默認(rèn)為int型,,小數(shù)默認(rèn)為double型,。 最后再說一點,不同數(shù)據(jù)類型之間也是可以相互轉(zhuǎn)換的,。Java中也是有著弱肉強(qiáng)食的規(guī)則,,誰占地多誰就大,一個整數(shù)型int跟一個浮點型double一起運算時,,會自動轉(zhuǎn)化為double型,,這樣就能無精度損失的進(jìn)行數(shù)值運算了。下面是數(shù)據(jù)類型之間的合法轉(zhuǎn)換: 那我非要進(jìn)行“非法轉(zhuǎn)換”怎么辦,,一個占用8字節(jié)的double型非要轉(zhuǎn)換成占用4字節(jié)的int型該怎么辦,,那就只能用強(qiáng)制類型轉(zhuǎn)換了,但這樣可能會造成精度的丟失,。具體情況暫時不多做介紹了,,不然又要說半天才能說的完了。 好了,,今天的內(nèi)容到此結(jié)束,,基本數(shù)據(jù)類型都看了個遍,如果還是有些不明白,,也沒有關(guān)系,,一回生二回熟嘛。來日方長,,日后再說吧。(溜了溜了) |
|