天天看點

java基本概念_Java基礎基本概念

Java基礎第二天

2.1回顧

第一個代碼:

publicclassHelloJava{

publicstaticvoidmain(String[] args){

System.out.println("Hello World!"+'\n'+"Hello it18zhang.com");

}

}

2.1 關鍵字

1關鍵字的定義和特點

關鍵字的定義和特點

定義:被Java語言賦予了特殊含義,用做專門用途的字元串(單詞)

特點:關鍵字中所有字母都為小寫

java基本概念_Java基礎基本概念
java基本概念_Java基礎基本概念

保留字

Java保留字:現有Java版本尚未使用,但以後版本可能會作為關鍵字使用。自己命名标記符時要避免使用這些保留字

byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const

2.2辨別符

辨別符:

(1)Java 對各種變量、方法和類等要素命名時使用的字元序列稱為辨別符

(2)凡是自己可以起名字的地方都叫辨別符。

定義合法辨別符規則:

(1)由26個英文字母大小寫,0-9 ,_或 $ 組成

(2)數字不可以開頭。

(3)不可以使用關鍵字和保留字,但能包含關鍵字和保留字

(4)Java中嚴格區分大小寫,長度無限制

(5)辨別符不能包含空格

注意:在起名字時,為了提高閱讀性,要盡量有意義,“見名知意

Java中的名稱命名規範

(1)包名:多單詞組成時所有字母都小寫:xxxyyyzzz

(2)類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz

(3)變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz

(4)常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接配接:XXX_YYY_ZZZ

案例:

classTestMarker

{

publicstaticvoidmain(String[] args)

{

intstatic1 = 1;

intmyInt = 12;

System.out.println("Hello World!");

}

publicvoidadd(){

}

//注意:在起名字時,為了提高閱讀性,要盡量有意義,“見名知意”。

publicvoidm1(){}

publicvoidm2(){}

}

//class 4Hello

classStatic{

}

2.3變  量

變量的概念:

(1)記憶體中的一個存儲區域

(2)該區域有自己的名稱(變量名)和類型(資料類型)

(3)Java中每個變量必須先聲明,後使用

(4)該區域的資料可以在同一類型範圍内不斷變化

使用變量注意

(1)變量的作用域:一對{ }之間有效

(2)初始化值

定義變量的格式:資料類型    變量名  =  初始化值

變量是通過使用變量名來通路這塊區域的

變量的分類-按資料類型

對于每一種資料都定義了明确的具體資料類型,在記憶體中配置設定了不同大小的記憶體空間

java基本概念_Java基礎基本概念

整數類型:byte、short、int、long

Java各整數類型有固定的表數範圍和字段長度,不受具體OS的影響,以保證java程式的可移植性。

java的整型常量預設為int型,聲明long型常量須後加‘l’或‘L’

java基本概念_Java基礎基本概念

浮點類型:float、double

(1)與整數類型類似,Java 浮點類型也有固定的表數範圍和字段長度,不受具體OS的影響

(2)Java的浮點型常量預設為double型,聲明float型常量,須後加‘f’或‘F’。

(3)浮點型常量有兩種表示形式:

十進制數形式:如:5.12       512.0f        .512  (必須有小數點)

科學計數法形式:如:5.12e2      512E2    100E-2

java基本概念_Java基礎基本概念

字元類型:char

char 型資料用來表示通常意義上“字元”(2位元組)

字元型常量的三種表現形式:

(1)字元常量是用單引号(‘’)括起來的單個字元,涵蓋世界上所有書面語的字元。例如:char c1 = 'a';   char c2 = '中'; char c3=  '9';

(2)Java中還允許使用轉義字元‘\’來将其後的字元轉變為特殊字元型常量。例如:char c3 = ‘\n’;  // '\n'表示換行符

(3)直接使用 Unicode值來表示字元型常量:‘\uXXXX’。其中,XXXX代表一個十六進制整數。如:\u000a表示 \n。

(4)char類型是可以進行運算的。因為它都對應有Unicode碼

ASCII 碼

在計算機内部,所有資料都使用二進制表示。每一個二進制位(bit)有 0 和 1 兩種狀态,是以 8 個二進制位就可以組合出 256 種狀态,這被稱為一個位元組(byte)。一個位元組一共可以用來表示 256 種不同的狀态,每一個狀态對應一個符号,就是 256 個符号,從 0000000 到 11111111。

