【天天Java系列】02_变量与运算符
文章目錄
- 1.關鍵字(keyword)
- 2.標識符
- 3.變量
- 3.1為什么需要變量?
- 3.2初識變量
- 3.3Java中變量的數據類型
- 3.4 變量的使用
- 3.4.1 變量的聲明
- 3.4.2 變量的賦值
- 4.基本數據類型
- 4.1 整數類型:byte、short、int、long
- 4.1.1 補充:計算機存儲單位
- 4.2 浮點類型:float、double
- 4.2.1 應用案例
- 4.3 字符類型:char
- 4.4 布爾類型:boolean
- 5.基本數據類型變量間運算規則
- 5.1自動類型提升
- 5.2 強制類型轉換
- 5.3 基本數據類型與String的運算
- 5.3.1 字符串類型String
- 5.3.2 運算規則
- 5.3.3 案例與練習
- 6. 計算機底層如何存儲數據
- 6.1 進制的分類
- 6.3 二進制的由來
- 6.4 二進制轉十進制
- 7. 運算符(Operator)(掌握)
- 7.1算術運算符
- 7.1.1 基本語法
- 7.4 邏輯運算符
- 7.4.1 基本語法
- 7.5 條件運算符
- 7.5.1 基本語法
- 7.6.3 與 if-else 的轉換關系
- 7.7 運算符優先級
1.關鍵字(keyword)
定義:被Java語言賦予特殊含義、用做專門用途的字符串(或單詞),例如class、public、static、void等,這些單詞已經被Java定義好了。
特點:全部關鍵字都是小寫字母。
2.標識符
Java中變量、方法、類等要素命名時使用的字符序列,稱為標識符。凡是自己可以起名字的地方都叫標識符。
標識符命名規則:
- 由26個英文字母大小寫,數字,_或$組成
- 數字不可以開頭
- 不可以使用關鍵字和保留字,但能包含關鍵字和保留字
- Java中嚴格區分大小寫,長度無限制
- 標識符不能包含空格
練習:
- class
- int
- public
- 12x
- Apple
標識符的命名規范:(“見名知意”)
- 包名:多單詞組成時所有字母都小寫:xxyyzz。例如:java.lang
- 類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxYyZz。例如:HelloWorld,String,System等
- 變量名、方法名:多單詞組成時,第一個單詞手寫字母,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz。例如:age,name,getName,setName
- 常量名:所有字母都大寫。多單詞時每個單詞下劃線連接:XXX_YYY_ZZZ。例如:MAX_VALUEM、PI
3.變量
3.1為什么需要變量?
變量是程序中不可或缺的組成單位,最基本的存儲單元
3.2初識變量
變量的概念
- 內存中的一個存儲區域,該區域的數據可以在同一類型范圍內不斷變化
- 變量的構成包含三個要素:數據類型、變量名、存儲的值
- Java中變量聲明的格式:數據類型 變量名 = 變量值
變量的作用:用于在內存中保存數據
注意:
- Java中每個變量必須先聲明,后使用
- 使用變量名來訪問這塊區域的數據
- 變量的作用域:其定義所在的一隊{}內
- 變量只有在其作用域內才有效。出了作用域,變量不可以再被調用。
- 同一個作用域內,不能定義重名的變量
3.3Java中變量的數據類型
Java中數據類型分為兩大類:
- 基本數據類型:包括整數類型、浮點數類型、字符型類型、布爾類型
- 引用數據類型:包括數組、類、接口、枚舉、注解、記錄
3.4 變量的使用
3.4.1 變量的聲明
//存儲一個整數類型的年齡 int age; //存儲一個小數類型的體重 double weight; //存儲一個單字符類型的性別 char gender; //存儲一個布爾類型的婚姻狀態 boolean marry; //存儲一個字符串類型的姓名 String name; //聲明多個同類型的變量 int a,b,c; //表示 a,b,c 三個變量都是 int 類型。注意:變量的數據類型可以是基本數據類型,也可以是引用數據數據類型。
3.4.2 變量的賦值
給變量賦值,就是把“值”存到該變量代表的內存空間中。同時,給變量賦的值類型必須與變量聲明的類型一致或兼容。
變量賦值的語法格式:
變量名 = 值;
舉例 1:可以使用合適類型的常量值給已經聲明的變量賦值 age = 18; weight = 109; gender = '女'; 舉例 2:可以使用其他變量或者表達式給變量賦值 int m = 1; int n = m;int x = 1; int y = 2; int z = 2 * x + y;變量可以反復賦值
//先聲明,后初始化 char gender; gender = '女'; //給變量重新賦值,修改 gender 變量的值 gender = '男'; System.out.println("gender = " + gender);//gender = 男```舉例 4:也可以將變量的聲明和賦值一并執行 boolean isBeauty = true; String name = "迪麗熱巴";4.基本數據類型
4.1 整數類型:byte、short、int、long
- 定義 long 類型的變量,賦值時需要以"l"或"L"作為后綴。
- Java 程序中變量通常聲明為 int 型,除非不足以表示較大的數,才使用 long。
- Java 的整型常量默認為 int 型。
4.1.1 補充:計算機存儲單位
字節(Byte):是計算機用于計量存儲容量的基本單位,一個字節等于 8 bit。
位(bit):是數據存儲的最小單位。二進制數系統中,每個 0 或 1 就是一個位,叫做 bit
(比特),其中 8 bit 就稱為一個字節(Byte)。
轉換關系:
8 bit = 1 Byte
1024 Byte = 1 KB
1024 KB = 1 MB
1024 MB = 1 GB
1024 GB = 1 TB
4.2 浮點類型:float、double
float:單精度,尾數可以精確到 7 位有效數字。很多情況下,精度很難滿足需求。
double:雙精度,精度是 float 的兩倍。通常采用此類型。
定義 float 類型的變量,賦值時需要以"f"或"F"作為后綴。
Java 的浮點型常量默認為 double 型
4.2.1 應用案例
案例 1:定義圓周率并賦值為 3.14,現有 3 個圓的半徑分別為 1.2、2.5、6,求
它們的面積。
案例 2:小明要到美國旅游,可是那里的溫度是以華氏度為單位記錄的。 它需
要一個程序將華氏溫度(80 度)轉換為攝氏度,并以華氏度和攝氏度為單位分
別顯示該溫度
4.3 字符類型:char
char 型數據用來表示通常意義上的字符(占2個字節)
Java中的所有字符都使用Unicode編碼,故一個字符可以存儲一個字母,一個漢字,或其他書面語的一個字符。
字符型變量的三種表現形式:
4.4 布爾類型:boolean
boolean類型用來判斷邏輯條件,一般用于流程控制語句中:
- if 條件控制語句
- while循環控制語句
- for循環控制語句
- do-while循環控制語句
boolean類型數據只有兩個值:true、false
不可以使用 0 或非 0 的整數替代 false 和 true,這點和 C 語言不同
舉例:
5.基本數據類型變量間運算規則
在Java程序中,不同的基本數據類型(只有7種,不包含boolean類型)變量的值經常需要進行相互轉換。
轉換的方式有兩種:自動類型提升和強制類型轉換。
5.1自動類型提升
規則:將取值范圍小(或容量小)的類型自動提升為取值范圍大(或容量大)
的類型 。
5.2 強制類型轉換
規則:將取值范圍大(或容量大)的類型強制轉換成取值范圍小(或容量小)
的類型。
自動類型提升是 Java 自動執行的,而強制類型轉換是自動類型提升的
逆運算,需要我們自己手動執行。
轉換格式:
數據類型 1 變量名 = (數據類型 1)被強轉數據值; //()中的數據類型必須<=變量值
的數據類型
5.3 基本數據類型與String的運算
5.3.1 字符串類型String
- String不是基本數據類型,屬于引用數據類型
- 使用一對" "來表示一個字符串,內部可以包含0個、1個或多個字符。聲明方式與基本數據類型類似。例如:String str = “字符串”;
5.3.2 運算規則
1、任意八種基本數據類型的數據與 String 類型只能進行連接“+”運算,且結果 一定也是 String 類型 System.out.println("" + 1 + 2);//12 int num = 10; boolean b1 = true; String s1 = "abc"; String s2 = s1 + num + b1; System.out.println(s2);//abc10true //String s3 = num + b1 + s1;//編譯不通過,因為 int 類型不能與 boolean 運算 String s4 = num + (b1 + s1);//編譯通過 2、String 類型不能通過強制類型()轉換,轉為其他的類型 String str = "123"; int num = (int)str;//錯誤的 int num = Integer.parseInt(str);//正確的,后面才能講到,借助包裝類的方法 才能轉5.3.3 案例與練習
案例:公安局身份登記
要求填寫自己的姓名、年齡、性別、體重、婚姻狀況(已婚用 true 表示,單身
用 false 表示)、聯系方式等等。
6. 計算機底層如何存儲數據
計算機世界中只有二進制,所以計算機中存儲和運算的所有數據都要轉為二進
制。包括數字、字符、圖片、聲音、視頻等
6.1 進制的分類
十進制(decimal) – 數字組成:0-9 – 進位規則:滿十進一 二進制(binary) class BinaryTest { public static void main(String[] args) { int num1 = 123; //十進制 int num2 = 0b101; //二進制 int num3 = 0127; //八進制 int num4 = 0x12aF; //十六進制 System.out.println(num1); System.out.println(num2); System.out.println(num3); System.out.println(num4); } }6.3 二進制的由來
二進制,是計算技術中廣泛采用的一種數制,由德國數理哲學大師萊布尼茨于
1679 年發明。
二進制數據是用 0 和 1 兩個數碼來表示的數。它的基數為 2,進位規則是“逢二
進一”。
二進制廣泛應用于我們生活的方方面面。比如,廣泛使用的摩爾斯電碼
(Morse Code),它由兩種基本信號組成:短促的點信號“·”,讀“滴”;保持一
定時間的長信號“—”,讀“嗒”。然后,組成了 26 個字母,從而拼寫出相應的單
詞。
6.4 二進制轉十進制
二進制如何表示整數?
計算機數據的存儲使用二進制補碼形式存儲,并且最高位是符號位。 – 正數:最高位是 0 – 負數:最高位是 1 規 定 – 正數的補碼與反碼、原碼一樣,稱為三碼合一
– 負數的補碼與反碼、原碼不一樣:
負數的原碼:把十進制轉為二進制,然后最高位設置為 1
負數的反碼:在原碼的基礎上,最高位不變,其余位取反(0 變 1,1 變 0)
負數的補碼:反碼+1
二進制轉十進制:權相加法
7. 運算符(Operator)(掌握)
運算符是一種特殊的符號,用以表示數據的運算、賦值和比較等。
運算符的分類:
按照功能分為:算術運算符、賦值運算符、比較(或關系)運算符、邏輯運算符、位運算
符、條件運算符、Lambda 運算符
按照操作個數分為:
一元運算符(單目運算符)、二元運算符(雙目運算符)、三元運算符 (三目運算符)
7.1算術運算符
7.1.1 基本語法
舉例 1:加減乘除模 public class ArithmeticTest1 { public static void main(String[] args) { int a = 3; int b = 4; System.out.println(a + b);// 7 System.out.println(a - b);// -1 System.out.println(a * b);// 12 System.out.println(a / b);// 計算機結果是 0,為什么不是 0.75 呢? System.out.println(a % b);// 3//結果與被模數符號相同System.out.println(5%2);//1 System.out.println(5%-2);//1 System.out.println(-5%2);//-1 System.out.println(-5%-2);//-1 //商*除數 + 余數 = 被除數 //5%-2 ==>商是-2,余數時 1 (-2)*(-2)+1 = 5 //-5%2 ==>商是-2,余數是-1 (-2)*2+(-1) = -4-1=-5 } } 舉例 2:“+”號的兩種用法 第一種:對于+兩邊都是數值的話,+就是加法的意思 第二種:對于+兩邊至少有一邊是字符串的話,+就是拼接的意思 public class ArithmeticTest2 { public static void main(String[] args) { // 字符串類型的變量基本使用 // 數據類型 變量名稱 = 數據值; String str1 = "Hello"; System.out.println(str1); // Hello System.out.println("Hello" + "World"); // HelloWorld String str2 = "Java"; // String + int --> String System.out.println(str2 + 520); // Java520 // String + int + int // String + int // String System.out.println(str2 + 5 + 20); // Java520 } } 舉例 3:自加自減運算 理解:++ 運算,表示自增 1。同理,-- 運算,表示自減 1,用法與++ 一致。 1、單獨使用 ? 變量在單獨運算的時候,變量前++和變量后++,是沒有區別的。 ? 變量前++ :例如 ++a 。 ? 變量后++ :例如 a++ 。 public class ArithmeticTest3 { public static void main(String[] args) { // 定義一個 int 類型的變量 a int a = 3; //++a; a++;// 無論是變量前++還是變量后++,結果都是 4 System.out.println(a); } }2、復合使用 ? 和其他變量放在一起使用或者和輸出語句放在一起使用,前++和后++就產生了不 同。 ? 變量前++ :變量先自增 1,然后再運算。 ? 變量后++ :變量先運算,然后再自增 1。 public class ArithmeticTest4 { public static void main(String[] args) { // 其他變量放在一起使用 int x = 3; //int y = ++x; // y 的值是 4,x 的值是 4, int y = x++; // y 的值是 3,x 的值是 4 System.out.println(x); System.out.println(y); System.out.println("==========");// 和輸出語句一起 int z = 5; //System.out.println(++z);// 輸出結果是 6,z 的值也是 6 System.out.println(z++);// 輸出結果是 5,z 的值是 6 System.out.println(z);} }```## 7.2 賦值運算符 ### 7.2.1 基本語法```java 符號:= – 當“=”兩側數據類型不一致時,可以使用自動類型轉換或使用強制類型轉換 原則進行處理。 – 支持連續賦值。 擴展賦值運算符: +=、 -=、*=、 /=、%= 賦值運 算符 符號解釋 += 將符號左邊的值和右邊的值進行相加操作,最后將結 果賦值給左邊的變量 -= 將符號左邊的值和右邊的值進行相減操作,最后將結 果賦值給左邊的變量 *= 將符號左邊的值和右邊的值進行相乘操作,最后將結 果賦值給左邊的變量 /= 將符號左邊的值和右邊的值進行相除操作,最后將結 果賦值給左邊的變量 %= 將符號左邊的值和右邊的值進行取余操作,最后將結 果賦值給左邊的變量 public class SetValueTest1 { public static void main(String[] args) { int i1 = 10; long l1 = i1; //自動類型轉換 byte bb1 = (byte)i1; //強制類型轉換 int i2 = i1; //連續賦值的測試 //以前的寫法 int a1 = 10; int b1 = 10; //連續賦值的寫法 int a2,b2; a2 = b2 = 10; int a3 = 10,b3 = 20; //舉例說明+= -= *= /= %= int m1 = 10; m1 += 5; //類似于 m1 = m1 + 5 的操作,但不等同于。 System.out.println(m1);//15 //練習 1:開發中,如何實現一個變量+2 的操作呢? // += 的操作不會改變變量本身的數據類型。其他拓展的運算符也如此。 //寫法 1:推薦 short s1 = 10; s1 += 2; //編譯通過,因為在得到 int 類型的結果后,JVM 自動完成一步 強制類型轉換,將 int 類型強轉成 short System.out.println(s1);//12 //寫法 2: short s2 = 10; //s2 = s2 + 2;//編譯報錯,因為將 int 類型的結果賦值給 short 類型的 變量 s 時,可能損失精度 s2 = (short)(s2 + 2); System.out.println(s2); //練習 2:開發中,如何實現一個變量+1 的操作呢? //寫法 1:推薦 int num1 = 10; num1++; System.out.println(num1); //寫法 2: int num2 = 10; num2 += 1; System.out.println(num2); //寫法 3: int num3 = 10; num3 = num3 + 1; System.out.println(num3); } }``` ## 7.3 比較運算符 ```java比較運算符的結果都是 boolean 型,也就是要么是 true,要么是 false。 ? > < >= <= :只適用于基本數據類型(除 boolean 類型之外) == != :適用于基本數據類型和引用數據類型 ? 比較運算符“==”不能誤寫成“=” 舉例: class CompareTest { public static void main(String[] args) { int i1 = 10; int i2 = 20; System.out.println(i1 == i2);//false System.out.println(i1 != i2);//true System.out.println(i1 >= i2);//false int m = 10; int n = 20; System.out.println(m == n);//false System.out.println(m = n);//20 boolean b1 = false; boolean b2 = true; System.out.println(b1 == b2);//false System.out.println(b1 = b2);//true } } 思考: boolean b1 = false; //區分好==和=的區別。 if(b1 == true) //if(b1 = true) System.out.println("結果為真"); else System.out.println("結果為假");7.4 邏輯運算符
7.4.1 基本語法
邏輯運算符,操作的都是 boolean 類型的變量或常量,而且運算得結果也是 boolean 類 型的值。 運算符說明: – & 和 &&:表示"且"關系,當符號左右兩邊布爾值都是 true 時,結果才能 為 true。否則,為 false。 – | 和 || :表示"或"關系,當符號兩邊布爾值有一邊為 true 時,結果為 true。當兩邊都為 false 時,結果為 false – ! :表示"非"關系,當變量布爾值為 true 時,結果為 false。當變量布爾值 為 false 時,結果為 true。 – ^ :當符號左右兩邊布爾值不同時,結果為 true。當兩邊布爾值相同時, 結果為 false。 ? 理解:異或,追求的是“異”! 邏輯運算符用于連接布爾型表達式,在 Java 中不可以寫成 3 < x < 6,應該寫成 x > 3 & x < 6 。 區分“&”和“&&”: – 相同點:如果符號左邊是 true,則二者都執行符號右邊的操作 – 不同點:& : 如果符號左邊是 false,則繼續執行符號右邊的操作 && :如果符號左邊是 false,則不再繼續執行符號右邊的操作 – 建議:開發中,推薦使用 && 區分“|”和“||”: — 相同點:如果符號左邊是 false,則二者都執行符號右邊的操作 — 不同點:| : 如果符號左邊是 true,則繼續執行符號右邊的操作|| :如果符號左邊是 true,則不再繼續執行符號右邊的操作 建議:開發中,推薦使用 || 代碼舉例: public class LoginTest { public static void main(String[] args) { int a = 3; int b = 4; int c = 5; // & 與,且;有 false 則 false System.out.println((a > b) & (a > c)); System.out.println((a > b) & (a < c)); System.out.println((a < b) & (a > c)); System.out.println((a < b) & (a < c)); System.out.println("==============="); // | 或;有 true 則 true System.out.println((a > b) | (a > c)); System.out.println((a > b) | (a < c)); System.out.println((a < b) | (a > c)); System.out.println((a < b) | (a < c)); System.out.println("==============="); // ^ 異或;相同為 false,不同為 true System.out.println((a > b) ^ (a > c)); System.out.println((a > b) ^ (a < c)); System.out.println((a < b) ^ (a > c)); System.out.println((a < b) ^ (a < c)); System.out.println("==============="); // ! 非;非 false 則 true,非 true 則 false System.out.println(!false); System.out.println(!true);//&和&&的區別System.out.println((a > b) & (a++ > c));System.out.println("a = " + a);System.out.println((a > b) && (a++ > c));System.out.println("a = " + a);System.out.println((a == b) && (a++ > c));System.out.println("a = " + a);//|和||的區別System.out.println((a > b) | (a++ > c));System.out.println("a = " + a);System.out.println((a > b) || (a++ > c));System.out.println("a = " + a);System.out.println((a == b) || (a++ > c));System.out.println("a = " + a); } }7.5 條件運算符
7.5.1 基本語法
條件運算符格式:
(條件表達式)? 表達式 1:表達式 2
說明:條件表達式是 boolean 類型的結果,根據 boolean 的值選擇表達式 1 或表達式 2
如果運算后的結果賦給新的變量,要求表達式 1 和表達式 2 為同種或兼容的類型
7.6.3 與 if-else 的轉換關系
凡是可以使用條件運算符的地方,都可以改寫為 if-else 結構。反之,不成立。
開發中,如果既可以使用條件運算符,又可以使用 if-else,推薦使用條件運算符。因為
執行效率稍高
7.7 運算符優先級
運算符有不同的優先級,所謂優先級就是在表達式運算中的運算符順序。
上一行中的運算符總是優先于下一行的。
總結
以上是生活随笔為你收集整理的【天天Java系列】02_变量与运算符的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大一计算机组装实验报告,计算机硬件系统及
- 下一篇: jQuery放大镜实现