自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

開發(fā) 后端
本文介紹的是java程序設(shè)計(jì)語(yǔ)言編程的一些基礎(chǔ)知識(shí),希望對(duì)大家有幫助,一起來(lái)看。

Java語(yǔ)言由語(yǔ)法規(guī)則和類庫(kù)兩部分組成,其中語(yǔ)法規(guī)則確定了Java程序的書寫規(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í)符是類、變量和方法等的名字,作用是讓編譯器能夠識(shí)別它們。在Java語(yǔ)言中,標(biāo)識(shí)符可以包含數(shù)字、字母、下劃線(_)和美圓符號(hào)($),但是不能以數(shù)字作為開頭。與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á)所要表示的類、變量、方法等的含義。另外,標(biāo)識(shí)符中可以使用下劃線,我們應(yīng)該充分利用這一點(diǎn)以提高程序的可讀性。

2、關(guān)鍵字

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

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

3、注釋

Java有三種形式的注釋:

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

第二種是C++風(fēng)格的注釋,即將“//”之后直到行尾的文本都視為注釋,這種注釋只能包含一行。

第三種是Java新增加的注釋方式,即將“/**”和“*/”之間的文本都視為注釋,這種注釋也可以夸耀多行。注意,這種注釋方式生成的注釋將作為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ù)類型轉(zhuǎn)換成為另一種數(shù)據(jù)類型,cast應(yīng)寫成把要校正操作數(shù)的類型名放在括號(hào)中。

例如:

  1. int i;   
  2. long l;   
  3. l=7876547;   
  4. i=(int)l;  

如果給高精度的變量賦予一個(gè)低精度值,則不需校正。類型校正操作符的優(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)制類型轉(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開頭,這是因?yàn)榘诉M(jìn)制的數(shù)是以0開頭的,而十六進(jìn)制數(shù)以0x或0X開頭。

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)和反斜杠,即‘’和‘\’是不正確的寫法。

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

字符串常量

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

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

在Java中,數(shù)據(jù)的類型可以分為四種:基本數(shù)據(jù)類型、數(shù)組類型、類和接口類型。任何數(shù)據(jù)都一定是上述數(shù)據(jù)類型的一種。
其中基本數(shù)據(jù)類型可以分為四大類:布爾型、字符型、整數(shù)型和浮點(diǎn)型。這些類型的數(shù)據(jù)與前面介紹的常量的類型基本相同,在此不再多說(shuō)。下面將整數(shù)型和浮點(diǎn)型變量的取值范圍列出:

表一、

類型 寬度 取值范圍
byte 8位 -256到256
short 16位 -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的取值范圍見下表:

表三、

類型 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ù)類型都有預(yù)設(shè)值,就是說(shuō)當(dāng)我們聲明一個(gè)變量時(shí),即使我們沒有對(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中沒有C/C++中應(yīng)用廣泛的函數(shù),C/C++中通過(guò)函數(shù)實(shí)現(xiàn)的功能在Java中都是通過(guò)類和方法來(lái)實(shí)現(xiàn)的。

繼承

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

goto語(yǔ)句

大家知道,在使用高級(jí)語(yǔ)言編程時(shí)過(guò)多的使用goto語(yǔ)句會(huì)使程序變得十分混亂,因此Java中也沒有使用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)和類;Java中只有類,它可以實(shí)現(xiàn)上述三者的功能。

字符串

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

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

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

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

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

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

責(zé)任編輯:于鐵 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2019-11-07 09:20:29

Java線程操作系統(tǒng)

2011-07-21 08:43:38

2009-06-22 09:23:18

事件監(jiān)聽器

2017-07-18 10:14:23

OracleMerge into教程

2011-06-30 10:36:22

JSF

2011-06-30 10:49:27

2017-09-19 14:53:37

Java并發(fā)編程并發(fā)代碼設(shè)計(jì)

2012-03-09 10:44:11

Java

2016-08-31 14:01:31

MySQL存儲(chǔ)數(shù)據(jù)庫(kù)

2021-03-10 15:59:39

JavaSynchronize并發(fā)編程

2011-06-08 15:21:18

多維數(shù)組

2009-07-06 13:29:09

Servlet教程

2011-04-14 10:38:58

Java編程Java

2011-07-05 14:42:46

java

2020-05-29 07:20:00

Java8異步編程源碼解讀

2020-07-06 08:03:32

Java悲觀鎖樂觀鎖

2009-07-24 09:20:15

數(shù)組實(shí)例

2009-06-17 11:23:00

Java多線程

2009-06-10 18:18:43

Java GUI用戶界面

2011-04-15 09:20:56

ASP.NET MVC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)