一、常量的概述和使用
A:什么是常量
* 在程序執行的過程中其值不可以發生改變
B:Java中常量的分類
* 字面值常量
* 自定義常量(面向對象部分講)
C:字面值常量的分類
* 字符串常量 用雙引號括起來的內容
* 整數常量 所有整數
* 小數常量 所有小數
* 字符常量 用單引號括起來的內容,里面只能放單個數字,單個字母或單個符號
* 布爾常量 較為特殊,只有true和false
* 空常量 null(數組部分講解)
二、不同進制數據的表現形式
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開頭
三、變量的概述及格式
A:什么是變量
* 在程序執行的過程中,在某個范圍內其值可以發生改變的量
B:變量的定義格式
* 數據類型 變量名 = 變量值;
C:為什么要定義變量
* 用來不斷的存放同一類型的常量,并可以重復使用
四、數據類型的概述和分類
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類型沒有明確指定他的大小
五、定義不同數據類型的變量
//整數類型byte b = 10; //占一個字節,-128 到 127short s = 20; //占兩個字節int i = 30; //占四個字節 整數默認的數據類型就是int類型long x = 8888888888L; //占八個字節 如果long類型后面加L進行標識最好加大L,因為小l太像一了//浮點類型float f = 12.3F; //占四個字節double d = 33.4; //占八個字節 小數默認的數據類型是double,double類型后面也可以用D或d標識,但是一般不加//字符類型char c = 'a'; //占兩個字節System.out.println(c);//布爾類型boolean b1 = true;boolean b2 = false;
六、使用變量的注意事項
* a:作用域問題* 同一個區域不能使用相同的變量名
* b:初始化值問題* 局部變量在使用之前必須賦值
* c:一條語句可以定義幾個變量* int a,b,c...;
七、數據類型轉換
a:隱式轉換
int x = 3;
byte b = 4;
x = x + b;
System.out.println(x); //輸出為int類型的值7
Java中的默認轉換規則
* 取值范圍小的數據類型與取值范圍大的數據類型進行運算,會先將小的數據類型提升為大的,再運算
b:強制轉換
int x = 3;
byte b = 4;
b = (byte)(a + b);
System.out.println(b); //輸出為byte類型的值7
強制轉換的注意事項
* 如果超出了被賦值的數據類型的取值范圍得到的結果會與你期望的結果不同
八、字符和字符串參與運算
System.out.println('a' + 1); //98,因為有ASCII碼表,a字符對應的是int類型的97System.out.println((char)('a' + 1)); //bSystem.out.println("hello"+'a'+1); //任何數據類型用+與字符串相連接都會產生新的字符串System.out.println('a'+1+"hello"); //98helloSystem.out.println(" 5 + 5 = " + (5 + 5));//5+5=10
九、算術運算符的基本用法
- A:什么是運算符
- 就是對常量和變量進行操作的符號。
- B:運算符的分類
- 算術運算符,賦值運算符,比較(關系或條件)運算符,邏輯運算符,位運算符,三目(元)運算符
- C:算數運算符有哪些
- +,-,*,/,%,++,–
- D:注意事項:
- a:+號在java中有三種作用,代表正號,做加法運算,字符串的連接符
- b:整數相除只能得到整數。如果想得到小數,必須把數據變化為浮點數類型
- c:/獲取的是除法操作的商,%獲取的是除法操作的余數
- %運算符
- 當左邊的絕對值小于右邊絕對值時,結果是左邊
- 當左邊的絕對值等于右邊或是右邊的倍數時,結果是0
- 當左邊的絕對值大于右邊絕對值時,結果是余數
- %運算符結果的符號只和左邊有關系,與右邊無關
- 任何一個正整數%2結果不是0就是1可以用來當作切換條件
十、算術運算符++和–的用法
- A:++,–運算符的作用
- 自加(++)自減(–)運算
- ++:自加。對原有的數據進行+1
- –:自減。對原有的數據進行-1
- B:案例演示
- a:單獨使用:
- 放在操作數的前面和后面效果一樣。(這種用法是我們比較常見的)
- b:參與運算使用:
- 放在操作數的前面,先自增或者自減,然后再參與運算。
- 放在操作數的后面,先參與運算,再自增或者自減。
- a:單獨使用:
//單獨使用
int a = 3;
a++; //a = a + 1;
++a; //a = a + 1;
//參與運算使用
int a = 3;
int b;b = a++; //當++在變量后面的時候,會先將變量中的值取出做賦值操作,然后再自身加1
b = ++a; //當++在變量前面的時候,會先自身加1,然后在將結果賦值
十一、賦值運算符的基本用法
A:賦值運算符有哪些
a:基本的賦值運算符:=
- 把=右邊的數據賦值給左邊。
b:擴展的賦值運算符:+=,-=,*=,/=,%=
- += 把左邊和右邊做加法,然后賦值給左邊。
十二、關系運算符的基本用法及其注意事項
- A:關系運算符有哪些(比較運算符,條件運算符)
- ==,!=,>,>=,<,<=
- 注意事項:
- 無論你的操作是簡單還是復雜,結果是boolean類型。
- “==”不能寫成”=”。
附:java語言基礎面試題
1.看下面的程序是否有問題,如果有問題,請指出并說明理由。
byte b1 = 3; //①
byte b2 = 4; //②
byte b3 = b1 + b2; //③
byte b4 = 3 + 4; //④
第③句會報錯
* 從兩方面去回答這個題* b1和b2是兩個變量,變量里面存儲的值都是變化的,所以在程序運行中JVM是無法判斷里面具體的值* byte類型的變量在進行運算的時候,會自動類型提升為int類型
第④句中:3和4都是常量,java有常量優化機制,就是在編譯的的時候直接把3和4的結果賦值給b4了
2.問哪句會報錯,為什么
byte b = 10;//①
b++;//② 相當于b = (byte)(b + 1)
b = b + 1;//③ 當byte與int進行混合運算的時候,會提升為int類型,兩個int相加的結果還是int,賦值給byte會損失精度
3.看下面的程序是否有問題,如果有問題,請指出并說明理由。
short s=1;s = s+1; //當short與int進行運算的時候,會提升為int類型,兩個int類型相加的結果也是int類型
short s=1;s+=1; //s = (short)(s + 1);