02.01_Java語言基礎(常量的概述和使用)(掌握) A:什麼是常量 在程式執行的過程中其值不可以發生改變 B:Java中常量的分類 字面值常量 自定義常量(面向對象部分講) C:字面值常量的分類 字元串常量 用雙引號括起來的內容 整數常量 所有整數 小數常量 所有小數 字元常量 用單引號括起來 ...
02.01_Java語言基礎(常量的概述和使用)(掌握)
- A:什麼是常量
- 在程式執行的過程中其值不可以發生改變
- B:Java中常量的分類
- 字面值常量
- 自定義常量(面向對象部分講)
-
C:字面值常量的分類
- 字元串常量 用雙引號括起來的內容
- 整數常量 所有整數
- 小數常量 所有小數
- 字元常量 用單引號括起來的內容,裡面只能放單個數字,單個字母或單個符號
- 布爾常量 較為特殊,只有true和false
- 空常量 null(數組部分講解)
-
D:案例演示
- 用輸出語句輸出各種常量。null不演示
02.02_Java語言基礎(進位概述和二,八,十六進位圖解)(瞭解)
- A:什麼是進位
- 進位:就是進位制,是人們規定的一種進位方法。 對於任何一種進位--X進位,就表示某一位置上的數運算時是逢X進一位。二進位就是逢二進一,八進位是逢八進一,十進位是逢十進一,十六進位是逢十六進一。
- 例如一周有七天,七進位,一年有十二個月,十二進位
- B:十進位的由來
- 十進位的由來是因為人類有十個手指
- C:二進位的由來
- 其實二進位來源與中國,請看史料記載
- 18世紀德國數理哲學大師萊布尼茲從他的傳教士朋友鮑威特寄給他的拉丁文譯本《易經》中,讀到了八卦的組成結構,驚奇地發現其基本素數(0)(1),即《易經》的陰爻yao- -和__陽爻,其進位制就是二進位,並認為這是世界上數學進位中最先進的。20世紀被稱作第三次科技革命的重要標誌之一的電腦的發明與應用,其運算模式正是二進位。它不但證明瞭萊布尼茲的原理是正確的,同時也證明瞭《易經》數理學是很了不起的。
- D:八進位的由來
- 任何數據在電腦中都是以二進位的形式存在的。二進位早期由電信號開關演變而來。一個整數在記憶體中一樣也是二進位的,但是使用一大串的1或者0組成的數值進行使用很麻煩。
- 所以就想把一大串縮短點,將二進位中的三位用一位表示。這三位可以取到的最大值就是7.超過7就進位了,這就是八進位。
- E:十六進位的由來
- 但是對於過長的二進位變成八進位還是較長,所以出現的用4個二進位位表示一位的情況,四個二進位位最大是15,這就是十六進位。
- F:不同進位表現同一個數據的形式特點
- 進位越大,表現形式越短
02.03_Java語言基礎(不同進位數據的表現形式)(掌握)
- A:二進位的數據表現形式
- 由0,1組成。以0b(b可以大寫也可以小寫)開頭(JDK1.7版本可以表示二進位了)
- B:八進位的數據表現形式
- 由0,1,…7組成。以0開頭
- C:十進位的數據表現形式
- 由0,1,…9組成。整數預設是十進位的
- D:十六進位的數據表現形式
- 由0,1,…9,a,b,c,d,e,f(大小寫均可)。以0x開頭
- E:案例演示
- 輸出不同進位表現100的數據。
- 0b100
- 0100
- 100
- 0x100
02.04_Java語言基礎(任意進位到十進位的轉換圖解)(瞭解)
- A:任意進位到十進位的轉換原理
- 繫數:就是每一位上的數據。
- 基數:X進位,基數就是X。
- 權:在右邊,從0開始編號,對應位上的編號即為該位的權。
- 結果:把繫數*基數的權次冪相加即可。
- B:畫圖練習
- 二進位--十進位
- 八進位--十進位
- 十六進位--十進位
02.05_Java語言基礎(十進位到任意進位的轉換圖解)(瞭解)
- A:十進位到任意進位的轉換原理
- 除積倒取餘
- B:畫圖練習
- 十進位--二進位
- 十進位--八進位
- 十進位--十六進位
02.06_Java語言基礎(快速的進位轉換法)(瞭解)
- A:8421碼及特點
- 8421碼是中國大陸的叫法,8421碼是BCD代碼中最常用的一種。在這種編碼方式中每一位二值代碼的1都是代表一個固定數值,把每一位的1代表的十進位數加起來,得到的結果就是它所代表的十進位數位。
- B:通過8421碼的方式進行二進位和十進位的相互轉換
- C:二進位到八進位的簡易方式
- D:二進位到十六進位的簡易方式
02.07_Java語言基礎(原碼反碼補碼)(瞭解)
- A:為什麼要學習原碼反碼補碼?
- 後面要學習強制類型轉換,如果不知道有原反補會看不懂結果
- B:有符號數據表示法的幾種方式
- 原碼
- 就是二進位定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。
- 通過一個位元組,也就是8個二進位位表示+7和-7
- 0(符號位) 0000111
- 1(符號位) 0000111
- 反碼
- 正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
- 補碼
- 正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
- 原碼
02.08_Java語言基礎(原碼反碼補碼的練習)(瞭解)
- A:已知原碼求補碼
- 0b10110100
- B:已知補碼求原碼
- 0b11101110
02.09_Java語言基礎(變數的概述及格式)(掌握)
- A:什麼是變數
- 在程式執行的過程中,在某個範圍內其值可以發生改變的量
- B:變數的定義格式
- 數據類型 變數名 = 變數值;
- C:為什麼要定義變數
- 用來不斷的存放同一類型的常量,並可以重覆使用
02.10_Java語言基礎(數據類型的概述和分類)(掌握)
- A:為什麼有數據類型
- Java語言是強類型語言,對於每一種數據都定義了明確的具體數據類型,在記憶體中分配了不同大小的記憶體空間
- B:Java中數據類型的分類
- 基本數據類型
- 引用數據類型
- 面向對象部分講解
- C:基本數據類型分類(4類8種)
- 整數型
- byte 占一個位元組 -128到127
- short 占兩個字 -2^15~2^15-1
- int 占四個位元組 -2^31~2^31-1
- long 占八個位元組 -2^63~2^63-1
- 浮點型
- float 占四個位元組 -3.403E38~3.403E38 單精度
- double 占八個位元組-1.798E308~1.798E308 雙精度
- 字元型
- char 占兩個位元組 0~65535
- 布爾型
- boolean
- boolean理論上是占八分之一個位元組,因為一個開關就可以決定是true和false了,但是java中boolean類型沒有明確指定他的大小
- boolean
- 整數型
02.11_Java語言基礎(定義不同數據類型的變數)(掌握)
- A:案例演示
- 定義不同基本數據類型的變數,並輸出
- 賦值時候註意float類型,long類型
02.12_Java語言基礎(使用變數的註意事項)(掌握)
- A:案例演示
- a:作用域問題
- 同一個區域不能使用相同的變數名
- b:初始化值問題
- 局部變數在使用之前必須賦值
- c:一條語句可以定義幾個變數
- int a,b,c...;
- a:作用域問題
02.13_Java語言基礎(數據類型轉換之隱式轉換)(掌握)
- A:案例演示
- a:int + int
- b:byte + int
- B:Java中的預設轉換規則
- 取值範圍小的數據類型與取值範圍大的數據類型進行運算,會先將小的數據類型提升為大的,再運算
- C:畫圖解釋byte+int類型的問題
02.14_Java語言基礎(數據類型轉換之強制轉換)(掌握)
- A:強制轉換問題
- int a = 10;
- byte b = 20;
- b = a + b;
- B:強制轉換的格式
- b = (byte)(a + b);
- C:強制轉換的註意事項
- 如果超出了被賦值的數據類型的取值範圍得到的結果會與你期望的結果不同
02.15_Java語言基礎(面試題之變數相加和常量相加的區別)(掌握)
- A:案例演示
- 面試題:看下麵的程式是否有問題,如果有問題,請指出並說明理由。
- byte b1 = 3;
- byte b2 = 4;
- byte b3 = b1 + b2;
- 從兩方面去回答這個題
- b1和b2是兩個變數,變數裡面存儲的值都是變化的,所以在程式運行中JVM是無法判斷裡面具體的值
- byte類型的變數在進行運算的時候,會自動類型提升為int類型
- byte b4 = 3 + 4;
- 3和4都是常量,java有常量優化機制,就是在編譯的的時候直接把3和4的結果賦值給b4了
02.16_Java語言基礎(long與float的取值範圍誰大誰小)(瞭解)
-
進行混合運算的時候,byte,short,char不會相互轉換,都會自動類型提升為int類型,其他類型進行混合運算的是小的數據類型提升為大的
-
byte,short,char -- int -- long -- float -- double
-
long: 8個位元組
- float:4個位元組
- IEEE754
- 4個位元組是32個二進位位
- 1位是符號位
- 8位是指數位
- 00000000 11111111
- 0到255
- 1到254
- -126到127
- 23位是尾數位
-
每個指數位減去127
-
A:它們底層的存儲結構不同。
- B:float表示的數據範圍比long的範圍要大
- long:2^63-1
- float:3.410^38 > 210^38 > 2*8^38 = 22^3^38 = 22^114 > 2^63-1
-
02.17_Java語言基礎(字元和字元串參與運算)(掌握)
-
A:案例演示
- System.out.println('a');
-
System.out.println('a'+1);
-
通過看結果知道'a'的值是多少,由此引出ASCII碼表
- B:ASCII碼表的概述
- 記住三個值:
- '0' 48
- 'A' 65
- 'a' 97
- 記住三個值:
- C:案例演示
- System.out.println("hello"+'a'+1);
- System.out.println('a'+1+"hello");
- D:+在有字元串參與中被稱為字元串連接符
- System.out.println("5+5="+5+5);
- System.out.println(5+5+"=5+5");
02.18_Java語言基礎(char數據類型)(掌握)
- A:char c = 97; 0到65535
- B:Java語言中的字元char可以存儲一個中文漢字嗎?為什麼呢?
- 可以。因為Java語言採用的是Unicode編碼。Unicode編碼中的每個字元占用兩個位元組。中文也是占的兩個位元組
- 所以,Java中的字元可以存儲一個中文漢字
02.19_Java語言基礎(算術運算符的基本用法)(掌握)
- A:什麼是運算符
- 就是對常量和變數進行操作的符號。
- B:運算符的分類
- 算術運算符,賦值運算符,比較(關係或條件)運算符,邏輯運算符,位運算符,三目(元)運算符
- C:算數運算符有哪些
- +,-,*,/,%,++,--
- D:註意事項:
- a:+號在java中有三種作用,代表正號,做加法運算,字元串的連接符
- b:整數相除只能得到整數。如果想得到小數,必須把數據變化為浮點數類型
- c:/獲取的是除法操作的商,%獲取的是除法操作的餘數
- %運算符
- 當左邊的絕對值小於右邊絕對值時,結果是左邊
- 當左邊的絕對值等於右邊或是右邊的倍數時,結果是0
- 當左邊的絕對值大於右邊絕對值時,結果是餘數
- %運算符結果的符號只和左邊有關係,與右邊無關
- 任何一個正整數%2結果不是0就是1可以用來當作切換條件
02.20_Java語言基礎(算術運算符++和--的用法)(掌握)
- A:++,--運算符的作用
- 自加(++)自減(--)運算
- ++:自加。對原有的數據進行+1
- --:自減。對原有的數據進行-1
- B:案例演示
- a:單獨使用:
- 放在操作數的前面和後面效果一樣。(這種用法是我們比較常見的)
- b:參與運算使用:
- 放在操作數的前面,先自增或者自減,然後再參與運算。
- 放在操作數的後面,先參與運算,再自增或者自減。
- a:單獨使用:
02.21_Java語言基礎(算術運算符++和--的練習)(掌握)
-
A:案例演示
- 請分別計算出a,b,c的值?
-
int a = 10; int b = 10; int c = 10; a = b++; c = --a; b = ++a; a = c--;
-
B:案例演示
-
請分別計算出x,y的值?
int x = 4; int y = (x++)+(++x)+(x*10);
-
- C:面試題
- byte b = 10;
- b++;
- b = b + 1;
- 問哪句會報錯,為什麼
02.22_Java語言基礎(賦值運算符的基本用法)(掌握)
-
A:賦值運算符有哪些
-
a:基本的賦值運算符:=
- 把=右邊的數據賦值給左邊。
-
b:擴展的賦值運算符:+=,-=,*=,/=,%=
- += 把左邊和右邊做加法,然後賦值給左邊。
-
02.23_Java語言基礎(賦值運算符的面試題)(掌握)
- A:案例演示
- 面試題:看下麵的程式是否有問題,如果有問題,請指出並說明理由。
- short s=1;s = s+1;
- short s=1;s+=1;
02.24_Java語言基礎(關係運算符的基本用法及其註意事項)(掌握)
- A:關係運算符有哪些(比較運算符,條件運算符)
- ==,!=,>,>=,<,<=
-
註意事項:
-
無論你的操作是簡單還是複雜,結果是boolean類型。
-
"=="不能寫成"="。
-