亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

java語(yǔ)言

java教程之Java編程基礎(chǔ)

時(shí)間:2024-09-12 08:21:32 java語(yǔ)言 我要投稿
  • 相關(guān)推薦

java教程之Java編程基礎(chǔ)

  Java語(yǔ)言由語(yǔ)法規(guī)則和類(lèi)庫(kù)兩部分組成,其中語(yǔ)法規(guī)則確定了Java程序的書(shū)寫(xiě)規(guī)范,學(xué)習(xí)好語(yǔ)法規(guī)則是Java語(yǔ)言,也是所有編程語(yǔ)言的基本功。本文主要向大家簡(jiǎn)單介紹一下Java的語(yǔ)法規(guī)則。 Java語(yǔ)言與C/C++語(yǔ)言有著緊密的聯(lián)系,Java中的許多術(shù)語(yǔ)來(lái)自于C++,起語(yǔ)法也來(lái)自于C++。因此Java的語(yǔ)法和c++的語(yǔ)法計(jì)劃一模一樣。下面簡(jiǎn)單介紹一下Java的具體語(yǔ)法。

  一、Java的詞法

  1、標(biāo)識(shí)符

  標(biāo)識(shí)符是類(lèi)、變量和方法等的名字,作用是讓編譯器能夠識(shí)別它們。在Java語(yǔ)言中,標(biāo)識(shí)符可以包含數(shù)字、字母、下劃線(_)和美圓符號(hào)($),但是不能以數(shù)字作為開(kāi)頭。與C/C++語(yǔ)言不同的是,Java語(yǔ)言還可以將一些非拉丁字母包含在標(biāo)識(shí)符中,這是因?yàn)镴ava語(yǔ)言使用的是Unicode字符,所有的十六進(jìn)制00C0以上的Unicode字符都可以用在標(biāo)識(shí)符中。但是Java語(yǔ)言的關(guān)鍵字是不能用來(lái)作為標(biāo)識(shí)符的。

  我們?cè)谑褂脴?biāo)識(shí)符的時(shí)候應(yīng)該盡量表達(dá)所要表示的類(lèi)、變量、方法等的含義。另外,標(biāo)識(shí)符中可以使用下劃線,我們應(yīng)該充分利用這一點(diǎn)以提高程序的可讀性。

  2、關(guān)鍵字

  以下是Java的全部關(guān)鍵字:

  abstract double int strictfp** boolean else interface super break extends long switch byte final native synchronized case finally new this catch float package throw char for private throws class goto* protected transient const* if public try continue implements return void default import short volatile do instanceof static while * 尚未使用的關(guān)鍵字 ** 為Java 2增加的關(guān)鍵字

  3、注釋

  Java有三種形式的注釋?zhuān)?/p>

  第一種是C語(yǔ)言的傳統(tǒng)注釋方式,即將“/*”和“*/”之間的文本都視為注釋?zhuān)@種注釋可以跨越多行。

  第二種是C++風(fēng)格的注釋?zhuān)磳ⅰ?/”之后直到行尾的文本都視為注釋?zhuān)@種注釋只能包含一行。

  第三種是Java新增加的注釋方式,即將“/**”和“*/”之間的文本都視為注釋?zhuān)@種注釋也可以夸耀多行。注意,這種注釋方式生成的注釋將作為Javadoc文檔保存。

  二、操作符

  1、算術(shù)操作符

操作符用途優(yōu)先級(jí)結(jié)合性
++,-- 自動(dòng)遞增,自動(dòng)遞減 2(僅次于括號(hào))從右到左
+,- 一元加,一元減 2從右到左
*,/乘,除3從左到右
%取余(求模)3從左到右
+,-加,減4從左到右

  2、布爾運(yùn)算與關(guān)系運(yùn)算符

操作符用途優(yōu)先級(jí)結(jié)合性
 
 >,<,>=,<=測(cè)試相對(duì)大小6從左到右