ASCII碼:上個世紀60年代,美國制定了一套字元編碼,對英語字元與二進制位之間的關系,做了統一規定。這被稱為ASCII碼。ASCII碼一共規定了128個字元的編碼,比如空格“SPACE”是32(二進制00100000),大寫的字母A是65(二進制01000001)。這128個符号(包括32個不能列印出來的控制符号),隻占用了一個位元組的後面7位,最前面的1位統一規定為0。

Unicode 編碼

亂碼:世界上存在着多種編碼方式,同一個二進制數字可以被解釋成不同的符号。是以,要想打開一個文本檔案,就必須知道它的編碼方式,否則用錯誤的編碼方式解讀,就會出現亂碼

Unicode:一種編碼,将世界上所有的符号都納入其中。每一個符号都給予一個獨一無二的編碼,使用Unicode沒有亂碼的問題。

Unicode 的缺點:Unicode 隻是一個符号集,它隻規定了符号的二進制代碼,卻沒有規定這個二進制代碼應該如何存儲:無法差別 Unicode 和 ASCII:計算機無法區分三個位元組表示一個符号還是分别表示三個符号

UTF-8

UTF-8 是在網際網路上使用最廣的一種 Unicode的實作方式。

UTF-8 是一種變長的編碼方式。它可以使用 1-6 個位元組表示一個符号,根據不同的符号而變化位元組長度。

UTF-8的編碼規則:

(1)對于單位元組的UTF-8編碼,該位元組的最高位為0,其餘7位用來對字元進行編碼(等同于ASCII碼)。

(2)對于多位元組的UTF-8編碼,如果編碼包含 n 個位元組,那麼第一個位元組的前n 位為1,第一個位元組的第 n+1 位為0,該位元組的剩餘各位用來對字元進行編碼。在第一個位元組之後的所有的位元組,都是最高兩位為"10",其餘6位用來對字元進行編碼。

布爾類型:boolean

boolean 類型适于邏輯運算,一般用于程式流程控制

if條件控制語句

while循環控制語句

do-while循環控制語句;

for循環控制語句

boolean類型資料隻允許取值true和false,無null。

不可以0或非0的整數替代false和true,這點和C語言不同

案例

//變量:基本資料類型(8個) vs 引用資料類型(類、接口、數組)

//1.java中的變量定義的格式:資料類型變量名=初始化值

classTestVeriable {

publicstaticvoidmain(String[] args) {

//2.變量得先定義,後使用

intmyInt1 = 10;

doubled = 12.3;

System.out.println(myInt1);

System.out.println(myInt1 + d);

//i1超出了其作用的範圍,不可使用。

//System.out.println(i1);

//3.整型:byte(-128~+127)  short int(預設類型)long

byteb1 = 12;

//byte b2 = 128;

shorts1 = 128;

inti1 = 12;

//定義long型變量,值的末尾加“L”或“l”

longl1 = 2134123351345325L;

System.out.println(l1);

//4.浮點型(帶小數點的數值):float   double(預設類型)

doubled1 = 12.3;

//聲明float類型的浮點型資料,末尾要加“F”或者“f”

floatf1 = 12.3F;

System.out.println(f1);

//5.字元型(=兩個位元組):char隻能表示一個字元(英文、中文、标點符号、日文、。。。)

charc1 ='a';

//char c2 = 'ab';

String str ="ab";

charc3 ='中';

String str1 ="中國";

//可以表示轉義字元

charc4 ='\t';

charc5 ='\n';

System.out.println("abc"+ c5 +"def");

//了解

charc6 ='\u1234';

System.out.println(c6);

//6.布爾類型:boolean  隻能夠取值為true 或 false 。不能取值null

booleanbool1 =true;

if(bool1){

System.out.println("今天是周五");

}else{

System.out.println("今天明明是周六!");

}

}

publicvoidmethod1(){

inti1 = 10;

System.out.println(i1);

}

}

基本資料類型轉換

自動類型轉換:容量小的類型自動轉換為容量大的資料類型。資料類型按容量大小排序為:

java基本概念_Java基礎基本概念

