第二課程 java 的基礎語法的基礎
1.關鍵字都是小寫,會變為藍色
2.標志符:
標志符就是給類,接口,方法,變量等起的名字。
起名字規則(只允許有這些東西):
英文大小寫字母
? ? ? ? ? ? 數字字符
? ? ? ? ? ? $和_
注意事項:不能以數字開頭
? ? ? ? ? 不能是關鍵字
? ? ? ? ? Java語言嚴格區分大小寫(關鍵詞有了一個字母大寫,就不是關鍵詞了)
3.常見的命名規則:
1.舉例:定義一個學生類
class Student{}
不要用 class S{}因為S人不知道是什么意思
2.包(因為在同一個路徑下不能用建立兩個一樣的類名,但是又要見名知意所以就要想辦法區分開)命名全部是小寫。
包其實就是文件夾。用以把相同的類名區分(每個字母都是小寫)
? 單級包:liuyi
? 多級包:cn.itcase? (.是用來區分的級的。)
3.類和接口? 命名一個時,首字母大寫。多個時,每個單詞首字母必須大寫
? 接口可以看做是和類一樣的東西。
? 一個單詞:Student
多個單詞: HelloWorld,StudentName
4.方法和變量
一個單詞命名單詞首字母必須大寫
? 一個單詞:main ,age
? 多個單詞,從第二個開始,每個單詞首字母大寫
? 舉例:studentAge.? showStudentNames()? 【加()的是方法,不加的變量】
5.常量 (每個字母都大寫)
一個單詞全部大寫 如:PI
多個單詞每個字母大寫用_分開? 如:STUDENT_MAX_AGE
4.注釋
1.單行注釋//
2.多行注釋不能嵌套使用:/* */(多行注釋不能嵌套,會沒法運行)
3.文檔注釋;被javadoc工具解析生成一個說明書,面對對象部分講解(沒講)
? //** */比多行注釋多了一個*
注釋有兩個作用:
一是:可以通過注釋來找程序的問題。可以幫我們調試程序。
二是:可以提高程序的閱讀性
6.常量
1.字面值常量與自定義常量(后面講)
字面值常量
? ? ? ? ? 1 字符串常量? 如 括號內形式“ HelloWorld”輸出的字符串內容
? ? ? ? ? 2 整數性常量? 如 括號內形式 100 200
? ? ? ? ? 3 小數常量? 如? 括號內形式? 10.2? 11.22
? ? ? 4 字符常量(用單引號栝起來的單個字符)? 如 括號內形式 ‘a’ ‘b’? ‘0’(這里0是一個字符不是數字)’ab’(這是錯誤的寫法)
5布爾常量
比較特殊:括號內形式 :只有ture和false
? ? ? ? ? 6 空常量(后面講)
? ? ? ? ? ? 如:null
7.進制
2進制只有兩個狀態,所以用8個二進制數來表示一個數據,這個單位叫字節
1byte(字節)=8bit 、、1k=1034byte
8進制是吧110? 100? 111 三個數字分為一塊然后用十進制算法算出表示
16進制是吧1110? 0001 四個一組用十進制的算法算出然后表示
規則: 進制越大,表示形式越短
3.
因為直接看數據分不出是幾進制所以
二進制開頭是0b? (后綴一個B也表示為二進制)
八進制開頭是0?
十六進制開頭是0x
寫程序出錯:
1.把100也加上引號,整數不用加
2.修改過后沒有保存,就運行所以結果不會變
8.原碼,反碼,補碼
在計算機內,有符號數有3種表示方法:原碼,反碼,補碼。
計算機所有的運算都是采用數據對應的二進制補碼運算的。
?
原碼:
正數的原碼最高位為0
負數的原碼最高位為1
其他是數值位(數值位前面的用0補齊夠7位)
? ? 符號位? 數值位
+7? ? 0? ? ? 0000111
-7? ? 1? ? ? 0000111
反碼:
? ? 正數的反碼與原碼一樣
? ? 負數的反碼符號位不變,數值位每一位取反,就是0變1,1變0
? ? ? ? 符號位? 數值位
+7? 0? ? ? 0000111
-7? 1? ? ? 1111000
補碼:
? ? 正數的補碼與原碼一樣
負數的補碼是補碼+1(當然是最小位)(注意:不能先寫符號位了,因為類似111111111最后符號位會變)
? ? ? ? 符號位? ? 數值位
+7? ? 0? ? ? 0000111
-7? ? 1? ? ? 1111001?
1.已知某數x的原碼10110100B。求補碼與反碼
?
反碼1? 1001011
補碼1? 1001100
2.已知某數x的補碼11101110B。求原碼
補碼:1? 1101110
反碼:1? 1101101
原碼:1? 0010010
9.什么是變量
10.數據類型
1.
Java是一種強數據類型的語言。
2.分為基本數據類型和引用數據類型
基本數據類型:4類8種
整數:
? ? ? ? ? 所占字節數
? byte? ? ? 1
? short? ? ? 2? ?
? int? ? ? ? 3
? long? ? ? ? 4?
浮點數(小數):
? ? ? ? ? ? ? ? 所占字節數
? float(單精度)? ? ? 4
? double(雙精度)? ? 8
? ? ? ?
字符:
? ? ? ? 所占字節數
? char :? ? 2
布爾:
? ? ? ? 所占字節數(很多地方沒有明確給定,但因為只有0、1兩種情況,所以認為是1)
boolean:? 1
各種類型的取值正負都可byte(1字節):? -128~127
整數默認int 小數默認 double
引用數據類型3種(以后講)
3.
1byte=8bie \\ 1字節等于8位? (對于原碼的問題:如果第8位剛好是數值型怎么辦,還怎么分原碼,那就用2字節來表示,進而區分原碼……)
1.定義變量注意事項:
當定義的整數型變量超過 int 型時,就需要用long型寫,需要注意用long時long=100000000L(L大小寫都可以)。如果不寫還是會按int型處理,然后會報錯。
同理double型也是,如果用float型時,會提醒你可能損失精度,因為float型時4字節,可能會自動刪除變量超出的部分,所以會提醒可能損失精度;
如圖
字符型如圖:
布爾型;
2.定義變量注意的問題:
變量適用的范圍:
1.格式最好是
?
2.一行可以定義多個變量,但是不建議。如
3.可以同時定義多個如:
4.可以先定義一個變量,而不給初始值,只要在使用(輸出)前 初始化就行;如:
5不能這樣:
用,隔開會以為是同一種類型。所以計算機識別不了int 屬于int類型,所以好會報錯。
11.運算符
1.
一般來說用運算符的時候,左右兩邊數據類型要一致。
+中可以直接在括號內寫然后實現運算結果如:…….println(3+4)
2.
如果前后數據類型不一致,都向大的靠近(不讓就會提示可能損失精度)。如圖:
下圖是算的原理;
字節少的先変為,字節更長的形式,在進行運算。如圖:
3.
強制轉換:
不要隨意去使用強制轉換,因為可能確會損失精度。
就是說,當你知道。大的與小的運算結果,明明byte字節夠用時,可以強制轉換。
寫法: byte c = (byte)(a + b);?
正常寫法: byte c = a + b ;
注意:如果后面是一個變量如:byte c = (byte) a? 這里不用加括號,只有多個才用加。
4.
float a = (float) 29.323;
float a= 29.323F;
這兩個是一樣的,但是第一個是把double類型,截取然后成為float類。而第二個,本身就可以是一個float類型。
面試題:
題1.
答案是:
第二句會編譯失敗,因為第二句的變量相加是會自動變為int型,而b是byte,把int給byte會損失精度,所以會報錯。變量賦值給變量是先在運行的時候(.class)文件時,才運算。
第三句是常量加法,是先計算出來后面的結果,如果結果在byte類型里,就不提示會損失精度,不報錯。
byte b1 = 2 ,b2 = 3 , b 這種寫法是可以的。
反編譯工具:xjad.exe? 可以把class文件讀出來。方便差錯。
題2.
有問題:因為byte取值范圍 -128--127,130超過了,所以會報錯。
byte b = (byte) 130; 這樣強制轉換就不會報錯了。
結果:
做法分析,計算機是對補碼運算的,所以要走一遍原碼反碼補碼,在倒著走一遍才可以得出答案。?
130的二進制數為10000010
原碼、反碼、補碼都為 10000010? (正數的原 反 補一樣,負數 補碼+1)
int型? 00000000 00000000 00000000? 10000010
因為byte型,所以做截取操作? 10000010 (這是補碼)
? ? ? ? 符號位? ? 數值位
補碼? ? 1? ? ? ? 0000010
反碼? ? 1? ? ? ? 0000001
原碼? ? 1? ? ? ? 1111110
然后:1代表負數 ,后邊的是126
-126
12.ASCII碼表;
1.
System.out.println(‘a’+1);
‘a’? 97 后面的以此加 1
‘A’? 65
‘0’? 48
2.
只要字符串在前,+相當于連接符,結果自然就是字符串形式
如 System.out.println (“5+5=”+5+5)? \\5+5=55
System.out.println (5+5“=5+5”)? \\? 10=5+5
如果是整數+’a’ 會看成是 97 +1
雙引號,表示輸出字符串,單引號可以看成是char(字符)。
習慣;
1.
包名是:起包名時,全是小寫,多級包名時。給什么公司做,習慣就用該公司域名的反寫。如 com.baidu
2.
寫代碼的注釋;? 一般寫了需求和分析就行。后兩步直接寫代碼就行。
第二課程 java 的基礎語法的基礎
1.關鍵字都是小寫,會變為藍色
2.標志符:
標志符就是給類,接口,方法,變量等起的名字。
起名字規則(只允許有這些東西):
英文大小寫字母
? ? ? ? ? ? 數字字符
? ? ? ? ? ? $和_
注意事項:不能以數字開頭
? ? ? ? ? 不能是關鍵字
? ? ? ? ? Java語言嚴格區分大小寫(關鍵詞有了一個字母大寫,就不是關鍵詞了)
3.常見的命名規則:
1.舉例:定義一個學生類
class Student{}
不要用 class S{}因為S人不知道是什么意思
2.包(因為在同一個路徑下不能用建立兩個一樣的類名,但是又要見名知意所以就要想辦法區分開)命名全部是小寫。
包其實就是文件夾。用以把相同的類名區分(每個字母都是小寫)
? 單級包:liuyi
? 多級包:cn.itcase? (.是用來區分的級的。)
3.類和接口? 命名一個時,首字母大寫。多個時,每個單詞首字母必須大寫
? 接口可以看做是和類一樣的東西。
? 一個單詞:Student
多個單詞: HelloWorld,StudentName
4.方法和變量
一個單詞命名單詞首字母必須大寫
? 一個單詞:main ,age
? 多個單詞,從第二個開始,每個單詞首字母大寫
? 舉例:studentAge.? showStudentNames()? 【加()的是方法,不加的變量】
5.常量 (每個字母都大寫)
一個單詞全部大寫 如:PI
多個單詞每個字母大寫用_分開? 如:STUDENT_MAX_AGE
4.注釋
1.單行注釋//
2.多行注釋不能嵌套使用:/* */(多行注釋不能嵌套,會沒法運行)
3.文檔注釋;被javadoc工具解析生成一個說明書,面對對象部分講解(沒講)
? //** */比多行注釋多了一個*
注釋有兩個作用:
一是:可以通過注釋來找程序的問題。可以幫我們調試程序。
二是:可以提高程序的閱讀性
6.常量
1.字面值常量與自定義常量(后面講)
字面值常量
? ? ? ? ? 1 字符串常量? 如 括號內形式“ HelloWorld”輸出的字符串內容
? ? ? ? ? 2 整數性常量? 如 括號內形式 100 200
? ? ? ? ? 3 小數常量? 如? 括號內形式? 10.2? 11.22
? ? ? 4 字符常量(用單引號栝起來的單個字符)? 如 括號內形式 ‘a’ ‘b’? ‘0’(這里0是一個字符不是數字)’ab’(這是錯誤的寫法)
5布爾常量
比較特殊:括號內形式 :只有ture和false
? ? ? ? ? 6 空常量(后面講)
? ? ? ? ? ? 如:null
7.進制
2進制只有兩個狀態,所以用8個二進制數來表示一個數據,這個單位叫字節
1byte(字節)=8bit 、、1k=1034byte
8進制是吧110? 100? 111 三個數字分為一塊然后用十進制算法算出表示
16進制是吧1110? 0001 四個一組用十進制的算法算出然后表示
規則: 進制越大,表示形式越短
3.
因為直接看數據分不出是幾進制所以
二進制開頭是0b? (后綴一個B也表示為二進制)
八進制開頭是0?
十六進制開頭是0x
寫程序出錯:
1.把100也加上引號,整數不用加
2.修改過后沒有保存,就運行所以結果不會變
8.原碼,反碼,補碼
在計算機內,有符號數有3種表示方法:原碼,反碼,補碼。
計算機所有的運算都是采用數據對應的二進制補碼運算的。
?
原碼:
正數的原碼最高位為0
負數的原碼最高位為1
其他是數值位(數值位前面的用0補齊夠7位)
? ? 符號位? 數值位
+7? ? 0? ? ? 0000111
-7? ? 1? ? ? 0000111
反碼:
? ? 正數的反碼與原碼一樣
? ? 負數的反碼符號位不變,數值位每一位取反,就是0變1,1變0
? ? ? ? 符號位? 數值位
+7? 0? ? ? 0000111
-7? 1? ? ? 1111000
補碼:
? ? 正數的補碼與原碼一樣
負數的補碼是補碼+1(當然是最小位)(注意:不能先寫符號位了,因為類似111111111最后符號位會變)
? ? ? ? 符號位? ? 數值位
+7? ? 0? ? ? 0000111
-7? ? 1? ? ? 1111001?
1.已知某數x的原碼10110100B。求補碼與反碼
?
反碼1? 1001011
補碼1? 1001100
2.已知某數x的補碼11101110B。求原碼
補碼:1? 1101110
反碼:1? 1101101
原碼:1? 0010010
9.什么是變量
10.數據類型
1.
Java是一種強數據類型的語言。
2.分為基本數據類型和引用數據類型
基本數據類型:4類8種
整數:
? ? ? ? ? 所占字節數
? byte? ? ? 1
? short? ? ? 2? ?
? int? ? ? ? 3
? long? ? ? ? 4?
浮點數(小數):
? ? ? ? ? ? ? ? 所占字節數
? float(單精度)? ? ? 4
? double(雙精度)? ? 8
? ? ? ?
字符:
? ? ? ? 所占字節數
? char :? ? 2
布爾:
? ? ? ? 所占字節數(很多地方沒有明確給定,但因為只有0、1兩種情況,所以認為是1)
boolean:? 1
各種類型的取值正負都可byte(1字節):? -128~127
整數默認int 小數默認 double
引用數據類型3種(以后講)
3.
1byte=8bie \\ 1字節等于8位? (對于原碼的問題:如果第8位剛好是數值型怎么辦,還怎么分原碼,那就用2字節來表示,進而區分原碼……)
1.定義變量注意事項:
當定義的整數型變量超過 int 型時,就需要用long型寫,需要注意用long時long=100000000L(L大小寫都可以)。如果不寫還是會按int型處理,然后會報錯。
同理double型也是,如果用float型時,會提醒你可能損失精度,因為float型時4字節,可能會自動刪除變量超出的部分,所以會提醒可能損失精度;
如圖
字符型如圖:
布爾型;
2.定義變量注意的問題:
變量適用的范圍:
1.格式最好是
?
2.一行可以定義多個變量,但是不建議。如
3.可以同時定義多個如:
4.可以先定義一個變量,而不給初始值,只要在使用(輸出)前 初始化就行;如:
5不能這樣:
用,隔開會以為是同一種類型。所以計算機識別不了int 屬于int類型,所以好會報錯。
11.運算符
1.
一般來說用運算符的時候,左右兩邊數據類型要一致。
+中可以直接在括號內寫然后實現運算結果如:…….println(3+4)
2.
如果前后數據類型不一致,都向大的靠近(不讓就會提示可能損失精度)。如圖:
下圖是算的原理;
字節少的先変為,字節更長的形式,在進行運算。如圖:
3.
強制轉換:
不要隨意去使用強制轉換,因為可能確會損失精度。
就是說,當你知道。大的與小的運算結果,明明byte字節夠用時,可以強制轉換。
寫法: byte c = (byte)(a + b);?
正常寫法: byte c = a + b ;
注意:如果后面是一個變量如:byte c = (byte) a? 這里不用加括號,只有多個才用加。
4.
float a = (float) 29.323;
float a= 29.323F;
這兩個是一樣的,但是第一個是把double類型,截取然后成為float類。而第二個,本身就可以是一個float類型。
面試題:
題1.
答案是:
第二句會編譯失敗,因為第二句的變量相加是會自動變為int型,而b是byte,把int給byte會損失精度,所以會報錯。變量賦值給變量是先在運行的時候(.class)文件時,才運算。
第三句是常量加法,是先計算出來后面的結果,如果結果在byte類型里,就不提示會損失精度,不報錯。
byte b1 = 2 ,b2 = 3 , b 這種寫法是可以的。
反編譯工具:xjad.exe? 可以把class文件讀出來。方便差錯。
題2.
有問題:因為byte取值范圍 -128--127,130超過了,所以會報錯。
byte b = (byte) 130; 這樣強制轉換就不會報錯了。
結果:
做法分析,計算機是對補碼運算的,所以要走一遍原碼反碼補碼,在倒著走一遍才可以得出答案。?
130的二進制數為10000010
原碼、反碼、補碼都為 10000010? (正數的原 反 補一樣,負數 補碼+1)
int型? 00000000 00000000 00000000? 10000010
因為byte型,所以做截取操作? 10000010 (這是補碼)
? ? ? ? 符號位? ? 數值位
補碼? ? 1? ? ? ? 0000010
反碼? ? 1? ? ? ? 0000001
原碼? ? 1? ? ? ? 1111110
然后:1代表負數 ,后邊的是126
-126
12.ASCII碼表;
1.
System.out.println(‘a’+1);
‘a’? 97 后面的以此加 1
‘A’? 65
‘0’? 48
2.
只要字符串在前,+相當于連接符,結果自然就是字符串形式
如 System.out.println (“5+5=”+5+5)? \\5+5=55
System.out.println (5+5“=5+5”)? \\? 10=5+5
如果是整數+’a’ 會看成是 97 +1
雙引號,表示輸出字符串,單引號可以看成是char(字符)。
習慣;
1.
包名是:起包名時,全是小寫,多級包名時。給什么公司做,習慣就用該公司域名的反寫。如 com.baidu
2.
寫代碼的注釋;? 一般寫了需求和分析就行。后兩步直接寫代碼就行。