[Java初探02]——Java語言基礎(chǔ)

本篇博文就Java語言的一些基本元素進行一些記錄和闡述傻咖,主要講解一下Java語言的一些基本構(gòu)成元素和Java的主類結(jié)構(gòu)。

Java語言基礎(chǔ)的大致組成


  1. java主類結(jié)構(gòu)
  2. 基本的數(shù)據(jù)類型
  3. 變量與常量
  4. 運算符
  5. 數(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ù)值,字符和布爾值蚌父。

2019-3-30-01.png

  • 整數(shù)類型

整數(shù)類型用來儲存整數(shù)數(shù)值,既沒有小數(shù)部分的數(shù)值毛萌」冻冢可以正負(fù)數(shù)。整型數(shù)據(jù)在Java程序中有三種表現(xiàn)形式阁将,十進制膏秫,八進制,十六進制做盅。

整數(shù)類型根據(jù)內(nèi)存占用大小缤削,分為byte,short吹榴,int亭敢,long 4種類型。他們具有不同的取值范圍:

2019-3-30-02.png
  • 浮點類型

浮點類型表示有小數(shù)部分的數(shù)字图筹,Java語言中浮點類型分為單精度浮點類型(flaot)和雙精度浮點類型(double)帅刀,他們具有不同的取值范圍。

單精度與雙精度的根本區(qū)別就是小數(shù)后精確位數(shù)的多少远剩,以及內(nèi)存的占用扣溺。高精度的double型比單精度的float型精度高,但占用內(nèi)存大瓜晤。所以float與double的選擇是根據(jù)使用的實際需求來確定的锥余。


2019-3-30-03.png

在默認(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)義字符具有特殊的含義凿蒜,不同于字符原有的意義:


2019-3-30-04.png

轉(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)鍵字如下圖:

2019-4-1-12.png

  • 變量的聲明

變量的使用是程序設(shè)計中的一個十分重要的環(huán)節(jié)穿剖,定義變量蚤蔓,就是告訴編譯器這個變量的數(shù)據(jù)類型,這樣編譯器才知道該分配多大的空間給它糊余。以及它能夠存儲什么類型的數(shù)據(jù)秀又。
在程序運行過程中,空間內(nèi)的值是變化的贬芥,這個內(nèi)存空間就被稱為變量吐辙,而為了方便操作,給這個空間取個名字蘸劈,即為變量名昏苏。變量的命名必須是合法的標(biāo)識符,內(nèi)存空間的值即為變量值威沫,在聲明變量時可以是剋有賦值贤惯,也可以賦初始值。

2019-4-1-13.png

系統(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)建類常量。

關(guān)于java 修飾符


  • 變量的有效范圍

由于變量是被定義出來后暫存在內(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é)束,則釋放方法中局部變量的占用的空間进副,局部變量也會被銷毀产喉。

2019-4-1-14.png

  • 運算符

運算符是一些特殊的符號,主要用于數(shù)學(xué)函數(shù),一些類型的賦值語句和邏輯比較的方面曾沈。Java中提供了豐富的運算符这嚣,賦值運算符,算數(shù)運算符塞俱,比較運算符等姐帚。

  • 賦值運算符

賦值運算符以=表示,他是一個二元運算符(對兩個操作數(shù)處理)障涯,其功能是將右邊的操作數(shù)的值賦給左邊的操作數(shù)罐旗。

賦值運算符的運算規(guī)則是從右往左。
在Java中賦值運算符是可以連起來使用的唯蝶。

  • 算數(shù)運算符

Java中的算術(shù)運算符主要又+九秀,-,*粘我,/鼓蜒,%。他們都是二元運算符征字。

2019-4-1-15.png
  • 自增自減運算符

自增都弹,自減運算符是單目運算符,可以放在操作數(shù)的前面匙姜,也可以放在操作數(shù)之后畅厢,操作元必須是一個整形或浮點型變量。自增自減的作用就是使變量自增1或自減1氮昧。

當(dāng)自增自減運算符放在操作數(shù)前面時框杜,表示,先使操作數(shù)加1在進行運算袖肥,放在后面則是先進行表達式的運算咪辱,再加減1