==測(cè)試相等性7從左到右
!=測(cè)試不等性7從左到右
?:根據(jù)第一個(gè)操作數(shù)返回后兩個(gè)操作數(shù)之一13從左到右
!2從右到左
&布爾與8從左到右
^異或9從左到右
|布爾或10從左到右
&&條件與11從左到右
|| 條件或12從左到右

  3、位操作符

操作符用途優(yōu)先級(jí)結(jié)合性
~非(位求補(bǔ))2從右到左
<<,>>左移,右移5從左到右
>>>當(dāng)作無(wú)符號(hào)右移5從左到右
&位和8從左到右
^位異或9從左到右
|位或10從左到右

  4、賦值操作符

操作符用途優(yōu)先級(jí)結(jié)合性
=賦值14從右到左
*=操作同時(shí)賦值14從右到左
/=操作同時(shí)賦值14從右到左
  %=操作同時(shí)賦值14從右到左
-=操作同時(shí)賦值14從右到左
+=操作同時(shí)賦值14從右到左
>>=操作同時(shí)賦值14從右到左
<<=操作同時(shí)賦值14從右到左
>>>=操作同時(shí)賦值14從右到左
^=操作同時(shí)賦值 14從右到左
|=操作同時(shí)賦值14從右到左
&=操作同時(shí)賦值14從右到左

  5、特殊操作符

  cast操作符將一種數(shù)據(jù)類(lèi)型轉(zhuǎn)換成為另一種數(shù)據(jù)類(lèi)型,cast應(yīng)寫(xiě)成把要校正操作數(shù)的類(lèi)型名放在括號(hào)中。

  例如:

  int i; long l; l=7876547; i=(int)l;

  如果給高精度的變量賦予一個(gè)低精度值,則不需校正。類(lèi)型校正操作符的優(yōu)先級(jí)為2,結(jié)合性為從右到左結(jié)合。

  將以上講到的操作符的優(yōu)先級(jí)總結(jié)如下:

優(yōu)先級(jí)運(yùn)算符  結(jié)合順序
1 []數(shù)組運(yùn)算 .點(diǎn)運(yùn)算符 ()調(diào)用方法從左到右
 2 ! ~ ++ -- +(一元加) -(一元減) ()強(qiáng)制類(lèi)型轉(zhuǎn)換 new 從右到左
 3 * / % 從左到右
 4+(二元加) -(二元減)從左到右
 5 >> << >>>從左到右
 6 < <= > >= instanceof從左到右
 7 == !=從左到右
8 &從左到右
9^從左到右
10 |從左到右
 11 &&從左到右
 12 ||從左到右
 13 ?:從左到右
 14   = += -= *= /= %= &= |= ^= <<= >>= >>>=從右到左 

  三、常量

  1、整型常量

  在Java語(yǔ)言中,整型常量有三種形式,它們分別是:十進(jìn)制、八進(jìn)制、十六進(jìn)制。需要注意的是十進(jìn)制數(shù)不能以0開(kāi)頭,這是因?yàn)榘诉M(jìn)制的數(shù)是以0開(kāi)頭的,而十六進(jìn)制數(shù)以0x或0X開(kāi)頭。

  2、浮點(diǎn)型常量

  浮點(diǎn)數(shù)只能表示十進(jìn)制數(shù)。浮點(diǎn)數(shù)有兩種表示方法,即標(biāo)準(zhǔn)表示法和科學(xué)記數(shù)法。浮點(diǎn)數(shù)又分為單精度數(shù)和雙精度數(shù)。

  3、布爾型常量

  布爾型常量有兩個(gè)值:ture(或TURE)和false(或FALSE)它們分別表示真和假,這兩個(gè)值用來(lái)表示事物的狀態(tài),它們必居其一。通過(guò)測(cè)量布爾值可以判斷是否執(zhí)行某個(gè)步驟。

  4、字符型常量

  字符型常量是一個(gè)單一的字符,其形式是由兩個(gè)單引號(hào)引起來(lái)的一個(gè)字符。但是兩個(gè)單引號(hào)引起來(lái)的不能是單引號(hào)和反斜杠,即‘’和‘’是不正確的寫(xiě)法。

  大家一定要記住,Java語(yǔ)言中的字符是16位的Unicode字符,這與C/C++等語(yǔ)言是不一樣的。

  字符串常量

  字符串常量是由雙引號(hào)引起來(lái)的一系列字符,與C/C++語(yǔ)言中不同的是,Java語(yǔ)言中的字符串不是通過(guò)字符數(shù)組來(lái)實(shí)現(xiàn)的,而是通過(guò)字符串類(lèi)(即String類(lèi))來(lái)實(shí)現(xiàn)的。

  四、變量和數(shù)據(jù)類(lèi)型

  在Java中,數(shù)據(jù)的類(lèi)型可以分為四種:基本數(shù)據(jù)類(lèi)型、數(shù)組類(lèi)型、類(lèi)和接口類(lèi)型。任何數(shù)據(jù)都一定是上述數(shù)據(jù)類(lèi)型的一種。

  其中基本數(shù)據(jù)類(lèi)型可以分為四大類(lèi):布爾型、字符型、整數(shù)型和浮點(diǎn)型。這些類(lèi)型的數(shù)據(jù)與前面介紹的常量的類(lèi)型基本相同,在此不再多說(shuō)。下面將整數(shù)型和浮點(diǎn)型變量的取值范圍列出:

  表一、

