這是一篇Java入門的文章扼鞋,有經(jīng)驗(yàn)的開發(fā)者可以直接路過就好
簡介
這里想用一個(gè)不同視角來學(xué)習(xí)編程。這個(gè)視角就是設(shè)計(jì)一門編程語言于宙。
這里我們從簡單到復(fù)雜一步步設(shè)計(jì)一個(gè)語言柴灯,從這個(gè)過程中去理解Java的方方面面物延。
如果大家能從設(shè)計(jì)的思路去入手去理解Java宣旱,那么在做開發(fā)時(shí)候一定得心應(yīng)手的。
在學(xué)習(xí)的過程中更是能知其然叛薯,知其所以然浑吟。這個(gè)過程會讓你真的懂得自己學(xué)習(xí)的是什么,學(xué)到又是什么耗溜。下面我開始一步一步帶大家一起探索Java组力。
基本數(shù)據(jù)類型int
大家不要被int這幾個(gè)字母迷惑了,其實(shí)他的全稱是integer翻譯一下就是整數(shù)的意思抖拴,后來為了編寫方便簡化為int燎字,現(xiàn)在大多數(shù)語言都是用int。這里就跟數(shù)學(xué)里面的整數(shù)對應(yīng)起來了阿宅,只有一點(diǎn)點(diǎn)區(qū)別候衍。就是取值范圍不同。因?yàn)橛?jì)算機(jī)需要存儲一個(gè)數(shù)字洒放,需要設(shè)計(jì)一個(gè)存儲區(qū)用來放這個(gè)數(shù)字蛉鹿。那么這個(gè)區(qū)域用多大適合呢?其實(shí)這個(gè)地方設(shè)計(jì)的時(shí)候是考慮計(jì)算機(jī)內(nèi)部實(shí)現(xiàn)設(shè)計(jì)的往湿,比如你的電腦現(xiàn)在一般是32位和64位妖异。而Java設(shè)計(jì)之初也是32位系統(tǒng)剛剛發(fā)展的階段,所以設(shè)計(jì)的時(shí)候就要根據(jù)具體需求考慮如果用32是不是合適领追,那時(shí)候16位系統(tǒng)還是很多的他膳,可是有個(gè)問題就是16位二進(jìn)制數(shù)很多時(shí)候不夠用,而且一個(gè)語言一定是面向未來的绒窑,那么選擇32位就剛剛好矩乐,為什么不選擇64位呢,這個(gè)就更好理解了,一個(gè)是浪費(fèi)空間散罕,其實(shí)大多時(shí)候用不上分歇,第二在32位機(jī)器上做64位運(yùn)算,性能差很多倍欧漱,所以int的存儲范圍就定在了32位职抡,根據(jù)這個(gè)還有計(jì)算機(jī)實(shí)際的存儲方式,Java的int類型定位了32位取值范圍也是根據(jù)這個(gè)計(jì)算的误甚。了解了這個(gè)后面的基本數(shù)據(jù)類型就好辦了缚甩。
基本數(shù)據(jù)類型int
基本數(shù)據(jù)類型long
long又是什么鬼.只看單詞以為就是長的意思,不好理解
其實(shí)long原來是 long integer的意思窑邦,翻譯就是長整型擅威,就是長的整型,整型是32位冈钦,長整型用64表示郊丛。
看他的由來也大概知道因?yàn)閕nt表達(dá)的范圍不大,所以對于特殊計(jì)算使用表示范圍更大的long來表示瞧筛,可以使用更大的范圍數(shù)字厉熟。
基本數(shù)據(jù)類型short
short又是什么呢
其實(shí)short的表示是 short integer的意思,翻譯就是短整型较幌,就是短的整型揍瑟,整型是32位,短整型用16位表示乍炉。
為什么用int還要short呢绢片。這個(gè)是因?yàn)橛行┨厥馇闆r下,存儲空間有限岛琼,為了能節(jié)省一部分空間杉畜,可以使用短一些的整形來表示。
由于時(shí)代發(fā)展衷恭,現(xiàn)在電腦內(nèi)存都比較大此叠,所以很少考慮用short去節(jié)省內(nèi)存的問題了。至少我是很少用随珠,估計(jì)嵌入式那些小內(nèi)存程序會用的多吧灭袁。
基本數(shù)據(jù)類型float&double
float怎么理解
之前寫了幾個(gè)變量都是整數(shù),那么小數(shù)自然也有一個(gè)表示窗看,java里用的是float表示小數(shù)茸歧,float這個(gè)翻譯成因?yàn)橹形木褪恰O陨颉H硐埂>褪欠昊健!涤浇!?浮動的鳖藕!
我們叫浮點(diǎn)數(shù),浮點(diǎn)數(shù)代表的是實(shí)數(shù)就是包含整數(shù)和小數(shù)只锭。這個(gè)名字來源是10的科學(xué)計(jì)數(shù)法著恩,小數(shù)點(diǎn)可以浮動的意思。
具體內(nèi)容可以百度下蜻展,還是比較抽象了喉誊,其實(shí)只要懂了float就是代表實(shí)數(shù)也就夠了,可以帶小數(shù)點(diǎn)纵顾。
double有是什么呢
double有點(diǎn)類似之前的long 和int 的關(guān)系伍茄。double 是 double float的簡稱 翻譯就是雙精度浮點(diǎn)數(shù)。
由于計(jì)算機(jī)的特性施逾,其實(shí)計(jì)算機(jī)是很難精確表達(dá)小數(shù)的敷矫,所以float一般會是一個(gè)近似值。double就是讓精確度更高一點(diǎn)的實(shí)數(shù)音念。
計(jì)算機(jī) float 用32位保存 double呢為了更高的精度就需要更多的位數(shù)來犧牲空間,使用64位保存一個(gè)實(shí)數(shù)躏敢。
基本數(shù)據(jù)類型boolean
boolean這個(gè)名稱是為了紀(jì)念英國數(shù)學(xué)家GeorgeBoole闷愤。
boolean代表真和假,用于邏輯判斷件余,就是我們數(shù)學(xué)里學(xué)的真假讥脐。真的時(shí)候值為true;假的時(shí)候?yàn)閒alse;這兩個(gè)值因?yàn)榫涂梢灾苯永斫鉃檎婕佟?br>
這個(gè)東西特別常用,所以被定義為基本類型啼器,比如你寫個(gè)游戲判斷游戲是不是勝利了旬渠,如果勝利了就顯示勝利頁面。
這些東西在開發(fā)中用的就特別多端壳,而且boolean特別節(jié)省空間因?yàn)橹挥?個(gè)值所以只用1位就可以表示告丢。其實(shí)C語言什么的也有用0,1表示的损谦。其實(shí)都一樣岖免,只是用true;和false;更直觀
基本數(shù)據(jù)類型char
char類型
char是因?yàn)閏haracter的縮寫,character因?yàn)榇碜帜傅囊馑颊占瘛1疽饩褪怯脕硪胍粋€(gè)字母颅湘。
字母一般是a-z 26 個(gè),因?yàn)闃?biāo)點(diǎn)符號也要有個(gè)顯示規(guī)則栗精,就都加入到字符里面了闯参。這就是我們現(xiàn)在的說的char瞻鹏。美國一般不會使用中文的,所以字符過去不考慮中文鹿寨,但是我們使用就會用新博,所以java把中文也加入了char里面,就是我們現(xiàn)在看到的char了
之前說了這么多類型其實(shí)都是數(shù)值型的释移,一般用于計(jì)算叭披,隨著技術(shù)的發(fā)展,計(jì)算機(jī)就很需要文字了玩讳,char就是為了解決程序里的問題的涩蜘。
這里忽略各種編碼。char就是用來表示一個(gè)字符熏纯,'a'同诫,'b','c'也可以表示中文,'中'樟澜,'國'.
char類型的值一般寫在單引號里面误窖,char用16位表示一個(gè)值。每個(gè)值都是一個(gè)字符秩贰,標(biāo)點(diǎn)符號也在char內(nèi)表示霹俺。
char類似其實(shí)用的不多,我們一般情況使用的都是字符串毒费,char代表一個(gè)字符而已丙唧。
基本數(shù)據(jù)類型byte
上面說了這么7個(gè)類型,其實(shí)基本數(shù)據(jù)類型還有一個(gè)byte觅玻。這個(gè)要單獨(dú)拿出來說想际。
類型byte可以理解為一個(gè)更小的整型,比short還小溪厘。用8位表示胡本。
那為什么要把byte單獨(dú)拿出來說呢。因?yàn)橐话阄覀冇胋yte來定義一個(gè)存儲單位畸悬。
這里用一個(gè)簡單的字符編碼的設(shè)計(jì)鋪開來說侧甫。
什么是字符編碼
字符編碼,其實(shí)就是一個(gè)約定蹋宦,計(jì)算機(jī)存儲數(shù)據(jù)其實(shí)只有0和1闺骚,像abcdefg對計(jì)算機(jī)來說他本身是不認(rèn)識的,他只認(rèn)識0和1妆档,那么如果我想把字母存儲到計(jì)算機(jī)要怎么做呢僻爽。字符編碼就是做這個(gè)事的,比如我固定用8位二進(jìn)制數(shù)代表一個(gè)字符贾惦。八位二進(jìn)制數(shù)可以表示0~256胸梆。我可以編碼規(guī)定0代表a敦捧,1代表b,2代表c碰镜,26代表z兢卵,然后我可以規(guī)定27代表0,28代表1绪颖,29代表2.以此類推秽荤,我可以用八位二進(jìn)制數(shù)代表各種數(shù)字字符和,一些基本的操作符號柠横,這個(gè)過程窃款。雖然我們計(jì)算機(jī)保存的是二進(jìn)制數(shù),可是我可以根據(jù)這個(gè)編碼去轉(zhuǎn)化位具體的字母數(shù)字牍氛。
想了解的小伙伴可以看看ASCII編碼晨继,這個(gè)基本就是一個(gè)最簡單的編碼了。
關(guān)于我
我是IsCoding搬俊,7年Android從業(yè)經(jīng)驗(yàn)紊扬。
QQ群號 121915371
QQ 號 1400100300 (個(gè)人QQ 建議加群咨詢)