------- android培訓、java培訓、期待與您交流! ----------
02.01 關鍵字的概述和使用
關鍵字概述:被Java語言賦予特定含義的單詞
關鍵字特點:組成關鍵字的字母全部小寫
關鍵字注意事項:goto和const作為保留字存在,目前并不使用,類似Notepad++這樣的高級記事本,針對關鍵字有特殊的顏色標記,非常直觀
保留字:在JDK的新版本中可能提升為關鍵字
02.02 標識符的概述和組成規則
標識符概述:就是給類,接口,方法,變量等起名字時使用的字符序列
組成規則:英文大小寫字母、數字字符、$和_
注意事項:
1.不能以數字開頭
2.不能是Java中的關鍵字
3.嚴格區分大小寫
02.03 標識符中常見的命名規則
常見命名規則要求:見名知意
包:全部小寫,多級包時用.隔開
類或者接口:一個單詞時首字母大寫,多個單詞時每個單詞的首字母大寫
方法和變量:一個單詞時首字母小寫,多個單詞時從第二個單詞開始每個首字母大寫
常量:全部大寫,多個單詞用_隔開
02.04注釋概述及其分類
注釋概述:用于解釋說明程序的文字
Java中注釋分類格式
單行注釋:格式: // 注釋文字
多行注釋:格式: /* 注釋文字 */
文檔注釋:格式:/** 注釋文字 */
1.對于單行和多行注釋,被注釋的文字,不會被JVM(java虛擬機)解釋執行。
2.對于文檔注釋,是java特有的注釋,其中注釋內容可以被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形式體現的該程序的說明文檔。
02.05 HelloWorld案例加入注釋版
例:
1 /* 2 需求:寫一個程序,在控制臺輸出HelloWorld 3 分析: 4 1.寫一個java程序,首先定義類。 5 2.程序要想能夠被jvm調用,必須定義main方法。 6 3.程序要想有輸出結果,必須用輸出語句。 7 8 實現: 9 1.定義類用的是class關鍵字,后面跟的是類名10 2.main方法基本格式:public static void main(String[] args)11 3.輸出語句基本格式:System.out.02.06 注釋的作用
1.解釋說明程序,提高程序的閱讀性
2.可以幫助我們調試程序
02.07 常量的概述和使用
常量概述:在程序執行的過程中其值不可以發生改變
Java中常量分類:字面值常量和自定義常量
字面值常量:
1.字符串常量:用雙引號括起來的內容 例: "helloworld"
2.整數常量: 所有整數 例:12,23
3.小數常量: 所有小數 例:12.34,56.78
4.字符常量: 用單引號括起來的內容 例: 'a'、'A'、'0'
5.布爾常量: 只有true和false兩個值
6.空常量:null
02.08 進制概述以及二進制,八進制,十六進制
Java針對整數常量提供了4種表現形式:二進制、八進制、十進制、十六進制
進制概述:進制就是進位制,是人們規定的一種進位方法。
對于任何一種進制--X進制,就表示某一位置上的數運算時是逢X進一位。
二進制就是逢二進一,八進制是逢八進一,十進制是逢十進一,十六進制是逢十六進一。
換算:
1byte(字節) = 8 bit(二進制位)
1K = 1024byte
規律,進制越大,表現形式越短。
02.09 不同進制數據的表現形式
二進制:0、1,滿2進1,用0b開頭表示
八進制:0~7,滿8進1,用0開頭表示
十進制:0~9,滿10進1,整數默認是十進制的
十六進制:0~9、A~F,滿16進1,用0x開頭表示
任何數據在計算機中都是以二進制的形式存在的
02.10 任意進制到十進制的轉換
二進制:110 轉為十進制:1*22 + 1*21 + 1*20 = 6
八進制:110 轉為十進制:1*82 + 1*81 + 1*80 = 72
十六進制:110 轉為十進制:1*162 + 1*161 + 1*160 = 272
02.11 任意進制到十進制的練習
0b10101 轉為十進制:1*24 + 0*23 + 1*22 + 0*21 + 1*20 = 21
0123 轉為十進制:1*82 + 2*81 + 3*80 = 83
0x3C 轉為十進制:3*161 + 12*160 = 60
02.12 十進制到任意進制的轉換
十進制:56 轉為二進制:
56 / 2 = 28...0
28 / 2 = 14...0
14 / 2 = 7 ...0
7 / 2 = 3 ...1
3 / 2 = 1 ...1
1 / 2 = 0 ...1
將余數從下到上組合,即0b 111000
十進制:56 轉為八進制:
56 / 8 = 7...0
7 / 8 = 0...7
將余數從下到上組合,即0 70
十進制:56 轉為十六進制:
56 / 16 = 3...8
3 / 16 = 0...3
將余數從下到上組合,即0x 38
02.13 十進制到任意進制的練習
將十進制的52分別轉為二進制、八進制、十六進制
十進制:52 轉為二進制:0b 110100
52 / 2 = 26...0
26 / 2 = 13...0
13 / 2 = 6 ...1
6 / 2 = 3 ...0
3 / 2 = 1 ...1
1 / 2 = 0 ...1
十進制:52 轉為八進制:0 64
52 / 8 = 6...4
6 / 8 = 0...6
十進制:52 轉為十六進制:0x 34
52 / 16 = 3...4
3 / 16 = 0...3
02.14 快速的進制轉換法
十進制和二進制的快速轉換
8421碼:
1 1 1 1 1 1 1 1
128 64 32 16 8 4 2 1
例:
100轉成二進制:0b 01100100
101101轉成十進制:32+8+4+1 = 45
二進制和八進制,十六進制轉換
1.以十進制作為橋梁
2.二進制轉八進制:二進制轉八進制從低位到高位每三位一組,不足高位補零
例:100100=(100)(100)=0 44
3.二進制轉十六進制:二進制轉十六進制從低位到高位每四位一組,不足高位補零
例:100100=(0010)(0100)=0x 24
02.15 原碼反碼補碼
有符號數據表示法:在計算機內,有符號數有3種表示法:原碼、反碼和補碼。
所有數據的運算都是采用補碼進行的。
原碼:就是二進制定點表示法,即最高位為符號位,“0”表示正,“1”表示負,其余位表示數值的大小。
反碼:正數的反碼與其原碼相同;負數的反碼是對其原碼逐位取反,但符號位除外。
補碼:正數的補碼與其原碼相同;負數的補碼是在其反碼的末位加1。
例:
7的原碼:0 0000111
7的反碼:0 0000111
7的補碼:0 0000111
-7的原碼:1 0000111
-7的反碼:1 1111000(在原碼的基礎上除符號位按位取反)
-7的補碼:1 1111001(反碼末位加1)
02.16 原碼反碼補碼的練習
已知某數的原碼為10110100,求其補碼和反碼
原碼:1 0110100
反碼:1 1001011
補碼:1 1001100
已知某數的補碼為11101110,求其原碼
補碼:1 1101110
反碼:1 1101101(補碼末位減1)
原碼:1 0010010(按位取反)
02.17 變量的概述及格式
變量概述:在程序執行的過程中,其值在某個范圍內可以發生改變的量
變量定義格式:數據類型變量名 = 初始化值;
02.18 數據類型的概述和分類
Java語言是強類型語言,對于每一種數據都定義了明確的具體數據類型,在內存中分配了不同大小的內存空間
02.19 定義不同數據類型的變量
例:
1 //定義一個字節變量 2 byte b = 10; 3 4 //定義一個短整型變量 5 short s = 100; 6 7 //定義一個整型變量 8 int i = 1000; 9 10 //定義一個長整型變量,后綴加l或L標記11 long l = 1000000000000L;12 13 //定義一個浮點變量,單精度浮點數后綴加f或F標記14 float f = 12.34F;15 16 //定義字符變量17 char ch = 'a';18 19 //定義布爾變量20 boolean flag = true;02.20 使用變量的注意事項
使用變量注意事項:
作用域:變量定義在哪一級大括號中,哪個大括號的范圍就是這個變量的作用域。相同的作用域中不能定義兩個同名變量。
初始化值:沒有初始化值不能直接使用
在一行上建議只定義一個變量,可以定義多個,但是不建議
02.21 數據類型轉換之默認轉換
boolean類型不能轉換為其他的數據類型
默認轉換:byte,short,char→int→long→float→double
byte,short,char相互之間不轉換,他們參與運算首先轉換為int類型
02.22 不同數據類型變量參與運算解釋
例:
1 byte a = 3;2 int b = 4;3 byte c = a + b;//錯誤4 int d = a + b; //正確解釋:byte類型的數據參與運算會被默認提升為int 型,a + b的結果為int型,不能賦值給byte型的c
02.23 數據類型轉換之強制轉換
強制轉換
目標類型變量名=(目標類型)(被轉換的數據);
例:
1 byte a = 3;2 int b = 4;3 byte c = (byte)(a + b);上條語句表示將a + b的結果int型的前三個字節拋棄,保留最后一個字節賦給c
02.24 強制轉換的思考題
1.下面的賦值有沒有問題
double d = 12.345;
float f = d;
答:有問題,不能將double類型的d賦給float型的f。
需強制轉換:float f = (float)d;
2.下面的定義有沒有區別?
float f1 = (float)12.345;
float f2 = 12.345F;
答:有區別,f1是通過double類型強轉到float類型。而f2本身就是float類型。
02.25 變量相加和常量相加的區別面試題
byte b1 = 3,b2 = 4,b;
b = b1 + b2;//編譯失敗,變量,先將類型提升,b1+b2的結果為int型
b = 3 + 4; //正確,常量,先計算結果,看是否在byte范圍內,在就不報錯
02.26 強制轉換數據溢出后的結果計算
byte b = 130;有沒有問題?如果想讓賦值正確該怎么做?結果是多少?
答:有問題,130超出byte范圍,可以使用強制轉換byte b = (byte)130;
結果:
int型130原碼:00000000 00000000 00000000 10000010
int型130補碼:00000000 00000000 00000000 10000010
強制轉換后丟棄高三位結果為: 10000010
補碼:1 0000010
反碼:1 0000001
原碼:1 1111110→結果為十進制-126
02.27 字符數據參與運算
System.out.println('a'); //a
System.out.println('a'+1); //98,字符a參與運算時使用的是ASCII碼表中對應的97
02.28 字符串參與運算
System.out.println('a'+1+"hello"); //98hello
System.out.println("hello"+'a'+1); //helloa1
System.out.println("5+5="+5+5); //5+5=55
System.out.println(5+5+"=5+5"); //10=5+5
新聞熱點
疑難解答