類(lèi)型寬度取值范圍
byte8位-256到256
short16位-32768到32767
int 32位 -2147483648到2147483647
long 64位 -9223372036854775808到9223372036854775807

  表二、

進(jìn)制 整數(shù)長(zhǎng)整數(shù)
十進(jìn)制最大正整數(shù)2147483647(2的31次方減1) 923372036854775807L(2的63次方減1)
八進(jìn)制最大正整數(shù)077777777777(2的31次方減1) 07777777777777777777L(2的63次方減1)
二進(jìn)制最小負(fù)整數(shù)020000000000(-2的31次方) 04000000000000000000L(-2的63次方)
十六進(jìn)制最大正整數(shù)0x7fffffff(2的31次方減1) 0x7fffffffffffffffL(2的63次方減1)
十六進(jìn)制最小負(fù)整數(shù) 0x80000000(-2的31次方) 0x8000000000000000L(-2的63次方)

  浮點(diǎn)數(shù)能表示的數(shù)值從小到大分別是:負(fù)無(wú)窮大、負(fù)有限值、負(fù)零、正零、正有限值及正無(wú)窮大。其中正零和負(fù)零在進(jìn)行數(shù)值比較的時(shí)候是相等的,但仍有辦法分辨這兩個(gè)值,例如在進(jìn)行1.0/0.0的時(shí)候會(huì)得到正無(wú)窮大的結(jié)果。其它非零非無(wú)窮大的有限值是以s*m*(2^e)來(lái)表示的,s和m的取值范圍見(jiàn)下表:

  表三、

