天天看點

Java文法基礎(一)----關鍵字、辨別符、常量、變量

一、關鍵字:

關鍵字:被java語言賦予特定含義的單詞。組成關鍵字的字母全部小寫。注:goto和const作為保留字存在,目前并不使用。main并不是關鍵字。

Java文法基礎(一)----關鍵字、辨別符、常量、變量
Java文法基礎(一)----關鍵字、辨別符、常量、變量

二、辨別符:

辨別符:就是給類,接口,方法,變量等起名字時使用的字元序列。

組成規則:英文大小寫字母、數字字元、$和_

注意事項:不能以數字開頭、不能是java中的關鍵字、區分大小寫

我們通常會給下面的這些東西起一個辨別符:

包、類或者接口、方法和變量、常量

三、注釋:

單行注釋的格式: //注釋文字

多行注釋的格式: /*  注釋文字  */

文檔注釋的格式:/** 注釋文字 */    

注:多行注釋不能嵌套使用,而單行是可以的。

文檔注釋:被javadoc工具解析成一個說明書,面向對象部分的知識中會用到。

四、常量、進制和進制轉換

常量:在程式執行的過程中其值不可以發生改變

java中常量分類:

字面值常量

自定義常量(面向對象部分講)

1、常見常量:

字元串常量:用雙引号括起來的内容

整數常量、

小數常量、

字元常量:用單引号括起來的内容

布爾常量:較為特有,隻有true和false

空常量:null(數組部分講解)

2、進制與轉換:

java針對整數常量提供了4種表現形式:二進制、八進制、十進制、十六進制。

八進制的整數以0開頭,十六進制的整數以0x開頭。

注:現在的計算機系統很少用八進制的了。二進制表示法太冗長,是以在程式中一般喜歡用十六進制

二進制與八進制的轉換:

Java文法基礎(一)----關鍵字、辨別符、常量、變量

二進制與十六進制的轉換:

Java文法基礎(一)----關鍵字、辨別符、常量、變量

3、有符号資料表示法:

在計算機内,有符号數有3種表示法:原碼、反碼和補碼。所有資料的運算都是采用補碼進行的。

原碼:就是二進制定點表示法,即最高位為符号位,“0”表示正,“1”表示負,其餘位表示數值的大小。

反碼:正數的反碼與其原碼相同;負數的反碼是對其原碼按照位取反,但符号位(最高位)不變。

補碼:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。

Java文法基礎(一)----關鍵字、辨別符、常量、變量

主要原因:使用補碼,可以将符号位和其它位統一處理;同時,減法也可按加法來處理。

另外,兩個用補碼表示的數相加時,如果最高位(符号位)有進位,則進位被舍棄。

五、變量:

變量概述:在程式執行的過程中,在某個範圍内其值可以發生改變的量

變量定義格式:資料類型 變量名 = 初始化值;

注:java語言是強類型語言,對于每一種資料都定義了明确的具體資料類型,在記憶體總配置設定了不同大小的記憶體空間

變量按資料類型劃分:

Java文法基礎(一)----關鍵字、辨別符、常量、變量

注:引用類型中還有一種特殊的null類型。所謂引用資料類型就是對一個對象的引用,對象包括執行個體和數組兩種。實際上,引用類型變量就是一個指針,隻是java中沒有指針這個說法。

變量按被聲明的位置劃分:

局部變量:方法或語句塊内部定義的變量

成員變量:方法外部、類的内部定義的變量

六、八種基本資料類型和類型轉換:

1、計算機存儲資料的基本機關:

位元組(byte)是:計算機檔案大小的基本計算機關。

1個位元組(byte) = 8個位(bit)

bit意為“位”或“比特”,是計算機運算的基礎;二進制中的一位,是二進制最小資訊機關。二進位可以用來表示一個簡單的正/負的判斷,有兩種狀态的開關(如電燈開關)。

說明:

在記憶體計算過程中,位元組少的資料運算速度更快;

在硬碟存儲中,位元組少的資料類型也可充分存入更多的資料。

2、八種基本資料類型:

Java文法基礎(一)----關鍵字、辨別符、常量、變量
Java文法基礎(一)----關鍵字、辨別符、常量、變量

注:

(1)整數預設:int。聲明long型常量必須在數字後面加‘l’或‘l’ ,如: long l1 = 88888888888l; //必須加l否則會出錯

(2)浮點型常量(小數)預設:double。聲明一個float型常量,則需在數字後面加 f 或 f ,如:double d = 12345.6; //正确   float f = 12.3f; //必須加f否則會出錯

(3)java 字元采用 unicode 編碼,每個字元占兩個位元組,因而可用十六進制編碼形式表示。注:unicode是全球語言統一編碼。java語言中的字元char可以存儲一個中文漢字,因為java語言中的字元占用兩個位元組。

(4)boolean 類型适于邏輯運算,一般用于程式流程控制。

boolean 類型資料隻允許取值 true 或 false ,不可以 0 或非 0 的整數替代 true 和 false ,這點和c語言不同。

(5)byte、short在定義的時候,他們接收的其實是一個int類型的值。這個是自己做了一個資料檢測的,如果不再它們的範圍内,就報錯。

128:10000000

-128:10000000 (這裡的1即是符号位,也是數值位)

使用變量注意事項:

作用域:變量定義在哪一級大括号中,哪個大括号的範圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。

初始化值:沒有初始化值不能直接使用

在一行上建議隻定義一個變量:可以定義多個,但是不建議

3、資料類型轉換:

注:boolean類型不能轉換為其他的資料類型

預設轉換:(從小到大的轉換)

byte,short,char—int—long—float—double

byte,short,char互相之間補轉換,他們參與運算首先轉換為int類型

強制轉換:

目标類型 變量名=(目标類型)(被轉換的資料);

總結:那麼,我們到底用那種轉換呢?

一般建議,最好不要随意使用強制類型轉換,容易造成資料精度的損失。

(1)容量大的資料類型轉換為容量小的資料類型時,要加上強制轉換符,但可能造成精度降低或溢出;使用時要格外注意。

(2)有多種類型的資料混合運算時,系統首先自動的将所有資料轉換成容量最大的那一種資料類型,然後再進行計算。

面試題:

a:下面兩種方式有差別嗎?

float f1 = 12.345f;

float f2 = (float)12.345;

答案:有差別:f1其實是通過一個double類型轉換過來的;而f2本身就是一個float類型。

b:下面的程式有問題嗎,如果有,在哪裡呢?

byte b1 = 3;

byte b2 = 4;

byte b3 = b1 + b2;

byte b4 = 3 + 4;

答案:byte b3 = b1 + b2;是有問題的。因為變量相加,會首先看類型問題,最終把結果指派的也會考慮類型問題。

常量相加,先把結果計算出來,然後看是否在byte的範圍内,如果不是,才報錯。

c:下面的操作結果是什麼呢?

byte b = (byte)130;

  system.out.println(b);

答案:-126

d:字元參與運算:是查找ascii裡面的值

'a' 97

'a' 65

'0' 48

system.out.println('a');

system.out.println('a' + 1);

e:字元串參與運算:這裡其實是字元串的拼接

system.out.println("hello"+'a'+1);

system.out.println('a'+1+"hello");

system.out.println("5+5="+5+5);

system.out.println(5+5+"=5+5");

注:這裡的+不是加法運算,而是字元串連接配接符。