java變數和識別符號
阿新 • • 發佈:2020-12-05
目錄
識別符號(Identifier)
- Java 對各種變數、方法和類等要素命名時使用的字元序列稱為識別符號
- 技巧:凡是自己可以起名字的地方都叫識別符號。
- 定義合法識別符號規則:
- 識別符號可以由字母、數字、下劃線(_)、美元符($)組成,但不能包含 @、%、空格等其它特殊字元。
- 不能以數字開頭。
- 識別符號是嚴格區分大小寫的。
- 識別符號的命名最好能反映出其作用,做到見名知意。
Java中的名稱命名規範
- 包名:多單片語成時所有字母都小寫:xxxyyyzzz
- 類名、介面名:多單片語成時,所有單詞的首字母大寫:XxxYyyZzz
- 變數名、方法名:多單片語成時,第一個單詞首字母小寫,第二個單詞開始每個
單詞首字母大寫:xxxYyyZzz - 常量名:所有字母都大寫。多單詞時每個單詞用下劃線連線:XXX_YYY_ZZZ
關鍵字(keyword)
- 定義:被Java語言賦予了特殊含義,用做專門用途的字串(單詞)
- 特點:關鍵字中所有字母都為小寫
官方地址: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
注:在java語言中已經被賦予特定意義的一些單詞。一共有53個關鍵字。其中有兩個保留字:const和goto。關鍵字不能被用作識別符號!!
- 保留字(reserved word)
現有Java版本尚未使用,但以後版本可能會作為關鍵字使用。自己命名識別符號時要避免使用這些保留字
goto 、const
註釋(comment)
Java程式碼的解釋說明。不影響程式的執行,用於輔助讀程。
//單行註釋
/*
多行註釋
多行註釋
多行註釋
*/
/**
文件註釋
@auther 作者
@version 版本
@createdate 日期
*/
變數(variable)
變數的概念:
1.記憶體中的一個儲存區域
2.該區域的資料可以在同一類型範圍內不斷變化
3.變數是程式中最基本的儲存單元。包含變數型別、變數名和儲存的值
變數的作用:
用於在記憶體中儲存資料
使用變數注意:
-
Java中每個變數必須先宣告,後使用
-
使用變數名來訪問這塊區域的資料
-
變數的作用域:其定義所在的一對{ }內
-
變數只有在其作用域內才有效
-
同一個作用域內,不能定義重名的變數
-
宣告變數
語法:<資料型別> <變數名稱>
例如:int var; -
變數的賦值
語法:<變數名稱> = <值>
例如:var = 10; -
宣告和賦值變數
語法: <資料型別> <變數名> = <初始化值>
例如:int var = 10;
變數的分類
-
按資料型別
對於每一種資料都定義了明確的具體資料型別(強型別語言),在記憶體中分
配了不同大小的記憶體空間。
-
按宣告的位置的不同
在方法體外,類體內宣告的變數稱為成員變數。
在方法體內部宣告的變數稱為區域性變數。
注意:二者在初始化值方面的異同:
同:都有生命週期
異:區域性變數除形參外,需顯式初始化。
基本資料型別
基本資料型別
位bit 位元組byte 1byte=8bit
型別名稱 | 位元組空間 | 取值範圍 | |
---|---|---|---|
整數型 | byte | 1 | -27到27-1 或者 -128到127 |
short | 2 | -215到215-1 | |
int | 4 | -231到231-1 | |
long | 8 | -263到263-1 | |
浮點型 | float | 4 | 單精度,對小數部分的精度要求不高 |
double | 8 | 雙精度,精確的小數部分並操作值很大時 | |
字元 | char | 2 | 0到65535 |
布林 | boolean | 1 | 真true 假false |
基本型別的字面值(5條)
- 整數字面值是int型別
int a = 999999999;//錯,右側是int型別,但是超出範圍
- byte,short,char三種比int小的整數可以用範圍內的值直接賦值
byte b=127;//對
byte b=128;//錯,右面已經超過byte範圍是int型別的資料
- 浮點數的字面值是double型別
double a=3.14;//對
float a=3.14;//錯,右面是double,float是四位元組double是八位元組存不下
- 字面值字尾l f d
L –long 如:long a = 99999999999;//錯,超出範圍,解決方案加L
F –float 如:float a = 3.14;//錯,右面是double型別,解決方案加F
D –double 如:double a=3;//錯,右面是int,解決方案加D或者改成3.0
基本型別的型別轉換
- 小到大(隱式轉換)
Byte a =120;
Int b=a;//直接轉
- 大到小(顯式轉換)
需要強制型別轉換
注意:小數轉成整數,小數直接捨棄
int xx = 356;
byte y=(byte) xx;
運算規則(5條)
- 計算結果的資料型別,與最大型別一致
3/2 得1 ,而不是1.5,結果是int型別
3d/2 得1.5,相當於double/int,結果是double型別
- byte,short,char三種比int小的整數,運算時會先自動轉換成int
byte a=3;
byte b=4;
byte c=a+b;//錯,執行時,byte會先自動轉成int再運算,int+int還是int
- 整數運算溢位
整數運算,類似於一箇中標,轉到最大時,再轉會回到最小。
計算:光速執行一年的長度是多少米
System.out.println(300000000*60*60*24*365);
System.out.println(300000000l*60*60*24*365);
- 浮點數運算不精確
java提供瞭解決方案,後面就會講到。
System.out.println(1-0.8);
System.out.println(4.35*100);
- 浮點數的特殊值
Infinity 無窮大 3.14/0
Nan not a number 0/0.0
二進位制
- Java整數常量預設是int型別,當用二進位制定義整數時,其第32位是符號位;
當是long型別時,二進位制預設佔64位,第64位是符號位 - 二進位制的整數有如下三種形式:
- 原碼:直接將一個數值換成二進位制數。最高位是符號位
- 負數的反碼:是對原碼按位取反,只是最高位(符號位)確定為1。
- 負數的補碼:其反碼加1。
- 計算機以二進位制補碼的形式儲存所有的整數。
- 正數的原碼、反碼、補碼都相同
- 負數的補碼是其反碼+1
為什麼要使用原碼、反碼、補碼錶示形式呢?
計算機辨別“符號位”顯然會讓計算機的基礎電路設計變得十分複雜! 於是人們想出了將符號位也參與運算的方法. 我們知道, 根據運演算法則減去一個正數等於加上一個負數, 即: 1-1 = 1 + (-1) = 0 , 所以機器可以只有加法而沒有減法, 這樣計算機運算的設計就更簡單了。
進位制字首
0x - 16進位制
0 -8進位制
\u -char型別,16進位制