類(lèi)型s m
float +1或-1 小于2的24次方的正整數(shù) 149到104的整數(shù) 
double +1或-1 小于2的53次方的正整數(shù) 1045到1000的整數(shù)

  與C/C++語(yǔ)言中不同的是,在Java語(yǔ)言中,所有的基本數(shù)據(jù)類(lèi)型都有預(yù)設(shè)值,就是說(shuō)當(dāng)我們聲明一個(gè)變量時(shí),即使我們沒(méi)有對(duì)它賦值,它的值也是一定的,而不像在C/C++中那樣是不可預(yù)測(cè)的。

  五、Java與C/C++的比較

  由于Java的語(yǔ)法直接來(lái)源于C/C++,所以Java的程序控制語(yǔ)句與C/C++一模一樣,在此不再多說(shuō)。以下重點(diǎn)介紹一下Java與C/C++的不同。

  指針

  大家在使用C語(yǔ)言編程的時(shí)候想必都曾經(jīng)因?yàn)橹羔樀膹?fù)雜計(jì)算而煩惱,在C/C++語(yǔ)言編程過(guò)程中,指針可能引起許多錯(cuò)誤,這些復(fù)雜的指針?biāo)惴ㄋa(chǎn)生的錯(cuò)誤常常讓人迷惑不解,導(dǎo)致C/C++程序員在此浪費(fèi)了大量的時(shí)間?紤]到這種原因,Java中取消了指針。指針的功能由參考(reference)所取代,這使得Java中對(duì)復(fù)雜數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)更加容易,因?yàn)橛脤?duì)象和對(duì)象數(shù)組實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)更可靠。

  函數(shù)

  在Java中沒(méi)有C/C++中應(yīng)用廣泛的函數(shù),C/C++中通過(guò)函數(shù)實(shí)現(xiàn)的功能在Java中都是通過(guò)類(lèi)和方法來(lái)實(shí)現(xiàn)的。

  繼承

  C++支持多重繼承,這是一個(gè)從多個(gè)父類(lèi)中派生一個(gè)類(lèi)的有效辦法,但這種派生很復(fù)雜,也很容易產(chǎn)生問(wèn)題。因此,Java中沒(méi)有采用多重繼承,但Java的Objective C協(xié)議接口能完成C++中多重繼承的所有功能。

  goto語(yǔ)句

  大家知道,在使用高級(jí)語(yǔ)言編程時(shí)過(guò)多的使用goto語(yǔ)句會(huì)使程序變得十分混亂,因此Java中也沒(méi)有使用goto語(yǔ)句。但是不可否認(rèn),當(dāng)程序比較容易控制的時(shí)候,適當(dāng)使用goto語(yǔ)句能使程序的運(yùn)行更快捷,因此Java中使用了多重break和continue語(yǔ)句(允許break和continue語(yǔ)句使用標(biāo)簽)實(shí)現(xiàn)C++種goto語(yǔ)句的功能。

  聯(lián)合和結(jié)構(gòu)

  在C++中有三種數(shù)據(jù)結(jié)構(gòu):聯(lián)合、結(jié)構(gòu)和類(lèi);Java中只有類(lèi),它可以實(shí)現(xiàn)上述三者的功能。

  字符串

  在C/C++中,字符串是通過(guò)字符數(shù)組實(shí)現(xiàn)的,但是由于數(shù)組的空間不是動(dòng)態(tài)分配的,這容易出現(xiàn)越界錯(cuò)誤,例如:常有預(yù)先設(shè)定的字符數(shù)組不能容納后輸入的字符串。在Java中,字符串是一類(lèi)特定的對(duì)象,這使得字符串更具有一致性和可預(yù)見(jiàn)性。

  Typedef、Define和預(yù)處理器

  Java中不需要#define語(yǔ)句、預(yù)處理器或者typedef,但需要頭文件。在Java中一個(gè)類(lèi)的信息必須包含在一個(gè)文件中,而C/C++中有關(guān)類(lèi)的信息可能分散在多個(gè)文件中。

  數(shù)據(jù)類(lèi)型的自動(dòng)強(qiáng)制轉(zhuǎn)換

  在Java中強(qiáng)制一種類(lèi)型的數(shù)據(jù)元素變成一種不太精確的數(shù)據(jù)類(lèi)型需要編程人員采用預(yù)測(cè)方法。

  希望通過(guò)以上內(nèi)容的介紹,能夠給你帶來(lái)幫助。

【java教程之Java編程基礎(chǔ)】相關(guān)文章:

Java語(yǔ)言編程基礎(chǔ)知識(shí)04-18

解析Java的設(shè)計(jì)模式編程之解釋器模式的運(yùn)用04-02

Java語(yǔ)言的編程特點(diǎn)03-18

Java編程學(xué)習(xí)示例04-03

Java編程語(yǔ)言應(yīng)用的行業(yè)03-18

java面向?qū)ο缶幊讨v解04-02

Java基礎(chǔ)知識(shí)精選02-20

Java基礎(chǔ)學(xué)習(xí)步驟03-18

Java編程節(jié)省內(nèi)存的方法12-16