有多種類型的資料混合運算時,系統首先自動将所有資料轉換成容量最大的那種資料類型,然後再進行計算

byte,short,char之間不會互相轉換,他們三者在計算時首先轉換為int類型。

當把任何基本類型的值和字元串值進行連接配接運算時(+),基本類型的值将自動轉化為字元串類型。

強制類型轉換

自動類型轉換的逆過程,将容量大的資料類型轉換為容量小的資料類型。使用時要加上強制轉換符(()),但可能造成精度降低或溢出,格外要注意。

通常,字元串不能直接轉換為基本類型,但通過基本類型對應的包裝類則可以實作把字元串轉換成基本類型。

如: String a = “43”; int i = Integer.parseInt(a);

boolean類型不可以轉換為其它的資料類型。

案例:

classTestVeriable1{

publicstaticvoidmain(String[] args){

//1.自動類型轉換:當容量小的資料類型與容量大的資料類型做運算時,容量小的會自動轉換為

//容量大的資料類型:char,byte,short ===>int===>long ===>float===double

int i1 = 12;

shorts1 = 2;

inti2 = i1 + s1;

floatf1 = 12.3F;

floatf2 = f1 + i2;

//float d1 = f2 + 12.3;

longl = 12L;

floatf3 = l;

System.out.println(i2);

System.out.println(f2);

charc1 ='a';//97

c1 ='A';//65

inti3 = c1 + 1;

System.out.println(i3);

//需要注意的:當char\byte\short之間做運算時,預設的結果為int類型

shortss1 = 12;

bytebb1 = 1;

charcc1 ='a';

//short ss2 = ss1 + bb1;

intii1 = ss1 + bb1;

//char cc2 = cc1 + bb1;

intii2 = cc1 + bb1;

shortss2 = 11;

//short ss3 = ss1 + ss2;

//2.強制類型轉換:容量大轉換為容量小的.要使用強制類型轉換符:()

//強制類型轉換的問題:導緻精度的損失

longl1 = 12345L;

intm1 = (int)l1;

System.out.println(m1);

byteby1 = (byte)m1;

System.out.println(by1);

//平時常用的字元串,也是一種資料類型:String

String nation ="我是一個中國人";

System.out.println(nation);

//字元串與基本資料類型之間的運算:隻能是連接配接運算:+。得到的結果仍為一個字元串

String str ="abc";

String str1 = str +m1;//abc12345

System.out.println(str1);

//題目:

String st1 ="hello";

intmyInt1 = 12;

charch1 ='a';//97

System.out.println(str1+ myInt1 + ch1);//hello12a

System.out.println(myInt1+ ch1 + str1);//109hello

System.out.println(ch1+ str1 + myInt1);//ahello12

String st2 ="12";

str2 = 12 +"";

}

}

練習:

String str1 = 4;        //判斷對錯:錯

String str2 = 3.5f + “”;             //判斷str2對錯:對System.out.println(str2);        //輸出:3.5

System.out .println(3+4+“Hello!”);      //輸出:7Hello!

System.out.println(“Hello!”+3+4);      //輸出:Hello!34

System.out.println(‘a’+1+“Hello!”);    //輸出:98Hello!

System.out.println(“Hello”+‘a’+1);            //輸出:Hello!a1

進  制

對于整數,有四種表示方式

(1)二進制:0,1 ,滿2進1.以0b或0B開頭。

(2)十進制:0-9 ,滿10進1

(3)八進制:0-7 ,滿8進1. 以數字0開頭表示

(4)十六進制:0-9及A-F,滿16進1. 以0x或0X開頭表示。此處的A-F不區分大小寫。

(5)如:0x21AF +1=0X21B0

java基本概念_Java基礎基本概念
java基本概念_Java基礎基本概念
java基本概念_Java基礎基本概念

原碼、反碼、補碼

所有數字在計算機底層都以二進制形式存在。

計算機以補碼的形式儲存所有的整數。

正數的原碼、反碼、補碼都相同

負數的補碼是其反碼加1。

原碼:直接将一個數值換成二進制數。

反碼:是對原碼按位取反,隻是最高位(符号位)确定為1。

Java整數常量預設是int類型,當用二進制定義整數時,其第32位是符号位;當是long類型時,二進制預設占64位,第64位是符号位

進制間轉化

進制的基本轉換

