Day02——Java新手學習
1.常量的概述和使用
- A:什麼是常量
- 在程式執行的過程中其值不可以發生改變
- B:Java中常量的分類
- 字面值常量
- 自定義常量(物件導向部分講)
- C:字面值常量的分類
- 字串常量 用雙引號括起來的內容
- 整數常量 所有整數
- 小數常量 所有小數
- 字元常量 用單引號括起來的內容,裡面只能放單個數字,單個字母或單個符號
- 布林常量 較為特殊,只有true和false
- 空常量 null(陣列部分講解)
2.進位制概述和二,八,十六進位制圖解
- A:什麼是進位制
- 進位制:就是進位制,是人們規定的一種進位方法。 對於任何一種進位制–X進位制,就表示某一位置上的數運算時是逢X進一位。二進位制就是逢二進一,八進位制是逢八進一,十進位制是逢十進一,十六進位制是逢十六進一。
- 例如一週有七天,七進位制,一年有十二個月,十二進位制
- B:十進位制的由來
- 十進位制的由來是因為人類有十個手指
- C:二進位制的由來
- 18世紀德國數理哲學大師萊布尼茲從他的傳教士朋友鮑威特寄給他的拉丁文譯本《易經》中,讀到了八卦的組成結構,驚奇地發現其基本素數(0)(1),即《易經》的陰爻yao- -和__陽爻,其進位制就是二進位制,並認為這是世界上數學進位制中最先進的。20世紀被稱作第三次科技革命的重要標誌之一的計算機的發明與應用,其運算模式正是二進位制。它不但證明了萊布尼茲的原理是正確的,同時也證明了《易經》數理學是很了不起的。
- D:八進位制的由來
- 任何資料在計算機中都是以二進位制的形式存在的。二進位制早期由電訊號開關演變而來。一個整數在記憶體中一樣也是二進位制的,但是使用一大串的1或者0組成的數值進行使用很麻煩。
- 所以就想把一大串縮短點,將二進位制中的三位用一位表示。這三位可以取到的最大值就是7.超過7就進位了,這就是八進位制。
- E:十六進位制的由來
- 但是對於過長的二進位制變成八進位制還是較長,所以出現的用4個二進位制位表示一位的情況,四個二進位制位最大是15,這就是十六進位制。
- F:不同進製表現同一個資料的形式特點
- 進位制越大,表現形式越短
3.不同進位制資料的表現形式
- 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
4.任意進位制到十進位制的轉換
- A:任意進位制到十進位制的轉換原理
- 係數:就是每一位上的資料。
- 基數:X進位制,基數就是X。
- 權:在右邊,從0開始編號,對應位上的編號即為該位的權。
- 結果:把係數*基數的權次冪相加即可。
5.十進位制到任意進位制的轉換
- A:十進位制到任意進位制的轉換原理
- 除積倒取餘
- 除積倒取餘
6.快速的進位制轉換法
- A:8421碼及特點
- 8421碼是中國大陸的叫法,8421碼是BCD程式碼中最常用的一種。在這種編碼方式中每一位二值程式碼的1都是代表一個固定數值,把每一位的1代表的十進位制數加起來,得到的結果就是它所代表的十進位制數碼。
- B:通過8421碼的方式進行二進位制和十進位制的相互轉換
- C:二進位制到八進位制的簡易方式
- D:二進位制到十六進位制的簡易方式
7.原碼反碼補碼
- A:為什麼要學習原碼反碼補碼?
- 後面要學習強制型別轉換,如果不知道有原反補會看不懂結果
- B:有符號資料表示法的幾種方式
- 原碼
- 就是二進位制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其餘位表示數值的大小。
- 通過一個位元組,也就是8個二進位制位表示+7和-7
- 0(符號位) 0000111
- 1(符號位) 0000111
- 反碼
- 正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
- 補碼
- 正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
- 正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
- 原碼
8.變數的概述及格式
- A:什麼是變數
- 在程式執行的過程中,在某個範圍內其值可以發生改變的量
- B:變數的定義格式
- 資料型別 變數名 = 變數值;
- C:為什麼要定義變數
- 用來不斷的存放同一型別的常量,並可以重複使用
9.資料型別的概述和分類
- A:為什麼有資料型別
- Java語言是強型別語言,對於每一種資料都定義了明確的具體資料型別,在記憶體中分配了不同大小的記憶體空間
- B:Java中資料型別的分類
- 基本資料型別
- 引用資料型別
- 物件導向部分講解
- C:基本資料型別分類(4類8種)
- 整數型
- byte 佔一個位元組 -128到127
- short 佔兩個字 -215~215-1
- int 佔四個位元組 -231~231-1
- long 佔八個位元組 -263~263-1
- 浮點型
- float 佔兩個位元組 -3.403E38~3.403E38
- double 佔四個位元組-1.798E308~1.798E308
- 字元型
- char 佔兩個位元組 0~65535
- 布林型
- boolean
- boolean理論上是佔八分之一個位元組,因為一個開關就可以決定是true和false了,但是java中boolean型別沒有明確指定他的大小
- boolean理論上是佔八分之一個位元組,因為一個開關就可以決定是true和false了,但是java中boolean型別沒有明確指定他的大小
- boolean
- 整數型
10.定義不同資料型別的變數
- A:
- 定義不同基本資料型別的變數,並輸出
- 賦值時候注意float型別,long型別
11.使用變數的注意事項
- A:
- a:作用域問題
- 同一個區域不能使用相同的變數名
- b:初始化值問題
- 區域性變數在使用之前必須賦值
- c:一條語句可以定義幾個變數
- int a,b,c…;
- int a,b,c…;
- a:作用域問題
12.資料型別轉換之隱式轉換
- A:
- a:int + int
- b:byte + int
- B:Java中的預設轉換規則
- 取值範圍小的資料型別與取值範圍大的資料型別進行運算,會先將小的資料型別提升為大的,再運算
- 取值範圍小的資料型別與取值範圍大的資料型別進行運算,會先將小的資料型別提升為大的,再運算
13.資料型別轉換之強制轉換
- A:強制轉換問題
- int a = 10;
- byte b = 20;
- b = a + b;
- B:強制轉換的格式
- b = (byte)(a + b);
- C:強制轉換的注意事項
- 如果超出了被賦值的資料型別的取值範圍得到的結果會與你期望的結果不同
14.面試題之變數相加和常量相加的區別
- 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了
- 3和4都是常量,java有常量優化機制,就是在編譯的的時候直接把3和4的結果賦值給b4了
15.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 > 28^38 = 22338 = 2*2^114 > 2^63-1
-
16.字元和字串參與運算
-
A:案例演示
- System.out.println(‘a’);
- System.out.println(‘a’+1);
-
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");
17.char資料型別
- A:char c = 97; 0到65535
- B:Java語言中的字元char可以儲存一箇中文漢字嗎?為什麼呢?
- 可以。因為Java語言採用的是Unicode編碼。Unicode編碼中的每個字元佔用兩個位元組。中文也是佔的兩個位元組
- 所以,Java中的字元可以儲存一箇中文漢字
18.算術運算子的基本用法
- A:什麼是運算子
- 就是對常量和變數進行操作的符號。
- B:運算子的分類
- 算術運算子,賦值運算子,比較(關係或條件)運算子,邏輯運算子,位運算子,三目(元)運算子
- C:算數運算子有哪些
- +,-,*,/,%,++,–
- D:注意事項:
- a:+號在java中有三種作用,代表正號,做加法運算,字串的連線符
- b:整數相除只能得到整數。如果想得到小數,必須把資料變化為浮點數型別
- c:/獲取的是除法操作的商,%獲取的是除法操作的餘數
- %運算子
- 當左邊的絕對值小於右邊絕對值時,結果是左邊
- 當左邊的絕對值等於右邊或是右邊的倍數時,結果是0
- 當左邊的絕對值大於右邊絕對值時,結果是餘數
- %運算子結果的符號只和左邊有關係,與右邊無關
- 任何一個正整數%2結果不是0就是1可以用來當作切換條件
19.算術運算子++和–的用法
- A:++,–運算子的作用
- 自加(++)自減(–)運算
- ++:自加。對原有的資料進行+1
- –:自減。對原有的資料進行-1
- B:案例演示
- a:單獨使用:
- 放在運算元的前面和後面效果一樣。(這種用法是我們比較常見的)
- b:參與運算使用:
- 放在運算元的前面,先自增或者自減,然後再參與運算。
- 放在運算元的後面,先參與運算,再自增或者自減。
- a:單獨使用:
20.算術運算子++和–的練習
-
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;
- 問哪句會報錯,為什麼
21.賦值運算子的基本用法
- A:賦值運算子有哪些
-
a:基本的賦值運算子:=
- 把=右邊的資料賦值給左邊。
-
b:擴充套件的賦值運算子:+=,-=,*=,/=,%=
- += 把左邊和右邊做加法,然後賦值給左邊。
- += 把左邊和右邊做加法,然後賦值給左邊。
-
22.賦值運算子的面試題
- A:案例演示
- 面試題:看下面的程式是否有問題,如果有問題,請指出並說明理由。
- short s=1;s = s+1;
- short s=1;s+=1;
23.關係運算子的基本用法及其注意事項
- A:關係運算子有哪些(比較運算子,條件運算子)
- ==,!=,>,>=,<,<=
- 注意事項:
-
無論你的操作是簡單還是複雜,結果是boolean型別。
-
“==“不能寫成”=”。
-
相關文章
- java 學習筆記 day02Java筆記
- Day04——Java新手學習Java
- Day07——Java新手學習Java
- 新手應該如何學習JAVAJava
- Java新手學習Java專案打日誌Java
- 尚矽谷Java基礎——學習程式碼和筆記_day02Java筆記
- Java新手學習路線,0基礎學習Java怎樣效率更高?Java
- Java新手入門學習路線圖Java
- 新手學習Java,如何快速從入門到精通!Java
- 學習設計模式——建立型模式day02設計模式
- 傳智黑馬python基礎學習——day02Python
- 新手Java學習路線乾貨教材 《Java Web開發實戰》JavaWeb
- 新手學習Java需要了解的幾個知識點!Java
- 如何入門java(附帶新手推薦學習資料)Java
- 新手學習的法則
- 新手java如何自學,java大神的自學路線Java
- JavaScript新手入門學習系列JavaScript
- 新手怎麼學習Java?千鋒Java進階全套影片合集助你升職加薪Java
- 0基礎新手該如何學習Python?學習技巧!Python
- java學習之道 --- 如何學習java?Java
- 0基礎新手該如何學習Python?分享學習技巧!Python
- 給新手學習MySQL的建議MySql
- 新手學習laravel踩坑記錄Laravel
- 如何學習Python,新手如何入門Python
- 新手如何學習Python基礎?該如何正確學習呢?Python
- laravel版本更新特快,新手該如何學習Laravel
- 從Java新手到大神需要學哪些知識?Java
- 新手參加java培訓都學什麼Java
- Day02
- Java學習Java
- Linux新手入門怎麼學?如何學習好Linux?Linux
- 適合新手的Java學習路線圖,從零到一系統掌握Java知識點Java
- Java學習自學Java
- 深度學習框架新手快速上手指南深度學習框架
- vue難不難?新手學習多久能上手?Vue
- 強烈推薦Python新手學習之——字典Python
- Android輸入法開發 新手學習指引Android
- ES6新手學習知識點整理