++a; //先加1
a++;//后加1
  • 比較運算符

比較運算符屬于二元運算符,用于出程序中的變量之間昭伸,變量和自變量之間以及其他類型的信息之間的比較梧乘。比較運算符的結(jié)構(gòu)是boolean型澎迎。當(dāng)結(jié)果成立庐杨,為true,否則為false夹供。所有比較運算符通常作為判斷依據(jù)使用在條件語句中灵份。

2019-4-1-16.png
  • 邏輯運算符

返回類型為布爾值的表達式,如比較運算符哮洽,可以被組合在譯器構(gòu)成一個更加復(fù)雜的表達式填渠。這是通過邏輯運算符來實現(xiàn)的。邏輯運算符包括&&(邏輯與),||(邏輯或)氛什,]汉(邏輯非),其中只有邏輯非是一元運算符枪眉。

邏輯運算符的用法和含義:

2019-4-1-17.png
表達式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ù)精度高的相同茫孔。

2019-4-1-18.png
  • 按位取反

按位取反運算也稱安位非運算,運算符為~被芳,單目運算符缰贝,就是將操作數(shù)二進制的1改為0。

  • 按位異或

按位異或運算表示^畔濒,為雙目運算符剩晴,運算法則:當(dāng)兩個操作數(shù)的二進制表示不同時,結(jié)果為0侵状,否則為1赞弥。精度取最高。

  • 移位運算

除了上述運算符之外趣兄,還可以對數(shù)據(jù)按二進制進行移位操作绽左。Java移位運算符有三種:<<左移,>>右移艇潭,>>>拼窥,無符號右移戏蔑。

2019-4-1-19.png

左移就是將運算符左邊的二進制按照運算符右邊的操作數(shù)指定的位數(shù)向左移動。右邊移空的位置補0鲁纠。右移則稍微復(fù)雜一些总棵,當(dāng)最高位為0時,右移空的位就填入0改含,如果最高位是1彻舰,右移空的位就填1。

2019-4-1-20.png

而無符號右移候味,則是無論最高位是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)先級停撞,則左邊的表達式要比右邊的表達式先被處理瓷蛙。

2019-4-1-21.png

  • 數(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市章喉,隨后出現(xiàn)的幾起案子汗贫,更是在濱河造成了極大的恐慌,老刑警劉巖秸脱,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件落包,死亡現(xiàn)場離奇詭異,居然都是意外死亡摊唇,警方通過查閱死者的電腦和手機咐蝇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來巷查,“玉大人嘹害,你說我怎么就攤上這事∷北悖” “怎么了笔呀?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長髓需。 經(jīng)常有香客問我许师,道長,這世上最難降的妖魔是什么僚匆? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任微渠,我火速辦了婚禮,結(jié)果婚禮上咧擂,老公的妹妹穿的比我還像新娘逞盆。我一直安慰自己,他們只是感情好松申,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布云芦。 她就那樣靜靜地躺著俯逾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舅逸。 梳的紋絲不亂的頭發(fā)上桌肴,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天,我揣著相機與錄音琉历,去河邊找鬼坠七。 笑死,一個胖子當(dāng)著我的面吹牛旗笔,可吹牛的內(nèi)容都是我干的彪置。 我是一名探鬼主播,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼蝇恶,長吁一口氣:“原來是場噩夢啊……” “哼悉稠!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起艘包,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤的猛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后想虎,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卦尊,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年舌厨,在試婚紗的時候發(fā)現(xiàn)自己被綠了岂却。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡裙椭,死狀恐怖躏哩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情揉燃,我是刑警寧澤扫尺,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站炊汤,受9級特大地震影響正驻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜抢腐,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一姑曙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧迈倍,春花似錦伤靠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽焕梅。三九已至,卻和暖如春形纺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背徒欣。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工逐样, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人打肝。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓脂新,卻偏偏與公主長得像,于是被迫代替她去往敵國和親粗梭。 傳聞我的和親對象是個殘疾皇子争便,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容