十進制  二進制互轉

(1)二進制轉成十進制  乘以2的幂數

(2)十進制轉成二進制  除以2取餘數

(3)二進制  八進制互轉

(4)二進制   十六進制互轉

(5)十進制 八進制互轉

(6)十進制 十六進制互轉

java基本概念_Java基礎基本概念
java基本概念_Java基礎基本概念

算術運算符

java基本概念_Java基礎基本概念

//測試算術運算符: + - + - * / % ++ -- +

classTestAri{

publicstaticvoidmain(String[] args){

//除:/

inti = 12;

intj = i/5;

doubled = i / 5;

doubled1 = i/5.0;

System.out.println(j);//2

System.out.println(d);//2.0

System.out.println(d1);//2.4

//取模:%:取餘數.結果的符号取決于被模數

inti1 = 12 % 5;

inti2 = -12 % 5;

inti3 = 12 % (-5);

inti4 = -12 % (-5);

System.out.println(i1);

System.out.println(i2);

System.out.println(i3);

System.out.println(i4);

//前++:先自增1,後做運算

//後++:先做運算,後自增1

intmyInt1 = 10;

intmyInt2 = myInt1++;//後++

System.out.println(myInt1);//11

System.out.println(myInt2);//10

intmyInt3 = 10;

intmyInt4 = ++myInt3;//前++

System.out.println(myInt3);//11

System.out.println(myInt4);//11

//前--:先自減1,後做運算

//後--:先做運算,後自減1

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250class PrintGrap{

public static void main(String[] args){

System.out.print("\t");

System.out.print("*");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.println("*");

System.out.print("*");

System.out.print("\t");

//System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("I love java");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.println("*");

System.out.print("\t");

System.out.print("*");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.println("*");

System.out.print("\t");

System.out.print("\t");

System.out.print("*");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.println("*");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("*");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.println("*");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

System.out.print("*");

System.out.print("\t");

System.out.println("*");

System.out.print("\t");

System.out.print("\t");

System.out.print("\t");

//System.out.print("\t");

System.out.print("      ");

System.out.print("*");

}

}

class  Test1

{

public static void main(String[] args)

{

String str1 ="4";

String str2 =3.5f+"";

System.out.println(str2);

System.out.println(str1);

System.out.println(3+4+"hello!");//輸出:7Hello!

System.out.println("Hello!"+3+4);//輸出:Hello!34

System.out.println("a"+1+"Hello!");//輸出:98Hello!

System.out.println("Hello"+"a"+1);//輸出:Hello!a1

}

}

class  TestAri

{

public static void main(String[] args)

{

int myInt3 =10;

int myInt4 = ++myInt3;

System.out.println(myInt3);//11

System.out.println(myInt4);//11

int myInt5 =10;

int myInt6 = myInt5--;

System.out.println(myInt5);//9

System.out.println(myInt6);//10

int myInt7 =10;

int myInt8 = --myInt7;

System.out.println(myInt7);//9

System.out.println(myInt8);//9

}

}

class  TestMarker

{

public static void main(String[] args)

{

int myInt =15;

myInt =15+1;

System.out.println(myInt);

boolean top =false;

top =true;

System.out.println(top);

//int myByte = 128.01;

float myFloat =128.01f;

myFloat =200.0f;

double myDouble =128;

System.out.println(myFloat);

//System.out.println(myByte);

System.out.println(myDouble);

}

}

class  TestVeriable

{

public static void main(String[] args)

{

int myInt1 =10;

double d =12.3;

byte b1 =12;

short s1 =128;

int i1 =12;

long l1 = 213412335134532L;

double d1 =12.3;

float f1 =12.3F;

char c1 ='a';

String str1 ="中國";

char c3 ='中';

char c4 ='\t';

char c5 ='\n';

char c6 ='\u1234';

boolean bool1 =true;

if (bool1)

{

System.out.println("今天是周五");

}else{

System.out.println("今天明明是周六!");

}

System.out.println(myInt1);

System.out.println(myInt1+d);

System.out.println(b1);

System.out.println(s1);

System.out.println(i1);

System.out.println(l1);

System.out.println(d1);

System.out.println(f1);

System.out.println("abc"+c5+"def");

System.out.println(c6);

}

}

繼續閱讀