本篇博文就Java語言的一些基本元素進行一些記錄和闡述傻咖,主要講解一下Java語言的一些基本構(gòu)成元素和Java的主類結(jié)構(gòu)。
Java語言基礎(chǔ)的大致組成
- java主類結(jié)構(gòu)
- 基本的數(shù)據(jù)類型
- 變量與常量
- 運算符
- 數(shù)據(jù)類型的轉(zhuǎn)換
-
Java主類結(jié)構(gòu)。
Java語言是面向?qū)ο蟮某绦蛟O(shè)計語言,Java程序的基本組成單元就是類倒慧。類體中又包括屬性和方法兩部分,每個Java程序都必須包含一個main()主方法包券,含有main()方法的類稱為主類迫靖,只有主類中的main()主方法能夠運行,其他類和其他方法只能在主方法中被調(diào)用兴使,為主方法服務(wù)系宜,如果一個類沒有被主類,主方法用到发魄,那么這個類在當(dāng)前程序中就暫時是無用的盹牧。
Java主類的結(jié)構(gòu)如下:
public class class_structure { // 主類
public static void main(String[] args) { // 主方法。
}
}
main()方法是類體中的主方法励幼,由{}括號開始與結(jié)束汰寓,public,static苹粟,void分別是main()方法的權(quán)限修飾符有滑,靜態(tài)修飾符,返回值修飾符嵌削。Java程序中的main()方法必須聲明為public static void 毛好。 String[] args 是一個字符串類型的數(shù)組望艺,它是main()方法的參數(shù),賣main()方法是程序執(zhí)行的開始位置肌访。
- api類庫
在Java語言中可以通過import關(guān)鍵字導(dǎo)入相關(guān)的類找默。在jdk的api(應(yīng)用程序接口)中提供了130多個包『鹗唬可以通過api文檔查看這些類惩激,其中主要包括了類的繼承結(jié)構(gòu),類的應(yīng)用蟹演,成員變量表风钻,構(gòu)造方法等。并對每個變量的使用目的做了詳細(xì)的描述酒请,api文檔是開發(fā)人員不可或缺的工具魄咕。
-
基本數(shù)據(jù)類型
在Java中有八種基本的數(shù)據(jù)類型來存儲數(shù)值,字符和布爾值蚌父。
- 整數(shù)類型
整數(shù)類型用來儲存整數(shù)數(shù)值,既沒有小數(shù)部分的數(shù)值毛萌」冻冢可以正負(fù)數(shù)。整型數(shù)據(jù)在Java程序中有三種表現(xiàn)形式阁将,十進制膏秫,八進制,十六進制做盅。
整數(shù)類型根據(jù)內(nèi)存占用大小缤削,分為byte,short吹榴,int亭敢,long 4種類型。他們具有不同的取值范圍:
- 浮點類型
浮點類型表示有小數(shù)部分的數(shù)字图筹,Java語言中浮點類型分為單精度浮點類型(flaot)和雙精度浮點類型(double)帅刀,他們具有不同的取值范圍。
單精度與雙精度的根本區(qū)別就是小數(shù)后精確位數(shù)的多少远剩,以及內(nèi)存的占用扣溺。高精度的double型比單精度的float型精度高,但占用內(nèi)存大瓜晤。所以float與double的選擇是根據(jù)使用的實際需求來確定的锥余。
在默認(rèn)情況下,小數(shù)都被看做double型痢掠,若使用float型小數(shù)驱犹,則需要在小數(shù)后面添加F或f嘲恍。在使用double型小數(shù)時也可以在后面加D或d來進行識別,不加也不會出錯着绷,但在使用float型小數(shù)時必須在后面加f或F蛔钙。
- 字符類型
字符類型(char)用于儲存單個字符,占用16位(字節(jié))的內(nèi)存荠医。在定義字符型變量時吁脱,要以單引號表示,雙引號表示字符串彬向,"s"兼贡,表示一個字符串,'s'表示一個字符娃胆。
- 轉(zhuǎn)義字符
轉(zhuǎn)義字符是一種特殊的字符變量遍希,它以\開頭,后跟字符里烦。轉(zhuǎn)義字符具有特殊的含義凿蒜,不同于字符原有的意義:
轉(zhuǎn)義字符賦值給變量時,與字符常量值一樣需要使用單引號胁黑。
- 布爾類型
布爾類型又稱為邏輯類型废封,通過關(guān)鍵字Boolean來定義布爾類型變量。只有true和false兩個值丧蘸。分別代表布爾邏輯中的真和假漂洋。布爾值是不能和整數(shù)類型進行轉(zhuǎn)換的,布爾類型通常被用作在流程控制中的判斷條件力喷。
更新時間:
2019-3-30 2:00
-
變量與常量
在學(xué)習(xí)變量與常量的定義之前刽漂,我們首先應(yīng)當(dāng)了解一下標(biāo)識符個關(guān)鍵字,這對我們在定義變量的過程中會有所幫助弟孟。
- 標(biāo)識符和關(guān)鍵字
- 標(biāo)識符
標(biāo)識符可以簡單的理解為一個名字贝咙,用來標(biāo)識類名,變量名方法名拂募,數(shù)組名颈畸,文件名的有效字符序列。
Java語言規(guī)定標(biāo)識符由任意順序的字母没讲,下劃線眯娱,美元符號和數(shù)字組成,并且第一個字符不能是數(shù)字爬凑。標(biāo)識符不能是Java中的保留關(guān)鍵字
另外需要注意的是箩祥,在Java語言中標(biāo)識符是嚴(yán)格區(qū)分大小寫的惫企,且Java語言使用的是unicode標(biāo)準(zhǔn)字符集兽愤,最多可以識別65535個字符。
- 關(guān)鍵字
關(guān)鍵字是Java語言中已經(jīng)被賦予了特定意義的一些單詞疏叨,不可以把這些關(guān)鍵字當(dāng)作標(biāo)識符來使用,Java關(guān)鍵字如下圖:
- 變量的聲明
變量的使用是程序設(shè)計中的一個十分重要的環(huán)節(jié)穿剖,定義變量蚤蔓,就是告訴編譯器這個變量的數(shù)據(jù)類型,這樣編譯器才知道該分配多大的空間給它糊余。以及它能夠存儲什么類型的數(shù)據(jù)秀又。
在程序運行過程中,空間內(nèi)的值是變化的贬芥,這個內(nèi)存空間就被稱為變量吐辙,而為了方便操作,給這個空間取個名字蘸劈,即為變量名昏苏。變量的命名必須是合法的標(biāo)識符,內(nèi)存空間的值即為變量值威沫,在聲明變量時可以是剋有賦值贤惯,也可以賦初始值。
系統(tǒng)的內(nèi)存大致可以分為三個區(qū)域棒掠,系統(tǒng)區(qū)(os)孵构,程序區(qū)(program),數(shù)據(jù)區(qū)(data)句柠。當(dāng)程序執(zhí)行時,程序代碼加載到內(nèi)存中的程序區(qū)棒假,數(shù)據(jù)暫時儲存在數(shù)據(jù)區(qū)中溯职。
聲明變量后,程序執(zhí)行時帽哑,會在數(shù)據(jù)區(qū)配置空間給這兩個變量谜酒。
- 常量的聲明
在程序運行過程中一直不會改變的量稱常量,也稱“final”變量妻枕。常量在整個程序中只能被賦值一次僻族,在為所有的對象共享值時,常量時非常有用的屡谐。
在Java語言中聲明一個常量述么,除了要指定數(shù)據(jù)類型外,還需要通過final關(guān)鍵字進行限定愕掏。
final:最后度秘,最終。
final關(guān)鍵字是一個非訪問修飾符饵撑,final 表示"最后的剑梳、最終的"含義唆貌,變量一旦賦值后,不能被重新賦值垢乙。被 final 修飾的實例變量必須顯式指定初始值锨咙。
final 修飾符通常和 static 修飾符一起使用來創(chuàng)建類常量。
- 變量的有效范圍
由于變量是被定義出來后暫存在內(nèi)存中追逮,所以等程序執(zhí)行到某一點酪刀,該變量會被釋放掉,也就是說變量是有生命周期的羊壹。因此蓖宦,變量的有效范圍是指程序代碼訪問該變量的區(qū)域。若超出該區(qū)域油猫,則無法訪問該變量稠茂。
在程序中,一般會根據(jù)變量的有效范圍將變量分為成員變量和局部變量情妖。
- 成員變量
在類體中所定義的變量被稱為成員變量睬关,成員變量在整個類體中都有效,類的成員變量又可分為兩種毡证,靜態(tài)變量和實例變量电爹。
靜態(tài)變量,需要使用static修飾符料睛。靜態(tài)變量的有效范圍是可以跨類的丐箩,甚至可以達到整個程序之內(nèi),靜態(tài)變量除了可以在本類調(diào)用恤煞,還可以以類名.變量名在其他類調(diào)用屎勘。
- 局部變量
在類的方法體中定義的變量稱為局部變量。局部變量只在當(dāng)前代碼塊中有效居扒。在類的方法中聲明的變量概漱,包括方法的參數(shù)都屬于局部變量。局部變量只在當(dāng)前定義的方法內(nèi)有效喜喂,不能用于類的其他方法中瓤摧。局部變量的生命周期取決于方法,當(dāng)方法被調(diào)用的時候玉吁,JVM虛擬機就會分配內(nèi)存空間照弥。當(dāng)方法結(jié)束,則釋放方法中局部變量的占用的空間进副,局部變量也會被銷毀产喉。
-
運算符
運算符是一些特殊的符號,主要用于數(shù)學(xué)函數(shù),一些類型的賦值語句和邏輯比較的方面曾沈。Java中提供了豐富的運算符这嚣,賦值運算符,算數(shù)運算符塞俱,比較運算符等姐帚。
- 賦值運算符
賦值運算符以=表示,他是一個二元運算符(對兩個操作數(shù)處理)障涯,其功能是將右邊的操作數(shù)的值賦給左邊的操作數(shù)罐旗。
賦值運算符的運算規(guī)則是從右往左。
在Java中賦值運算符是可以連起來使用的唯蝶。
- 算數(shù)運算符
Java中的算術(shù)運算符主要又+九秀,-,*粘我,/鼓蜒,%。他們都是二元運算符征字。
- 自增自減運算符
自增都弹,自減運算符是單目運算符,可以放在操作數(shù)的前面匙姜,也可以放在操作數(shù)之后畅厢,操作元必須是一個整形或浮點型變量。自增自減的作用就是使變量自增1或自減1氮昧。
當(dāng)自增自減運算符放在操作數(shù)前面時框杜,表示,先使操作數(shù)加1在進行運算袖肥,放在后面則是先進行表達式的運算咪辱,再加減1
++a; //先加1
a++;//后加1
- 比較運算符
比較運算符屬于二元運算符,用于出程序中的變量之間昭伸,變量和自變量之間以及其他類型的信息之間的比較梧乘。比較運算符的結(jié)構(gòu)是boolean型澎迎。當(dāng)結(jié)果成立庐杨,為true,否則為false夹供。所有比較運算符通常作為判斷依據(jù)使用在條件語句中灵份。
- 邏輯運算符
返回類型為布爾值的表達式,如比較運算符哮洽,可以被組合在譯器構(gòu)成一個更加復(fù)雜的表達式填渠。這是通過邏輯運算符來實現(xiàn)的。邏輯運算符包括&&(邏輯與),||(邏輯或)氛什,]汉(邏輯非),其中只有邏輯非是一元運算符枪眉。
邏輯運算符的用法和含義:
表達式1 | 表達式2 | 1&&2 | 1II 2 | !1 |
---|---|---|---|---|
true | true | true | true | false |
ture | false | false | true | false |
false | false | false | false | true |
false | true | false | true | true |
- 位運算符
位運算符除按位與和按位或外捺檬,其他只能用于處理整數(shù)的操作數(shù)。位運算是完全針對為方面的操作贸铜,整型數(shù)據(jù)在內(nèi)存以二進制表示堡纬。
- 按位與
按位與運算符位&,是雙目運算符蒿秦,運算法則:如果兩個整型數(shù)a烤镐,b,對應(yīng)位都是1棍鳖,則結(jié)果位才是1炮叶,否則為0。如果操作數(shù)精度不同鹊杖,則結(jié)果的精度與精度高的相同悴灵。
- 按位或
按位或運算符為|,是雙目運算符骂蓖,按位或運算法則:如果兩個整型數(shù)據(jù)a积瞒,b對應(yīng)都是0
則結(jié)果為才為0,否則為1登下。結(jié)果精度與操作數(shù)精度高的相同茫孔。
- 按位取反
按位取反運算也稱安位非運算,運算符為~被芳,單目運算符缰贝,就是將操作數(shù)二進制的1改為0。
- 按位異或
按位異或運算表示^畔濒,為雙目運算符剩晴,運算法則:當(dāng)兩個操作數(shù)的二進制表示不同時,結(jié)果為0侵状,否則為1赞弥。精度取最高。
- 移位運算
除了上述運算符之外趣兄,還可以對數(shù)據(jù)按二進制進行移位操作绽左。Java移位運算符有三種:<<左移,>>右移艇潭,>>>拼窥,無符號右移戏蔑。
左移就是將運算符左邊的二進制按照運算符右邊的操作數(shù)指定的位數(shù)向左移動。右邊移空的位置補0鲁纠。右移則稍微復(fù)雜一些总棵,當(dāng)最高位為0時,右移空的位就填入0改含,如果最高位是1彻舰,右移空的位就填1。
而無符號右移候味,則是無論最高位是0還是1刃唤,左側(cè)被移空的高位都填入0。
移位運算符可以實現(xiàn)整數(shù)的乘除以2的n次方的效果白群,如y<<2與y4相同尚胞,y>>1,就是y/2帜慢,左移就是乘笼裳,右移就是除。*
- 三元運算符
三元運算符的使用格式為:
條件式粱玲?值1:值2
boolean b=20<30?true:false;
三元運算符的規(guī)則是:若表達式的值為true躬柬,則整個表達式取值1,否則取值2抽减。
三元運算符等價于if else語句允青。
- 運算符的優(yōu)先級
Java表達式就是使用運算符連接起來的符合Java規(guī)則的式子,運算符中運算的先后順序卵沉。通常優(yōu)先級由高到低的順序依次是:
增量與減量運算颠锉,算數(shù)運算,比較運算史汗,邏輯運算琼掠,賦值運算。
如果兩個式子有同樣的優(yōu)先級停撞,則左邊的表達式要比右邊的表達式先被處理瓷蛙。
-
數(shù)據(jù)轉(zhuǎn)換
類型的數(shù)據(jù)轉(zhuǎn)換是將一個值從一種類型更改為另一種類型的過程,例如戈毒,可以將String類型“456”轉(zhuǎn)換為一個數(shù)值型艰猬,而且可以將任意類型的數(shù)據(jù)轉(zhuǎn)換為String型。
如果從低精度向高精度轉(zhuǎn)換副硅,則不會溢出姥宝,并且總是成功的翅萤,如果從高精度向低精度轉(zhuǎn)換恐疲,則必然伴隨著信息的缺失腊满,有可能失敗。
- 隱式類型轉(zhuǎn)換
從低級類型向高級類型的轉(zhuǎn)換培己,系統(tǒng)將自動進行碳蛋,這種類型轉(zhuǎn)換稱為隱式類型轉(zhuǎn)換。
基本類型精度高低:byte<short<int<long<float<double.
int x=34;
flaot y=x; // 這就是一種隱式類型轉(zhuǎn)換省咨,
- 顯示類型轉(zhuǎn)換
當(dāng)高精度的變量的值賦給低精度的變量時肃弟,必須使用顯示類型轉(zhuǎn)換(即強制類型轉(zhuǎn)換)。
int a=(int)34.13;
long y=(long)456.6f;
int b=(int)'d';
當(dāng)執(zhí)行顯示類型轉(zhuǎn)換時零蓉,可能會導(dǎo)致精度的丟失笤受。只要時Boolean型以外的其他類型之間的轉(zhuǎn)換,全部都能以顯示類型轉(zhuǎn)換方法得到敌蜂。
Java語言基礎(chǔ) 完箩兽。
更新時間:
2019-4-1
19:51